15.2. Podman ボリュームを使用した rootful コンテナーの作成
podman
RHEL システムロールを使用すると、Ansible Playbook を実行して Podman ボリュームを持つルートフルコンテナーを作成し、アプリケーション設定を管理できます。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。- hosts: managed-node-01.example.com 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
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.podman/README.md
ファイル -
/usr/share/doc/rhel-system-roles/podman/
ディレクトリー