소개
현재 EX294 스타일의 워크플로우에는 일관된 인터페이스와 실행 환경 (사용 가능한 경우) 을 통해 자동화를 실행할 수 있는 ansible-navigator가 포함되어 있습니다. 이 LabEx RHEL 10 VM 에는 해당 도구가 설치되어 있으며, 본 실습에서는 워크플로우의 안정성과 속도를 위해 로컬 실행 모드를 사용합니다.
이번 실습에서는 ansible-navigator.yml을 생성하고, stdout 모드를 구성하며, 이 로컬 VM 워크플로우를 위해 실행 환경을 비활성화한 뒤, navigator 를 사용하여 플레이북을 실행해 보겠습니다.
소규모 Navigator 프로젝트 빌드
이 단계에서는 navigator 에 필요한 프로젝트 구조, 인벤토리 및 Ansible 기본 설정을 생성합니다. Navigator 는 ansible-playbook과 동일한 프로젝트 파일을 다수 읽어 들입니다.
디렉토리를 생성하고 프로젝트로 이동합니다.
cd /home/labex/project
mkdir -p rhce-ansible/{inventory,playbooks}
cd rhce-ansible
인벤토리를 생성합니다.
cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF
이 인벤토리는 SSH 대신 navigator 의 동작에 집중할 수 있도록 로컬 호스트 별칭을 하나 사용합니다. 이 별칭은 여전히 중요합니다. navigator 는 플레이북을 Ansible 에 전달하고, Ansible 은 인벤토리를 통해 hosts: control을 해석하기 때문입니다.
navigator 와 Ansible 모두 동일한 인벤토리를 사용하도록 ansible.cfg를 생성합니다.
cat > ansible.cfg <<'EOF'
[defaults]
inventory = ./inventory/hosts
retry_files_enabled = False
interpreter_python = auto_silent
EOF
ansible.cfg에 inventory를 유지하면 나중에 ansible-navigator run 명령을 실행할 때 명시적인 -i 옵션이 필요하지 않습니다. 이는 navigator 워크플로우와 일반적인 Ansible 프로젝트 기본 설정 간의 첫 번째 연결 고리입니다.
Navigator 가용성 확인
이 단계에서는 ansible-navigator가 설치되어 있는지 확인하고 버전을 확인합니다. 구성을 작성하기 전에 도구를 확인하면 오류 발생 시 원인을 더 쉽게 파악할 수 있습니다.
이 단계의 명령을 실행하기 전에 프로젝트 디렉토리로 돌아가 상대 경로가 Ansible 프로젝트를 참조하도록 합니다.
cd /home/labex/project/rhce-ansible
버전 확인 명령을 실행합니다.
ansible-navigator --version
출력 결과에 ansible-navigator 버전 번호가 표시되어야 합니다.
이 명령이 정상적으로 작동한다면 구성을 디버깅하기 전에 도구 자체가 설치되어 있음을 알 수 있습니다. 도구 누락과 잘못된 ansible-navigator.yml 설정은 매우 다른 문제를 야기하므로, 이처럼 단계를 분리하는 것이 유용합니다.
navigator 에게 run 하위 명령에 대한 도움말을 요청합니다.
ansible-navigator run --help | sed -n '1,12p'
도움말 출력은 하위 명령 이름을 확인해주며, navigator 가 플레이북 경로를 필요로 한다는 점을 보여줍니다. 여기서 모든 옵션을 외울 필요는 없습니다. 목표는 설치된 도구에 도움을 요청하는 방법을 익히는 것입니다.
ansible-navigator.yml 작성
이 단계에서는 navigator 구성을 생성합니다. mode: stdout 설정은 navigator 가 일반 터미널 출력을 인쇄하도록 하며, 이는 가이드 실습에 이상적입니다. execution-environment.enabled: false 설정은 실행 환경을 이 RHEL 10 VM 내의 로컬로 제한합니다.
이 단계의 명령을 실행하기 전에 프로젝트 디렉토리로 돌아가 상대 경로가 Ansible 프로젝트를 참조하도록 합니다.
cd /home/labex/project/rhce-ansible
ansible-navigator.yml을 생성합니다.
cat > ansible-navigator.yml <<'EOF'
---
ansible-navigator:
mode: stdout
execution-environment:
enabled: false
playbook-artifact:
enable: false
EOF
이 실습에서는 세 가지 설정이 중요합니다. mode: stdout은 출력을 터미널에 유지하고, execution-environment.enabled: false는 navigator 에게 로컬 Ansible 설치를 사용하여 실행하도록 지시하며, playbook-artifact를 비활성화하면 주요 워크플로우를 방해하는 불필요한 결과 파일 생성을 방지합니다.
파일을 표시하여 들여쓰기를 확인합니다. YAML 들여쓰기는 구문의 일부입니다.
sed -n '1,20p' ansible-navigator.yml
mode, execution-environment, playbook-artifact가 ansible-navigator 아래에 중첩되어 있는지 확인하십시오. 이 키 중 하나라도 잘못된 열에서 시작되면 YAML 이 의도와 다른 구조로 해석될 수 있습니다.
Navigator 스모크 테스트용 플레이북 생성
이 단계에서는 navigator 가 실행할 짧은 플레이북을 작성합니다. 플레이북은 플레이 (play) 의 YAML 목록입니다. 각 플레이는 대상 호스트와 작업을 지정합니다.
이 단계의 명령을 실행하기 전에 프로젝트 디렉토리로 돌아가 상대 경로가 Ansible 프로젝트를 참조하도록 합니다.
cd /home/labex/project/rhce-ansible
playbooks/navigator-check.yml을 생성합니다.
cat > playbooks/navigator-check.yml <<'EOF'
---
- name: Check navigator execution
hosts: control
gather_facts: false
tasks:
- name: Write navigator proof file
ansible.builtin.copy:
dest: /home/labex/project/rhce-ansible/navigator-proof.txt
content: navigator ran this playbook
mode: '0644'
EOF
이 플레이북은 프로젝트 디렉토리 아래에 파일을 작성하여 실행 후 눈에 보이는 증거를 남깁니다. copy 모듈은 멱등성 (idempotent) 을 가집니다. 즉, 내용이나 모드가 요청된 상태와 다를 때만 파일을 변경합니다.
실행하기 전에 ansible-playbook --syntax-check를 사용하십시오. 구문 검사는 호스트를 변경하지 않고도 YAML 및 플레이북 구조의 실수를 잡아냅니다.
ansible-playbook playbooks/navigator-check.yml --syntax-check
구문 검사는 playbook: 라인을 출력해야 합니다. 작업을 실행하지는 않지만, navigator 가 실행하기 전에 Ansible 이 플레이북을 올바르게 해석할 수 있는지 확인합니다.
Navigator 를 사용하여 플레이북 실행
이 단계에서는 navigator 를 통해 플레이북을 실행합니다. run 하위 명령은 플레이북을 실행하며, 프로젝트 구성 덕분에 터미널에서 출력을 읽기 쉽게 확인할 수 있습니다.
이 단계의 명령을 실행하기 전에 프로젝트 디렉토리로 돌아가 상대 경로가 Ansible 프로젝트를 참조하도록 합니다.
cd /home/labex/project/rhce-ansible
플레이북을 실행합니다.
ansible-navigator run playbooks/navigator-check.yml
성공적인 요약 정보에는 failed=0이 표시되어야 합니다. 증거 파일이 생성되었는지 확인하십시오.
mode: stdout이 구성되어 있으므로 출력은 일반적인 ansible-playbook 실행과 유사하게 보일 것입니다. 먼저 요약 정보를 읽은 다음, 증거 파일을 검사하여 보고된 작업 결과와 디스크의 실제 파일이 일치하는지 확인하십시오.
cat navigator-proof.txt
요약
로컬 LabEx RHEL 10 워크플로우를 위해 ansible-navigator를 구성하고, 유효한 플레이북을 작성한 뒤 navigator 를 통해 실행했습니다. 이를 통해 향후 RHCE Ansible 실습을 위한 반복 가능한 실행 모델을 갖추게 되었습니다.


