15.2. podman RHEL 시스템 역할을 사용하여 Podman 볼륨에서 rootful 컨테이너 생성
podman
RHEL 시스템 역할을 사용하여 Ansible 플레이북을 실행하고 이를 사용하여 애플리케이션 구성을 관리하여 Podman 볼륨에 rootful 컨테이너를 생성할 수 있습니다.
예제 Ansible 플레이북은 registry.access.redhat.com/ubi8/httpd-24
이미지에서 HTTP 서버 컨테이너를 실행하는 ubi8-httpd
라는 Kubernetes 포드를 배포합니다. 컨테이너의 웹 콘텐츠는 ubi8-html-volume
이라는 영구 볼륨에서 마운트됩니다. 기본적으로 podman
역할은 rootful 컨테이너를 생성합니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.- name: Configure Podman hosts: managed-node-01.example.com tasks: - name: Start Apache server on port 8080 ansible.builtin.include_role: name: rhel-system-roles.podman 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
예제 플레이북에 지정된 설정은 다음과 같습니다.
kube_file_content
db
라는 첫 번째 컨테이너를 정의하는 Kubernetes YAML 파일이 포함되어 있습니다.podman kube generate
명령을 사용하여 Kubernetes YAML 파일을 생성할 수 있습니다.-
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
이라는 기존 영구 볼륨을 마운트합니다.
-
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.podman/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
$ 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/
디렉터리