15.2. Podman 볼륨을 사용하여 루트 컨테이너 생성
Podman 시스템 역할을 사용하여 Ansible 플레이북을 실행하고 이를 사용하여 애플리케이션 구성을 관리하여 Podman 볼륨에 rootful 컨테이너를 생성할 수 있습니다.
사전 요구 사항
- Red Hat Ansible Engine이 다른 시스템을 구성하는 시스템인 제어 노드에 대한 액세스 및 권한.
제어 노드에서 다음을 수행합니다.
-
rhel-system-roles
패키지가 설치되어 있어야 합니다. - 관리할 호스트가 나열되고 적용할 다른 매개변수가 나열된 Ansible 인벤토리 파일입니다.
-
-
ubi8-html-volume
볼륨이 생성되었습니다.
참고
ansible-playbook
명령은 rhel-system-roles
패키지의 종속성으로 자동 설치해야 하는 ansible-core
패키지에서 제공합니다.
절차
다음 내용으로 새 playbook.yml 파일을 생성합니다.
- hosts: all 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
플래그는 비공개의 공유되지 않은 레이블을 사용하여 콘텐츠에 레이블을 지정하므로ubi8-httpd
컨테이너만 콘텐츠에 액세스할 수 있습니다. -
Pod는 마운트 경로
/var/www/html
을 사용하여ubi8-html-volume
이라는 기존 영구 볼륨을 마운트합니다.
-
선택 사항: 플레이북 구문을 확인합니다.
# ansible-playbook --syntax-check playbook.yml -i inventory_file
인벤토리 파일에서 플레이북을 실행합니다.
# ansible-playbook -i inventory_file playbook.yml
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.podman/README.md
파일 - Podman 시스템 역할 설명서