21.2. podman RHEL システムロールを使用した Podman ボリュームを持つルートフルコンテナーの作成


podman RHEL システムロールを使用すると、Ansible Playbook を実行して Podman ボリュームを持つルートフルコンテナーを作成し、アプリケーション設定を管理できます。

サンプルの Ansible Playbook は、ubi8-httpd という名前の Kubernetes Pod をデプロイします。この Pod は、registry.access.redhat.com/ubi8/httpd-24 イメージから HTTP サーバーコンテナーを実行します。コンテナーの Web コンテンツは、ubi8-html-volume という名前の永続ボリュームからマウントされます。デフォルトでは、podman ロールはルートフルコンテナーを作成します。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    - name: Configure Podman
      hosts: managed-node-01.example.com
      tasks:
        - name: Start Apache server on port 8080
          ansible.builtin.include_role:
            name: rhel-system-roles.podman
      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

    サンプル Playbook で指定されている設定は次のとおりです。

    kube_file_content

    db という名前の 1 つ目コンテナーを定義する Kubernetes YAML ファイルが含まれています。Kubernetes YAML ファイルは、podman kube generate コマンドを使用して生成できます。

    • 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 で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.podman/README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.podman/README.md ファイル
  • /usr/share/doc/rhel-system-roles/podman/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.