Configurando alternativas

Devido a um problema atualmente em tratamento em como as configurações alternativas são armazenadas no sistema, os sistemas Fedora CoreOS não podem usar os comandos alternatives usuais para configurá-los.

Em vez disso, até que esse problema seja resolvido, você pode definir os links simbólicos diretamente em /etc/alternatives. Por exemplo, para usar as variantes legadas dos comandos iptables:

variant: fcos
version: 1.6.0
storage:
  links:
    - path: /etc/alternatives/iptables
      target: /usr/sbin/iptables-legacy
      overwrite: true
      hard: false
    - path: /etc/alternatives/iptables-restore
      target: /usr/sbin/iptables-legacy-restore
      overwrite: true
      hard: false
    - path: /etc/alternatives/iptables-save
      target: /usr/sbin/iptables-legacy-save
      overwrite: true
      hard: false
    - path: /etc/alternatives/ip6tables
      target: /usr/sbin/ip6tables-legacy
      overwrite: true
      hard: false
    - path: /etc/alternatives/ip6tables-restore
      target: /usr/sbin/ip6tables-legacy-restore
      overwrite: true
      hard: false
    - path: /etc/alternatives/ip6tables-save
      target: /usr/sbin/ip6tables-legacy-save
      overwrite: true
      hard: false

Usando comandos alternativos

A partir do Fedora CoreOS baseado no Fedora 41, você pode usar os comandos alternatives para configurar o comando padrão.

Exemplo de configuração do Butane usando uma unidade systemd para configurar o backend padrão do iptables
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: custom-iptables-default.service
      enabled: true
      contents: |
        [Unit]
        Description=Set the default backend for iptables
        [Service]
        ExecStart=/usr/sbin/alternatives --set iptables /usr/sbin/iptables-legacy
        RemainAfterExit=yes
        [Install]
        WantedBy=multi-user.target
Não recomendamos configurar o backend padrão do iptables como iptables-legacy. Este é apenas um exemplo.

Você também pode executar manualmente os comandos alternatives para configurar o tempo de execução do comando padrão.

Exemplo para configurar manualmente o backend padrão do iptables
# Verifica as informações do link
alternatives --display iptables
iptables --version

# Configura iptables para apontar para iptables-nft
sudo alternatives --set iptables /usr/sbin/iptables-nft

# Verifica versão do iptables é iptables-nft
alternatives --display iptables
iptables --version