20.2. 使用 Podman 卷创建有根容器
您可以通过运行 Ansible playbook 并使用它来管理应用程序配置,使用 podman
RHEL 系统角色创建带有 Podman 卷的 rootful 容器。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 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
此流程创建一个具有一个容器的 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
标志使用私有 unshared 标签标记内容,因此只有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/
directory