linux-system-roles.cockpit
Cockpit
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
Install and enable the Cockpit Web Console
ansible-galaxy install linux-system-roles.cockpit