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