linux-system-roles.cockpit

Cockpit

ansible-lint.yml ansible-test.yml integration-tests.yml markdownlint.yml tft.yml tft_citest_bad.yml woke.yml

Instala y configura la Consola Web Cockpit para distribuciones que la soportan, como RHEL, CentOS, Fedora, Debian y Ubuntu.

Requisitos

RHEL/CentOS 7.x depende de que el repositorio Extras esté habilitado.

Requisitos de la colección

El rol requiere el rol firewall y el rol selinux de la colección fedora.linux_system_roles, si cockpit_manage_firewall y cockpit_manage_selinux están configurados como true, respectivamente. También consulta cockpit_manage_firewall y cockpit_manage_selinux en Variables del Rol.

Si cockpit es un rol de la colección fedora.linux_system_roles o del paquete RPM de Fedora, el requisito ya está cumplido.

Si deseas gestionar sistemas rpm-ostree con este rol, necesitarás instalar colecciones adicionales. Por favor, ejecuta la siguiente línea de comando para instalar la colección.

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

Variables del Rol

Las variables disponibles por distribución están listadas a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

cockpit_packages

La variable principal es cockpit_packages, que te permite especificar tu propia selección de paquetes de cockpit que deseas instalar, o elegir uno de tres conjuntos de paquetes predefinidos: default, minimal o full. Obviamente, se selecciona default si no defines esta variable. Ten en cuenta que los paquetes instalados pueden variar según la distribución y la versión, ya que diferentes paquetes de funcionalidad de cockpit se han proporcionado con el tiempo. Además, algunos pueden no estar disponibles en todas las distribuciones, como cockpit-docker, que fue desaprobado en RHEL a favor de cockpit-podman.

Ejemplo de paquetes de cockpit explícitos para instalar. Las dependencias deben incluir los paquetes mínimos de cockpit para que funcionen.

cockpit_packages:
  - cockpit-storaged
  - cockpit-podman

Ejemplo de uso de los conjuntos de paquetes predefinidos. Este es el método recomendado para la instalación.

cockpit_packages: default
    # equivalente a
    #  - cockpit
    #  - cockpit-networkmanager
    #  - cockpit-packagekit
    #  - cockpit-selinux
    #  - cockpit-storaged

cockpit_packages: minimal
    # equivalente a
    #  - cockpit-system
    #  - cockpit-ws

cockpit_packages: full
    # equivalente a incluir todos
    #  - cockpit-*
    # Esto incluirá muchos paquetes como
        #  - cockpit    ## Lista predeterminada
        #  - cockpit-bridge
        #  - cockpit-networkmanager
        #  - cockpit-packagekit
        #  - cockpit-selinux
        #  - cockpit-storaged
        #  - cockpit-system
        #  - cockpit-ws
        ## y todos los demás
        #  - cockpit-389-ds
        #  - cockpit-composer
        #  - cockpit-dashboard
        #  - cockpit-doc
        #  - cockpit-kdump
        #  - cockpit-machines
        #  - cockpit-pcp
        #  - cockpit-podman
        #  - cockpit-session-recording
        #  - cockpit-sosreport

cockpit_enabled

cockpit_enabled: true

Variable booleana para controlar si Cockpit está habilitado para iniciarse automáticamente al arranque (predeterminado true).

cockpit_started

cockpit_started: true

Variable booleana para controlar si Cockpit debe iniciarse/estar en ejecución (predeterminado true).

cockpit_config

cockpit_config:                               #Configurar /etc/cockpit/cockpit.conf
  WebService:                                 #Especificar la sección de configuración "WebService"
    LoginTitle: "título de pantalla de inicio de sesión personalizado"   #Configurar "LoginTitle" en la sección "WebService"
    MaxStartups: 20                           #Configurar "MaxStartups" en la sección "WebService"
  Session:                                    #Especificar la sección de configuración "Session"
    IdleTimeout: 15                           #Configurar "IdleTimeout" en la sección "Session"
    Banner: "/etc/motd"                       #Configurar "Banner" en la sección "Session"

Configura la configuración en el archivo /etc/cockpit/cockpit.conf. Consulta man cockpit.conf para una lista de configuraciones disponibles. Las configuraciones anteriores se perderán, incluso si no están especificadas en la variable del rol (no se intenta preservar o fusionar las configuraciones anteriores, el archivo de configuración se reemplaza por completo).

cockpit_port

cockpit_port: 9090

Cockpit se ejecuta en el puerto 9090 de forma predeterminada. Puedes cambiar el puerto con esta opción.

cockpit_manage_firewall

cockpit_manage_firewall: false

Variable booleana para controlar el servicio de firewall de cockpit con el rol firewall. Si la variable está configurada como false, el rol cockpit no gestiona el firewall. Valor predeterminado false.

NOTA: cockpit_manage_firewall está limitado a agregar puertos. No se puede usar para eliminar puertos. Si deseas eliminar puertos, necesitarás usar el rol de sistema de firewall directamente.

NOTA: Esta funcionalidad sólo es compatible cuando el os_family del host gestionado es RedHat.

cockpit_manage_selinux

cockpit_manage_selinux: false

Bandera booleana que permite configurar selinux usando el rol selinux. La política predeterminada de SELinux no permite que Cockpit escuche nada más que el puerto 9090. Si cambias el puerto, habilita esto para usar el rol selinux y establecer los permisos de puerto correctos (websm_port_t). Si la variable está configurada como false, el rol cockpit no gestiona los permisos de SELinux del puerto de cockpit.

NOTA: cockpit_manage_selinux está limitado a agregar políticas. No se puede usar para eliminar políticas. Si deseas eliminar políticas, necesitarás usar el rol de sistema selinux directamente.

NOTA: Esta funcionalidad sólo es compatible cuando el os_family del host gestionado es RedHat.

Consulta también la guía de Cockpit para más detalles.

cockpit_transactional_update_reboot_ok

cockpit_transactional_update_reboot_ok: true

Esta variable se utiliza para manejar los reinicios requeridos por actualizaciones transaccionales. Si una actualización transaccional requiere un reinicio, el rol procederá con el reinicio si cockpit_transactional_update_reboot_ok está configurado como verdadero. Si se establece como falso, el rol notificará al usuario que se requiere un reinicio, permitiendo un manejo personalizado de la necesidad de reinicio. Si esta variable no está configurada, el rol fallará para asegurar que no se pase por alto el requisito de reinicio.

Configuración de Certificados

De manera predeterminada, Cockpit crea un certificado autofirmado para sí mismo en el primer inicio. Esto debe personalizarse para entornos que utilizan certificados reales.

Usar un certificado existente

Si tu servidor ya tiene algún certificado que deseas que Cockpit use también, apunta las opciones de rol cockpit_cert y cockpit_private_key a él:

cockpit_cert: /ruta/al/servidor.crt
cockpit_private_key: /ruta/al/servidor.key

Esto creará enlaces simbólicos en /etc/cockpit/ws-certs.d/50-system-role.{crt,key}.

Ten en cuenta que esta funcionalidad requiere al menos Cockpit versión 257, es decir, RHEL ≥ 8.6 o ≥ 9.0, o Fedora ≥ 34.

Generar un nuevo certificado

Para generar un nuevo certificado para Cockpit, se recomienda configurar la variable cockpit_certificates. El valor de cockpit_certificates se pasa a la variable certificate_requests del rol certificate llamado internamente en el rol cockpit y genera la clave privada y el certificado. Para los parámetros compatibles de cockpit_certificates, consulta la sección de documentación del rol certificate_requests.

Cuando configuras cockpit_certificates, no debes configurar las variables cockpit_private_key y cockpit_cert, ya que serán ignoradas.

Este ejemplo instala Cockpit con un certificado de servidor web emitido por IdM, suponiendo que tus máquinas estén unidas a un dominio FreeIPA.

    - name: Instalar cockpit con certificado de servidor web de Cockpit
      include_role:
        name: linux-system-roles.cockpit
      vars:
        cockpit_certificates:
          - name: monger-cockpit
            dns: ['localhost', 'www.ejemplo.com']
            ca: ipa
            group: cockpit-ws

Nota: Generar un nuevo certificado utilizando el rol de sistema certificate en el playbook sigue siendo compatible.

Este ejemplo también instala Cockpit con un certificado de servidor web emitido por IdM.

    # Este paso solo es necesario para versiones de Cockpit < 255; en particular en RHEL/CentOS 8
    - name: Permitir que certmonger escriba en el directorio de certificados de Cockpit
      file:
        path: /etc/cockpit/ws-certs.d/
        state: directory
        setype: cert_t

    - name: Generar certificado de servidor web de Cockpit
      include_role:
        name: fedora.linux_system_roles.certificate
      vars:
        certificate_requests:
          - name: /etc/cockpit/ws-certs.d/monger-cockpit
            dns: ['localhost', 'www.ejemplo.com']
            ca: ipa
            group: cockpit-ws  # o cockpit-wsinstance en versiones más nuevas de cockpit

NOTA: El rol certificate, a menos que utilices IPA y unas los sistemas a un dominio IPA, crea certificados autofirmados, por lo que necesitarás configurar la confianza explícitamente, lo cual no es actualmente compatible con los roles de sistema. Para usar ca: self-sign o ca: local, dependiendo de cómo uses certmonger, consulta la documentación de linux-system-roles.certificate para más detalles.

NOTA: La creación de un certificado autofirmado no es compatible en RHEL/CentOS-7.

Playbooks de Ejemplo

El ejemplo más simple.

---
- name: Gestionar cockpit
  hosts: fedora, rhel7, rhel8
  become: true
  roles:
    - linux-system-roles.cockpit

Otro ejemplo, incluyendo el rol como una tarea para controlar cuándo se realiza la acción. También se recomienda configurar el firewall usando el rol fedora.linux_system_roles.firewall para que el servicio sea accesible.

---
tasks:
  - name: Instalar Consola Web RHEL/Fedora (Cockpit)
    include_role:
      name: linux-system-roles.cockpit
    vars:
      cockpit_packages: default
      #cockpit_packages: minimal
      #cockpit_packages: full

  - name: Configurar Firewall para la Consola Web
    include_role:
      name: fedora.linux_system_roles.firewall
    vars:
      firewall:
        service: cockpit
        state: enabled

rpm-ostree

Consulta README-ostree.md

Licencia

GPLv3

Acerca del proyecto

Install and enable the Cockpit Web Console

Instalar
ansible-galaxy install linux-system-roles.cockpit
Licencia
gpl-3.0
Descargas
170k
Propietario