간단한 명령어로 Ansible 테스트
이 단계에서는 로컬 시스템에 대해 간단한 명령을 실행하여 Ansible 설치를 테스트합니다. 프로젝트 디렉토리로 이동하여 사전 구성된 인벤토리 파일을 사용하여 Ansible 임시 명령을 실행합니다.
프로젝트 디렉토리로 이동하여 기본 ping 기능을 테스트합니다.
cd /home/labex/project
ansible localhost -m ping
ping 모듈은 실제로 ICMP 패킷을 보내지 않습니다. 대신 Ansible 이 대상에 연결하여 Python 코드를 실행할 수 있는지 확인합니다. 성공적인 응답은 다음과 같습니다.
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
이 출력을 분석해 보겠습니다.
- localhost | SUCCESS: 명령이 localhost 대상에서 성공적으로 실행되었음을 보여줍니다.
- ansible_facts: 실행 중에 발견된 시스템 정보를 포함합니다.
- discovered_interpreter_python: Ansible 이 찾아서 사용할 Python 인터프리터 경로입니다.
- changed: false: 시스템에 변경 사항이 없음을 나타냅니다 (ping 은 읽기 전용).
- ping: "pong": Ansible 연결을 확인하는 고전적인 응답입니다.
"pong" 응답은 Ansible 이 올바르게 작동하고 대상 시스템과 통신할 수 있음을 확인합니다.
또한 setup 모듈을 사용하여 시스템 정보를 수집해 보겠습니다.
ansible localhost -m setup -a "filter=ansible_distribution*"
이 명령은 setup 모듈을 사용하여 시스템 팩트를 수집하며, 특히 배포 정보를 필터링합니다. Red Hat Enterprise Linux 시스템에 대한 세부 정보가 포함된 출력을 볼 수 있습니다.
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "RedHat",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_search_string": "Red Hat",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "9",
"ansible_distribution_release": "Plow",
"ansible_distribution_version": "9.6",
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false
}
시스템 팩트 출력 이해:
- ansible_distribution: Linux 배포판 이름 (RedHat)
- ansible_distribution_file_parsed: Ansible 이 배포 파일 읽기에 성공했는지 여부
- ansible_distribution_file_path: 배포 정보가 포함된 파일
- ansible_distribution_file_search_string: 배포를 식별하는 데 사용되는 텍스트 패턴
- ansible_distribution_file_variety: 배포판 계열 (RedHat 계열)
- ansible_distribution_major_version: 주 버전 번호 (9)
- ansible_distribution_release: 릴리스 코드명 (Plow)
- ansible_distribution_version: 전체 버전 번호 (9.6)
- discovered_interpreter_python: Ansible 이 발견한 Python 인터프리터
이것은 Ansible 이 대상 호스트에서 시스템 정보를 성공적으로 수집할 수 있음을 확인하며, 이는 시스템 특성을 기반으로 조건부 자동화를 생성하는 데 필수적입니다.