15.2. Podman 볼륨을 사용하여 루트 컨테이너 생성
podman
RHEL 시스템 역할을 사용하여 Ansible 플레이북을 실행하고 이를 사용하여 애플리케이션 구성을 관리하여 Podman 볼륨에 rootful 컨테이너를 생성할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/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
역할은 rootful 컨테이너를 생성합니다. Kubernetes YAML 파일이 포함된
kube_file_content
필드는ubi8-httpd
라는 컨테이너를 정의합니다.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
이라는 기존 영구 볼륨을 마운트합니다.
-
-
기본적으로
플레이북 구문을 확인합니다.
$ 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/
디렉터리