linux-system-roles.cockpit

コックピット

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

コックピットWebコンソールをRHEL、CentOS、Fedora、Debian、Ubuntuなどの対応ディストリビューションにインストールおよび設定します。

要件

RHEL/CentOS 7.xでは、Extrasリポジトリが有効である必要があります。

コレクション要件

この役割は、cockpit_manage_firewallcockpit_manage_selinuxをそれぞれtrueに設定した場合に、fedora.linux_system_rolesコレクションからfirewall役割とselinux役割を必要とします。詳細はRole Variablescockpit_manage_firewallcockpit_manage_selinuxを参照してください。

cockpitfedora.linux_system_rolesコレクションからの役割かFedora RPMパッケージの場合、要件はすでに満たされています。

この役割でrpm-ostreeシステムを管理したい場合は、追加のコレクションをインストールする必要があります。以下のコマンドを実行してコレクションをインストールしてください。

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

役割変数

ディストリビューションごとの利用可能な変数は、以下にデフォルト値と共に示されています(defaults/main.ymlを参照)。

cockpit_packages

主要な変数はcockpit_packagesで、インストールしたい自分のコックピットパッケージの選択を指定するか、defaultminimalfullの3つの事前定義されたパッケージセットの1つを選択できます。明示的にこの変数を定義しない場合はdefaultが選択されます。インストールされるパッケージは、ディストリビューションとバージョンによって異なる可能性があります。また、cockpit-dockerなど、すべてのディストリビューションで利用できないパッケージもあります。

インストールする明示的なコックピットパッケージの例。依存関係により、最小限のコックピットパッケージが引き込まれ、動作します。

cockpit_packages:
  - cockpit-storaged
  - cockpit-podman

事前定義されたパッケージセットを使用する例。これは推奨されるインストール方法です。

cockpit_packages: default
    # equivalent to
    #  - cockpit
    #  - cockpit-networkmanager
    #  - cockpit-packagekit
    #  - cockpit-selinux
    #  - cockpit-storaged

cockpit_packages: minimal
    # equivalent to
    #  - cockpit-system
    #  - cockpit-ws

cockpit_packages: full
    # equivalent to globbing all of them
    #  - 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

コックピットが自動的に起動するかどうかを制御するブール変数(デフォルトはtrue)。

cockpit_started

cockpit_started: true

コックピットを起動/実行するかどうかを制御するブール変数(デフォルトはtrue)。

cockpit_config

cockpit_config:                               # /etc/cockpit/cockpit.confを設定
  WebService:                                 # "WebService"設定セクションを指定
    LoginTitle: "カスタムログイン画面のタイトル"   # "WebService"セクションの"LoginTitle"を設定
    MaxStartups: 20                           # "WebService"セクションの"MaxStartups"を設定
  Session:                                    # "Session"設定セクションを指定
    IdleTimeout: 15                           # "Session"セクションの"IdleTimeout"を設定
    Banner: "/etc/motd"                       # "Session"セクションの"Banner"を設定

/etc/cockpit/cockpit.confファイルで設定を構成します。利用可能な設定のリストについては、man cockpit.confを参照してください。以前の設定は失われます。役割変数で指定されていなくても、以前の設定を保持または統合しようとはしません。構成ファイルは完全に置き換えられます。

cockpit_port

cockpit_port: 9090

コックピットはデフォルトでポート9090で実行されます。このオプションでポートを変更できます。

cockpit_manage_firewall

cockpit_manage_firewall: false

firewall役割を使ってcockpitファイアウォールサービスを制御するためのブール変数。この変数がfalseに設定されている場合、cockpit役割はファイアウォールを管理しません。デフォルトはfalseです。

注意: cockpit_manage_firewallポートの追加に限定されています。ポートの削除には使用できません。ポートを削除するには、ファイアウォールシステム役割を直接使用する必要があります。

注意: この機能は、管理対象ホストのos_familyRedHatの場合にのみサポートされています。

cockpit_manage_selinux

cockpit_manage_selinux: false

SELinuxをSELinux役割を使用して構成するためのブールフラグ。デフォルトのSELinuxポリシーでは、コックピットはポート9090以外のものをリッスンすることを許可していません。ポートを変更する場合は、SELinux役割を使用して正しいポート権限(websm_port_t)を設定するために、これを有効にします。この変数がfalseに設定されている場合、cockpit役割はコックピットポートのSELinux権限を管理しません。

注意: cockpit_manage_selinuxポリシーの追加に限定されています。ポリシーの削除には使用できません。ポリシーを削除するには、SELinuxシステム役割を直接使用する必要があります。

注意: この機能は、管理対象ホストのos_familyRedHatの場合にのみサポートされています。

詳細については、コックピットガイドを参照してください。

cockpit_transactional_update_reboot_ok

cockpit_transactional_update_reboot_ok: true

この変数は、トランザクション更新によって必要とされる再起動を処理するために使用されます。トランザクション更新が再起動を必要とする場合、cockpit_transactional_update_reboot_oktrueに設定されているとロールは再起動を実行します。falseに設定されている場合、ロールは再起動が必要であることをユーザーに通知し、再起動要求のカスタム処理を行うことができます。この変数が設定されていない場合、ロールは再起動要求を見逃さないことを保証するために失敗します。

証明書の設定

デフォルトでは、コックピットは初回起動時に自己署名証明書を作成します。実際の証明書を使用する環境ではカスタマイズする必要があります

既存の証明書を使用する

サーバーにすでに証明書がある場合、コックピットとともに使用したい場合は、cockpit_certcockpit_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}のシンボリックリンクが作成されます。

この機能を使用するには少なくともコックピットバージョン257が必要です。すなわち、RHEL ≥ 8.6または≥ 9.0、またはFedora ≥ 34です。

新しい証明書を生成する

コックピット用に新しい証明書を生成するには、cockpit_certificates変数を設定することをお勧めします。cockpit_certificatesの値は、cockpit役割内で内部的に呼び出されるcertificate役割のcertificate_requests変数に渡され、プライベートキーと証明書が生成されます。cockpit_certificatesのサポートされているパラメータについては、certificate_requests役割の文書セクションを参照してください。

cockpit_certificatesを設定する場合、cockpit_private_keyおよびcockpit_cert変数は設定しないでください。これらは無視されます。

この例では、FreeIPAドメインにマシンが参加していることを前提に、IdMから発行されたWebサーバー証明書を使用してコックピットをインストールします。

    - name: コックピットをIdM発行のWebサーバー証明書とともにインストール
      include_role:
        name: linux-system-roles.cockpit
      vars:
        cockpit_certificates:
          - name: monger-cockpit
            dns: ['localhost', 'www.example.com']
            ca: ipa
            group: cockpit-ws

注意: プレイブックでcertificateシステム役割を使用して新しい証明書を生成することは引き続きサポートされています。

この例でも、IdM発行のWebサーバー証明書を使用してコックピットをインストールします。

    # このステップはCockpitバージョン<255; 特にRHEL/CentOS 8に必要です
    - name: certmongerがコックピットの証明書ディレクトリに書き込むことを許可する
      file:
        path: /etc/cockpit/ws-certs.d/
        state: directory
        setype: cert_t

    - name: コックピットのWebサーバー証明書を生成する
      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

注意: certificate役割は、IPAを使用してシステムをIPAドメインに参加させる場合を除き、自己署名証明書を生成します。そのため、信頼を明示的に設定する必要がありますが、現在のシステム役割ではサポートされていません。信頼を使用する場合は、linux-system-roles.certificateの文書を参照してください。

注意: RHEL/CentOS-7では自己署名証明書の作成はサポートされていません。

例プレイブック

最もシンプルな例。

---
- name: コックピットを管理
  hosts: fedora, rhel7, rhel8
  become: true
  roles:
    - linux-system-roles.cockpit

もう一つの例で、タスクとして役割を含めてアクションを制御します。このサービスを利用可能にするために、fedora.linux_system_roles.firewall役割を使ってファイアウォールを構成することも推奨されます。

---
tasks:
  - name: RHEL/FedoraのWebコンソール(コックピット)をインストール
    include_role:
      name: linux-system-roles.cockpit
    vars:
      cockpit_packages: default
      #cockpit_packages: minimal
      #cockpit_packages: full

  - name: Webコンソールのためのファイアウォールを構成する
    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
ダウンロード
170k