Añadir extensiones de SO al huésped del sistema
Fedora CoreOS mantiene la imagen base los más sencilla y pequeña posible por razones de seguridad y mantenimiento. Esto es por lo que usted debería, en general, preferir la utilización de contenedores sobre el software de capas.
Sin embargo, en algunos casos es necesario añadir software al SO base mismo. Por ejemplo, controladores o software de VPN son candidatos potenciales porque son más pesados para guardar en contenedores.
Para hacer esto, puede usar rpm-ostree install
. Considere estos paquetes como "extensiones": ellos extienden la funcionalidad del SO base en lugar de, por ejemplo, proporcionar tiempos de ejecución para aplicaciones de usuario. Esto significa, que no hay restricciones en los paquetes que uno puede instalar actualmente. De modo predeterminado, los paquetes son descargados de los repositorios Fedora.
To start the layering of a package, you need to write a systemd unit that executes the rpm-ostree
command to install the wanted package(s). Changes are applied to a new deployment and a reboot is necessary for those to take effect.
Ejemplo: Estratificar vim y establecerlo como editor predeterminado
Fedora CoreOS incluye como editores de texto nano
y vi
, con el primero establecido como predeterminado (vea el correspondiente cambio Fedora).
Este ejemplo muestra como instalar el editor de texto vim
completo y como configurarlo como predeterminado para todos los usuarios estableciendo la configuración requerida en /etc/profile.d/
.
In the future, we will have a more Ignition-friendly method of doing this with stronger guarantees. See upstream issues butane#81 and fedora-coreos-tracker#681 for more information. |
variant: fcos
version: 1.5.0
systemd:
units:
# Installing vim as a layered package with rpm-ostree
- name: rpm-ostree-install-vim.service
enabled: true
contents: |
[Unit]
Description=Layer vim with rpm-ostree
Wants=network-online.target
After=network-online.target
# We run before `zincati.service` to avoid conflicting rpm-ostree
# transactions.
Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
# `--allow-inactive` ensures that rpm-ostree does not return an error
# if the package is already installed. This is useful if the package is
# added to the root image in a future Fedora CoreOS release as it will
# prevent the service from failing.
ExecStart=/usr/bin/rpm-ostree install -y --allow-inactive vim
ExecStart=/bin/touch /var/lib/%N.stamp
ExecStart=/bin/systemctl --no-block reboot
[Install]
WantedBy=multi-user.target
storage:
files:
# Set vim as default editor
# We use `zz-` as prefix to make sure this is processed last in order to
# override any previously set defaults.
- path: /etc/profile.d/zz-default-editor.sh
overwrite: true
contents:
inline: |
export EDITOR=vim
Want to help? Learn how to contribute to Fedora Docs ›