A.2. 문제 진단
일반적인 컨테이너 기반 문제 해결의 경우 실행 중인 모든 서비스의 컨테이너 로그를 검사하여 기본 문제를 해결할 수 있습니다.
실행 중인 컨테이너 식별
실행 중인 컨테이너 이름 목록을 가져오려면 다음 명령을 실행합니다.
$ podman ps --all --format "{{.Names}}"
| 구성 요소 그룹 | 컨테이너 이름 | 목적 |
|---|---|---|
| 자동화 컨트롤러 |
| 자동화 컨트롤러에 대한 중앙 집중식 로깅을 처리합니다. |
| 자동화 컨트롤러 |
| 실행 중인 플레이북 및 인벤토리와의 상호 작용과 같은 자동화 컨트롤러와 관련된 작업을 관리하고 실행합니다. |
| 자동화 컨트롤러 |
| 자동화 컨트롤러를 위한 REST API를 제공하는 웹 서버입니다. 이는 사용자 상호 작용을 위해 플랫폼 게이트웨이를 통해 액세스 및 라우팅됩니다. |
| 이벤트 기반 Ansible |
| 이벤트 기반 Ansible용 API를 노출하여 외부 시스템이 이벤트 중심 자동화를 트리거하고 관리할 수 있습니다. |
| 이벤트 기반 Ansible |
| WebSocket 연결을 처리하고 정적 파일을 제공하는 이벤트 기반 Ansible용 웹 서버입니다. |
| 이벤트 기반 Ansible |
| 이벤트 기반 Ansible을 위한 REST API를 제공하는 웹 서버입니다. 이는 사용자 상호 작용을 위해 플랫폼 게이트웨이를 통해 액세스 및 라우팅됩니다. |
| 이벤트 기반 Ansible |
| 이러한 컨테이너는 들어오는 이벤트를 기반으로 자동화 규칙 및 플레이북을 실행합니다. |
| 이벤트 기반 Ansible |
| 이러한 컨테이너는 자동화 규칙 활성화를 관리하여 특정 조건이 충족될 때 실행되도록 합니다. |
| 이벤트 기반 Ansible |
| 반복 작업 및 규칙 활성화 예약 및 관리를 담당합니다. |
| 플랫폼 게이트웨이 |
| 역방향 프록시 역할을 하며 수신 요청을 적절한 Ansible Automation Platform 서비스로 라우팅합니다. |
| 플랫폼 게이트웨이 |
| 플랫폼에 대한 인증, 권한 부여 및 전체 요청 처리를 담당합니다. 이 플랫폼은 모두 REST API를 통해 노출되어 웹 서버에서 제공합니다. |
| 자동화 허브 |
| 자동화 허브를 위한 API를 제공하여 컬렉션 콘텐츠, 사용자 관리 및 기타 자동화 허브 기능과 상호 작용할 수 있습니다. |
| 자동화 허브 |
| 자동화 허브에 저장된 Ansible 콘텐츠 컬렉션, 역할 및 모듈을 관리하고 제공합니다. |
| 자동화 허브 |
| 자동화 허브를 위한 REST API를 제공하는 웹 서버입니다. 이는 사용자 상호 작용을 위해 플랫폼 게이트웨이를 통해 액세스 및 라우팅됩니다. |
| 자동화 허브 |
| 이러한 컨테이너는 콘텐츠 동기화, 인덱싱 및 검증과 같은 자동화 허브의 백그라운드 작업을 처리합니다. |
| Performance Co- Cryostat |
| Performance Co- Cryostat Monitoring이 활성화된 경우 이 컨테이너는 시스템 성능 모니터링 및 데이터 수집에 사용됩니다. |
| PostgreSQL |
| Ansible Automation Platform용 PostgreSQL 데이터베이스를 호스팅합니다. |
| 수신기 |
| Ansible Automation Platform 내에서 안전하고 신뢰할 수 있는 통신을 용이하게 합니다. |
| Redis |
| 캐싱, 실시간 분석 및 빠른 데이터 검색을 담당합니다. |
로그 검사
컨테이너화된 Ansible Automation Platform은 Podman 로깅에 journald 를 사용합니다. 실행 중인 컨테이너 로그를 검사하려면 journalctl 명령을 실행합니다.
$ journalctl CONTAINER_NAME=<container_name>
출력이 있는 명령 예:
$ journalctl CONTAINER_NAME=automation-gateway-proxy
Oct 08 01:40:12 aap.example.org automation-gateway-proxy[1919]: [2024-10-08 00:40:12.885][2][info][upstream] [external/envoy/source/common/upstream/cds_ap>
Oct 08 01:40:12 aap.example.org automation-gateway-proxy[1919]: [2024-10-08 00:40:12.885][2][info][upstream] [external/envoy/source/common/upstream/cds_ap>
Oct 08 01:40:19 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T00:40:16.753Z] "GET /up HTTP/1.1" 200 - 0 1138 10 0 "192.0.2.1" "python->
실행 중인 컨테이너의 로그를 실시간으로 보려면 podman logs -f 명령을 실행합니다.
$ podman logs -f <container_name>
컨테이너 작업 제어
systemctl 명령을 실행하여 컨테이너의 작업을 제어할 수 있습니다.
$ systemctl --user status <container_name>
출력이 있는 명령 예:
$ systemctl --user status automation-gateway-proxy
● automation-gateway-proxy.service - Podman automation-gateway-proxy.service
Loaded: loaded (/home/user/.config/systemd/user/automation-gateway-proxy.service; enabled; preset: disabled)
Active: active (running) since Mon 2024-10-07 12:39:23 BST; 23h ago
Docs: man:podman-generate-systemd(1)
Process: 780 ExecStart=/usr/bin/podman start automation-gateway-proxy (code=exited, status=0/SUCCESS)
Main PID: 1919 (conmon)
Tasks: 1 (limit: 48430)
Memory: 852.0K
CPU: 2.996s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/automation-gateway-proxy.service
└─1919 /usr/bin/conmon --api-version 1 -c 2dc3c7b2cecd73010bad1e0aaa806015065f92556ed3591c9d2084d7ee209c7a -u 2dc3c7b2cecd73010bad1e0aaa80>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:02.926Z] "GET /api/galaxy/_ui/v1/settings/ HTTP/1.1" 200 - 0 654 58 47 ">
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:03.387Z] "GET /api/controller/v2/config/ HTTP/1.1" 200 - 0 4018 58 44 "1>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:03.370Z] "GET /api/galaxy/v3/plugin/ansible/search/collection-versions/?>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:03.405Z] "GET /api/controller/v2/organizations/?role_level=notification_>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:04.366Z] "GET /api/galaxy/_ui/v1/me/ HTTP/1.1" 200 - 0 1368 79 40 "192.1>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:04.360Z] "GET /api/controller/v2/workflow_approvals/?page_size=200&statu>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:04.379Z] "GET /api/controller/v2/job_templates/7/ HTTP/1.1" 200 - 0 1356>
Oct 08 11:44:10 aap.example.org automation-gateway-proxy[1919]: [2024-10-08T10:44:04.378Z] "GET /api/galaxy/_ui/v1/feature-flags/ HTTP/1.1" 200 - 0 207 81>
Oct 08 11:44:13 aap.example.org automation-gateway-proxy[1919]: [2024-10-08 10:44:13.856][2][info][upstream] [external/envoy/source/common/upstream/cds_ap>
Oct 08 11:44:13 aap.example.org automation-gateway-proxy[1919]: [2024-10-08 10:44:13.856][2][info][upstream] [external/envoy/source/common/upstream/cds_ap
실행 플레인에 대한 컨테이너 정보 가져오기
자동화 컨트롤러, 이벤트 기반 Ansible 및 execution_nodes 노드에 대한 컨테이너 정보를 가져오려면 다음 중 하나를 사용하여 모든 Podman 명령 접두사를 지정합니다.
CONTAINER_HOST=unix://run/user/<user_id>/podman/podman.sock
또는
CONTAINERS_STORAGE_CONF=<user_home_directory>/aap/containers/storage.conf
출력 예:
$ CONTAINER_HOST=unix://run/user/1000/podman/podman.sock podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel8 latest 59d1bc680a7c 6 days ago 2.24 GB
registry.redhat.io/ansible-automation-platform-25/ee-minimal-rhel8 latest a64b9fc48094 6 days ago 338 MB