14.3. podman RHEL システムロールを使用した Podman ボリュームを持つルートフルコンテナーの作成
podman RHEL システムロールを使用すると、Ansible Playbook を実行して Podman ボリュームを持つルートフルコンテナーを作成し、アプリケーション設定を管理できます。
この Ansible Playbook の例では、ubi10-httpd という名前の Kubernetes Pod をデプロイします。この Pod は、registry.access.redhat.com/ubi10/httpd-24 イメージから HTTP サーバーコンテナーを実行します。コンテナーの Web コンテンツは、ubi10-html-volume という名前の永続ボリュームからマウントされます。デフォルトでは、podman ロールはルートフルコンテナーを作成します。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
kube_file_contentdbという名前の 1 つ目コンテナーを定義する Kubernetes YAML ファイルが含まれています。Kubernetes YAML ファイルは、podman kube generateコマンドを使用して生成できます。-
ubi10-httpdコンテナーは、registry.access.redhat.com/ubi10/httpd-24コンテナーイメージに基づいています。 -
ubi10-html-volumeは、ホスト上の/var/www/htmlディレクトリーをコンテナーにマッピングします。Zフラグにより、コンテンツにプライベート非共有ラベルが付与されます。そのため、そのコンテンツにアクセスできるのはubi10-httpdコンテナーだけです。 -
Pod は、マウントパス
/var/www/htmlを使用して、ubi10-html-volumeという名前の既存の永続ボリュームをマウントします。
-
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.podman/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow