linux-system-roles.cockpit
コックピット
コックピットWebコンソールをRHEL、CentOS、Fedora、Debian、Ubuntuなどの対応ディストリビューションにインストールおよび設定します。
要件
RHEL/CentOS 7.xでは、Extrasリポジトリが有効である必要があります。
コレクション要件
この役割は、cockpit_manage_firewall
とcockpit_manage_selinux
をそれぞれtrue
に設定した場合に、fedora.linux_system_roles
コレクションからfirewall
役割とselinux
役割を必要とします。詳細はRole Variables
のcockpit_manage_firewall
とcockpit_manage_selinux
を参照してください。
cockpit
がfedora.linux_system_roles
コレクションからの役割かFedora RPMパッケージの場合、要件はすでに満たされています。
この役割でrpm-ostree
システムを管理したい場合は、追加のコレクションをインストールする必要があります。以下のコマンドを実行してコレクションをインストールしてください。
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
役割変数
ディストリビューションごとの利用可能な変数は、以下にデフォルト値と共に示されています(defaults/main.yml
を参照)。
cockpit_packages
主要な変数はcockpit_packages
で、インストールしたい自分のコックピットパッケージの選択を指定するか、default
、minimal
、full
の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_family
がRedHat
の場合にのみサポートされています。
cockpit_manage_selinux
cockpit_manage_selinux: false
SELinuxをSELinux役割を使用して構成するためのブールフラグ。デフォルトのSELinuxポリシーでは、コックピットはポート9090以外のものをリッスンすることを許可していません。ポートを変更する場合は、SELinux役割を使用して正しいポート権限(websm_port_t)を設定するために、これを有効にします。この変数がfalse
に設定されている場合、cockpit
役割はコックピットポートのSELinux権限を管理しません。
注意: cockpit_manage_selinux
はポリシーの追加に限定されています。ポリシーの削除には使用できません。ポリシーを削除するには、SELinuxシステム役割を直接使用する必要があります。
注意: この機能は、管理対象ホストのos_family
がRedHat
の場合にのみサポートされています。
詳細については、コックピットガイドを参照してください。
cockpit_transactional_update_reboot_ok
cockpit_transactional_update_reboot_ok: true
この変数は、トランザクション更新によって必要とされる再起動を処理するために使用されます。トランザクション更新が再起動を必要とする場合、cockpit_transactional_update_reboot_ok
がtrue
に設定されているとロールは再起動を実行します。false
に設定されている場合、ロールは再起動が必要であることをユーザーに通知し、再起動要求のカスタム処理を行うことができます。この変数が設定されていない場合、ロールは再起動要求を見逃さないことを保証するために失敗します。
証明書の設定
デフォルトでは、コックピットは初回起動時に自己署名証明書を作成します。実際の証明書を使用する環境ではカスタマイズする必要があります。
既存の証明書を使用する
サーバーにすでに証明書がある場合、コックピットとともに使用したい場合は、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}
のシンボリックリンクが作成されます。
この機能を使用するには少なくともコックピットバージョン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