cockpit

Cockpit

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

Устанавливает и настраивает веб-консоль 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
Лицензия
gpl-3.0
Загрузки
147787
Владелец