Acceso a Internet a través de proxy

Si está implementando en un entorno que requiere acceso a Internet a través de un proxy, deberá configurar los servicios para que puedan acceder a los recursos según lo previsto.

La mejor manera de hacerlo es definir un solo archivo con las variables de entorno requeridas en su configuración de Butane y hacer referencia a éste a través de archivos de unidad de inserción systemd para todos esos servicios.

Definir variables de entorno de proxy comunes

Este archivo común debe ser referenciado posteriormente de forma explícita por cada servicio que requiera acceso a Internet.

variant: fcos
version: 1.6.0
storage:
  files:
    - path: /etc/example-proxy.env
      mode: 0644
      contents:
        inline: |
          https_proxy="http://example.com:8080"
          all_proxy="http://example.com:8080"
          http_proxy="http://example.com:8080"
          HTTP_PROXY="http://example.com:8080"
          HTTPS_PROXY="http://example.com:8080"
          no_proxy="*.example.com,127.0.0.1,0.0.0.0,localhost"

Definición de unidades de apoyo para los servicios básicos

Zincati consulta las actualizaciones del sistema operativo, y rpm-ostree se utiliza para aplicar actualizaciones del sistema operativo y de paquetes por capas, por lo que ambos requieren acceso a internet. El servicio opcional anónimo countme también requiere acceso si está habilitado.

Es posible que pueda usar referencias de archivos locales a unidades systemd en lugar de insertarlas en línea. Consulte Uso del parámetro --files-dir de butane para insertar archivos para más información.
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: rpm-ostreed.service
      dropins:
        - name: 99-proxy.conf
          contents: |
            [Service]
            EnvironmentFile=/etc/example-proxy.env
    - name: zincati.service
      dropins:
        - name: 99-proxy.conf
          contents: |
            [Service]
            EnvironmentFile=/etc/example-proxy.env
    - name: rpm-ostree-countme.service
      dropins:
        - name: 99-proxy.conf
          contents: |
            [Service]
            EnvironmentFile=/etc/example-proxy.env

Definir unidades visitadas sin cita previa para demonios del contenedor

Si se usa Docker, la extensión docker.service es suficiente. Si se ejecuta Kubernetes con containerd (sin Docker), la extensión containerd.service podría ser necesaria.

variant: fcos
version: 1.6.0
systemd:
  units:
    - name: docker.service
      enabled: true
      dropins:
        - name: 99-proxy.conf
          contents: |
            [Service]
            EnvironmentFile=/etc/example-proxy.env
    - name: containerd.service
      enabled: true
      dropins:
        - name: 99-proxy.conf
          contents: |
            [Service]
            EnvironmentFile=/etc/example-proxy.env

Definición del uso del proxy para las unidades podman systemd

Podman no tiene demonio y por lo tanto la configuración es para cada servicio individual programado y puede realizarse como parte de la definición completa de la unidad systemd.

variant: fcos
version: 1.6.0
systemd:
  units:
    - name: example-svc.service
      enabled: true
      contents: |
        [Unit]
        After=network-online.target
        Wants=network-online.target

        [Service]
        EnvironmentFile=/etc/example-proxy.env
        ExecStartPre=-/bin/podman kill example-svc
        ExecStartPre=-/bin/podman rm example-svc
        ExecStartPre=-/bin/podman pull example-image:latest
        ExecStart=/bin/podman run --name example-svc example-image:latest
        ExecStop=/bin/podman stop example-svc

        [Install]
        WantedBy=multi-user.target