15.2. Podman 볼륨을 사용하여 rootful 컨테이너 생성
Ansible 플레이북을 실행하고 이를 사용하여 애플리케이션 구성을 관리하여 Podman 볼륨에서 rootful 컨테이너를 생성하려면 Podman 시스템 역할을 사용할 수 있습니다.
사전 요구 사항
- 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 역할은 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 -i inventory_file인벤토리 파일에서 플레이북을 실행합니다.
# ansible-playbook -i inventory_file playbook.yml