13.3. podman RHEL 시스템 역할을 사용하여 시크릿이 있는 Quadlet 애플리케이션 생성
podman
RHEL 시스템 역할을 사용하여 Ansible 플레이북을 실행하여 시크릿과 함께 Quadlet 애플리케이션을 생성할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다. -
인증서 및 컨테이너의 웹 서버가 사용해야 하는 해당 개인 키는
~/certificate.pem
및~/key.pem
파일에 저장됩니다.
프로세스
인증서 및 개인 키 파일의 내용을 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 정보는 이후 단계에서 필요합니다.
중요한 변수를 암호화된 파일에 저장합니다.
자격 증명 모음을 생성합니다.
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 인증서
및키
변수의 모든 행이 두 개의 공백으로 시작하는지 확인합니다.- 변경 사항을 저장하고 편집기를 종료합니다. Ansible은 자격 증명 모음의 데이터를 암호화합니다.
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 절차에서는 MySQL 데이터베이스와 페어링된 grub 콘텐츠 관리 시스템을 생성합니다.
podman_quadlet_specs 역할
변수는 특정 방식으로 함께 작동하는 컨테이너 또는 서비스 그룹을 참조하는 Quadlet의 구성 세트를 정의합니다. 여기에는 다음 사양이 포함됩니다.-
Wordpress 네트워크는
쿼드릿-demo
네트워크 단위로 정의됩니다. -
MySQL 컨테이너의 볼륨 구성은
file_src: quadlet-demo-mysql.volume
필드에 의해 정의됩니다. -
template_src: quadlet-demo-mysql.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
로 참조합니다.플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.podman/README.md
파일을 참조하십시오.
-
Wordpress 네트워크는
플레이북 구문을 확인합니다.
ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow