cockpit
Cockpit
Устанавливает и настраивает веб-консоль Cockpit для дистрибутивов, которые ее поддерживают, таких как RHEL, CentOS, Fedora, Debian и Ubuntu.
Требования
RHEL/CentOS 7.x требуют включения репозитория Extras.
Требования к коллекциям
Роль требует роль firewall
и роль selinux
из коллекции fedora.linux_system_roles
, если cockpit_manage_firewall
и cockpit_manage_selinux
установлены в true
соответственно. Пожалуйста, смотрите также cockpit_manage_firewall
и cockpit_manage_selinux
в Переменные ролей
.
Если cockpit
является ролью из коллекции fedora.linux_system_roles
или из пакета RPM Fedora, требование уже удовлетворено.
Если вы хотите управлять системами rpm-ostree
с помощью этой роли, вам потребуется установить дополнительные коллекции. Пожалуйста, выполните следующую команду для установки коллекции.
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Переменные ролей
Доступные переменные по дистрибутивам перечислены ниже вместе с значениями по умолчанию (см. defaults/main.yml
):
cockpit_packages
Основная переменная — cockpit_packages
, которая позволяет выбрать собственные пакеты Cockpit для установки или выбрать один из трех предопределенных наборов пакетов: default
, minimal
или full
. Очевидно, что default
выбирается, если вы не определяете эту переменную. Обратите внимание, что устанавливаемые пакеты могут различаться в зависимости от дистрибутива и версии, так как с течением времени предоставлялись разные пакеты функциональности Cockpit. Также некоторые из них могут быть недоступны на всех дистрибутивах, такие как cockpit-docker
, который был удален в RHEL в пользу cockpit-podman
.
Пример явных пакетов Cockpit для установки. Зависимости должны подтянуть минимальные пакеты Cockpit, чтобы они работали.
cockpit_packages:
- cockpit-storaged
- cockpit-podman
Пример использования предопределенных наборов пакетов. Это рекомендуемый метод установки.
cockpit_packages: default
# эквивалентно
# - cockpit
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
cockpit_packages: minimal
# эквивалентно
# - cockpit-system
# - cockpit-ws
cockpit_packages: full
# эквивалентно глобальному выбору всех пакетов
# - cockpit-*
# Это подтянет много пакетов, таких как
# - cockpit ## Список по умолчанию
# - cockpit-bridge
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
# - cockpit-system
# - cockpit-ws
## и все остальные
# - 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
Булева переменная, контролирующая, будет ли Cockpit автоматически запускаться при загрузке (по умолчанию true
).
cockpit_started
cockpit_started: true
Булева переменная, контролирующая, должен ли Cockpit быть запущен (по умолчанию true
).
cockpit_config
cockpit_config: #Настройка /etc/cockpit/cockpit.conf
WebService: #Указать секцию конфигурации "WebService"
LoginTitle: "пользовательский заголовок экрана входа" #Установить "LoginTitle" в секции "WebService"
MaxStartups: 20 #Установить "MaxStartups" в секции "WebService"
Session: #Указать секцию конфигурации "Session"
IdleTimeout: 15 #Установить "IdleTimeout" в секции "Session"
Banner: "/etc/motd" #Установить "Banner" в секции "Session"
Настройте параметры в файле /etc/cockpit/cockpit.conf. Смотрите man cockpit.conf
для списка доступных параметров. Предыдущие настройки будут потеряны, даже если они не указаны в переменной роли (предыдущие настройки не сохраняются и не объединяются, файл конфигурации заменяется полностью).
cockpit_port
cockpit_port: 9090
Cockpit работает на порту 9090 по умолчанию. Вы можете изменить порт с помощью этой опции.
cockpit_manage_firewall
cockpit_manage_firewall: false
Булева переменная для управления службой брандмауэра cockpit
с помощью роли firewall
. Если переменная установлена в false
, роль cockpit
не управляет брандмауэром. По умолчанию false
.
ПРИМЕЧАНИЕ: cockpit_manage_firewall
ограничивается только добавлением портов. Она не может быть использована для удаления портов. Если вы хотите удалить порты, вам нужно будет использовать системную роль брандмауэра напрямую.
ПРИМЕЧАНИЕ: Эта функциональность поддерживается только для семейства ОС RedHat
на управляемом хосте.
cockpit_manage_selinux
cockpit_manage_selinux: false
Булев флаг, позволяющий настроить SELinux с использованием роли selinux. Стандартная политика SELinux не позволяет Cockpit слушать что-либо, кроме порта 9090. Если вы меняете порт, включите этот флажок, чтобы использовать роль SELinux для установки правильных разрешений порта (websm_port_t). Если переменная установлена в false
, роль cockpit
не управляет разрешениями SELinux для порта Cockpit.
ПРИМЕЧАНИЕ: cockpit_manage_selinux
ограничивается только добавлением политики. Она не может быть использована для удаления политики. Если вы хотите удалить политику, вам нужно будет использовать системную роль SELinux напрямую.
ПРИМЕЧАНИЕ: Эта функциональность поддерживается только для семейства ОС RedHat
на управляемом хосте.
Смотрите также Руководство по Cockpit для получения подробной информации.
cockpit_transactional_update_reboot_ok
cockpit_transactional_update_reboot_ok: true
Эта переменная используется для обработки перезагрузок, необходимых в результате транзакционных обновлений. Если транзакционное обновление требует перезагрузки, роль будет продолжать перезагрузку, если cockpit_transactional_update_reboot_ok
установлено в true
. Если установлено в false
, роль уведомит пользователя о необходимости перезагрузки, позволяя пользователю самостоятельно обрабатывать эту ситуацию. Если эта переменная не указана, роль завершится с ошибкой, чтобы не упустить необходимость перезагрузки.
Настройка сертификата
По умолчанию Cockpit создает самоподписанный сертификат для себя при первом запуске. Это должно быть настроено для сред, использующих реальные сертификаты.
Используйте существующий сертификат
Если на вашем сервере уже есть сертификат, который вы хотите использовать в Cockpit, укажите параметры cockpit_cert
и cockpit_private_key
для него:
cockpit_cert: /path/to/server.crt
cockpit_private_key: /path/to/server.key
Это создаст символические ссылки /etc/cockpit/ws-certs.d/50-system-role.{crt,key}
.
Обратите внимание, что эта функциональность требует как минимум версии Cockpit 257, т.е. RHEL ≥ 8.6 или ≥ 9.0, или Fedora ≥ 34.
Генерация нового сертификата
Для генерации нового сертификата для Cockpit рекомендуется установить переменную cockpit_certificates
. Значение cockpit_certificates
передается в переменную certificate_requests
роли certificate
, которая вызывается внутри роли cockpit
и генерирует закрытый ключ и сертификат. Для поддерживаемых параметров cockpit_certificates
смотрите раздел документации роли certificate_requests
.
Когда вы устанавливаете cockpit_certificates
, вы не должны устанавливать переменные cockpit_private_key
и cockpit_cert
, так как они будут игнорироваться.
Этот пример устанавливает Cockpit с сертификатом веб-сервера, выданным IdM, предполагая, что ваши машины присоединены к домену FreeIPA.
- name: Установить cockpit с сертификатом веб-сервера Cockpit
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_certificates:
- name: monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws
Примечание: Генерация нового сертификата с использованием системной роли certificate
в плейбуке остается поддерживаемой.
Этот пример также устанавливает Cockpit с сертификатом веб-сервера, выданным IdM.
# Этот шаг необходим только для версии Cockpit < 255; в частности, на RHEL/CentOS 8
- name: Разрешить certmonger записывать в директорию сертификатов Cockpit
file:
path: /etc/cockpit/ws-certs.d/
state: directory
setype: cert_t
- name: Генерация сертификата веб-сервера Cockpit
include_role:
name: fedora.linux_system_roles.certificate
vars:
certificate_requests:
- name: /etc/cockpit/ws-certs.d/monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws # или cockpit-wsinstance в более новых версиях cockpit
ПРИМЕЧАНИЕ: Роль certificate
, если не использовать IPA и не подключать системы к домену IPA, создает самоподписанные сертификаты, поэтому вам нужно будет явно настроить доверие, что в настоящее время не поддерживается системными ролями. Для использования ca: self-sign
или ca: local
, в зависимости от вашего использования certmonger, смотрите документацию linux-system-roles.certificate для подробностей.
ПРИМЕЧАНИЕ: Создание самоподписанного сертификата не поддерживается на RHEL/CentOS-7.
Примеры плейбуков
Самый простой пример.
---
- name: Управление cockpit
hosts: fedora, rhel7, rhel8
become: true
roles:
- linux-system-roles.cockpit
Другой пример, включая роль как задачу для контроля, когда выполняется действие. Также рекомендуется настраивать брандмауэр с помощью роли fedora.linux_system_roles.firewall, чтобы сделать службу доступной.
---
tasks:
- name: Установка веб-консоли RHEL/Fedora (Cockpit)
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_packages: default
#cockpit_packages: minimal
#cockpit_packages: full
- name: Настройка брандмауэра для веб-консоли
include_role:
name: fedora.linux_system_roles.firewall
vars:
firewall:
service: cockpit
state: enabled
rpm-ostree
Смотрите README-ostree.md
Лицензия
GPLv3
Install and enable the Cockpit Web Console
ansible-galaxy install linux-system-roles/cockpit