15.2. Podman ボリュームを使用した rootful コンテナーの作成
Podman システムロールを使用すると、Ansible Playbook を実行して Podman ボリュームを持つルートフルコンテナーを作成し、アプリケーション設定を管理できます。
前提条件
- コントロールノード (このシステムから Red Hat Ansible Engine は他のシステムを設定) へのアクセスおよびパーミッション。
コントロールノードでは、
-
rhel-system-roles
パッケージがインストールされている。 - マネージドのホストと適用するその他のパラメーターをリストした Ansible インベントリーファイル。
-
-
ubi8-html-volume
ボリュームが作成されました。
注記
ansible-playbook
コマンドは、rhel-system-roles
パッケージの依存関係として自動的にインストールされる ansible-core
パッケージによって提供されます。
手順
以下のコンテンツを含む新しい playbook.yml ファイルを作成します。
- hosts: all vars: podman_firewall: - port: 8080/tcp state: enabled podman_kube_specs: - state: started kube_file_content: apiVersion: v1 kind: Pod metadata: name: ubi8-httpd spec: containers: - name: ubi8-httpd image: registry.access.redhat.com/ubi8/httpd-24 ports: - containerPort: 8080 hostPort: 8080 volumeMounts: - mountPath: /var/www/html:Z name: ubi8-html volumes: - name: ubi8-html persistentVolumeClaim: claimName: ubi8-html-volume roles: - linux-system-roles.podman
この手順では、1 つのコンテナーを含む Pod を作成します。
podman_kube_specs
ロール変数は Pod を記述します。- デフォルトでは、Podman ロールはルートフルコンテナーを作成します。
Kubernetes YAML ファイルを含む
kube_file_content
フィールドは、ubi8-httpd
という名前のコンテナーを定義します。ubi8-httpd
コンテナーは、registry.access.redhat.com/ubi8/httpd-24
コンテナーイメージに基づいています。-
ubi8-html-volume
は、ホスト上の/var/www/html
ディレクトリーをコンテナーにマップします。Z
フラグはコンテンツにプライベート非共有ラベルを付けるため、ubi8-httpd
コンテナーのみがコンテンツにアクセスできます。 -
Pod は、マウントパス
/var/www/html
を使用して、ubi8-html-volume
という名前の既存の永続ボリュームをマウントします。
-
オプション: Playbook の構文を確認します。
# ansible-playbook --syntax-check playbook.yml -i inventory_file
インベントリーファイルで Playbook を実行します。
# ansible-playbook -i inventory_file playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.podman/README.md
ファイル - Podman システムロールのドキュメント