13.3. 使用 podman RHEL 系统角色创建一个带有 secret 的 Quadlet 应用程序
				您可以使用 podman RHEL 系统角色,通过运行 Ansible playbook 来创建一个带有 secret 的 Quadlet 应用程序。
			
先决条件
- 您已准备好控制节点和受管节点
 - 以可在受管主机上运行 playbook 的用户登录到控制节点。
 - 
						您用于连接到受管节点的帐户对它们具有 
sudo权限。 - 
						容器中的 web 服务器应使用的证书和相应的私钥存储在 
~/certificate.pem和~/key.pem文件中。 
流程
显示证书和私钥文件的内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您在后续步骤中需要此信息。
将敏感变量存储在加密的文件中:
创建 vault :
ansible-vault create ~/vault.yml
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
ansible-vault create命令打开编辑器后,以<key>: <value>格式输入敏感数据:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保
certificate和key变量中的所有行都以两个空格开头。- 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
 
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 流程创建一个与 MySQL 数据库配对的 WordPress 内容管理系统。
podman_quadlet_specs 角色变量为 Quadlet 定义一组配置,它指向以某种方式一起工作的一组容器或服务。它包括以下规范:- 
								Wordpress 网络由 
quadlet-demo网络单元定义。 - 
								MySQL 容器的卷配置由 
file_src: quadlet-demo-mysql.volume字段定义。 - 
								
template_src: quadlet-demo-mysql.container.j2字段用于为 MySQL 容器生成一个配置。 - 
								两个 YAML 文件如下:
file_src: envoy-proxy-configmap.yml和file_src: quadlet-demo.yml.请注意,.yml 不是一个有效的 Quadlet 单元类型,因此这些文件将只被复制,且不会作为 Quadlet 规范来处理。 Wordpress 和 envoy 代理容器和配置由
file_src: quadlet-demo.kube字段定义。kube 单元将之前[Kube]部分中的 YAML 文件称为Yaml=quadlet-demo.yml和ConfigMap=envoy-proxy-configmap.yml。有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.podman/README.md文件。
- 
								Wordpress 网络由 
 验证 playbook 语法:
ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow