베하~~
안녕하세요 항상 웃음이 나는 픠식팀 입니다.
지난번에는 Playbook에 대해서 알아 보았으니 이번에는 Inventory에 대해서 알아 봅시다~
Ansible Inventory란?
인벤토리는 RPG 게임을 해보셨으면 한 번쯤은 아이템 인벤토리라고 들어 보셨을 겁니다.
RPG 게임에서 아이템 인벤토리는 내가 소유하고 있는 아이템의 목록들을 나열해서 재고들을 간편하게 볼 수 있습니다.
Ansible에서도 이런 유사한 역할을 가지고 있는데요 Ansible Inventory는 자동화의 대상들을 작성하여 간편하게 관리할 수 있습니다. 즉 인벤토리는 Ansible이 알고 있는 호스트들의 집합이라고 할 수 있습니다.
Inventory 파일의 설정 방법
두 가지의 파일로 Inventory을 설정할 수 있는데요 바로 ini 형태와 yaml 형태 입니다.
사용자가 설정하기 편한 형태로 선택하시면 됩니다.
all:
hosts:
service.example.com:
children:
webservers:
hosts:
web1.example.com:
web2.example.com:
dbservers:
hosts:
db1.example.com:
db2.example.com:
yaml 형식
service.example.com
[webservers]
web1.example.com
web2.example.com
[dbservers]
db1.example.com
db2.example.com
ini 형식
그룹, 변수에 대한 설명과 사용 방법은 아래의 공식 Docs에서 아주 자세히 확인 할 수 있습니다.
https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html
ansible.cfg
Ansible의 구성파일 입니다. Ansible 명령을 실행할 때 ansible.cfg 파일의 환경설정이 되어있는 것을 참고하여 명령을 실행하게 됩니다.
ansible에서 ansible.cfg 파일을 찾는 순서가 있습니다.
1. ANSIBLE_CONFIG 환경 변수
2. ./ansible.cfg(현재 디렉토리의 ansible.cfg)
3. ~/.ansible.cfg(홈 디렉토리의 .ansible.cfg)
4. /etc/ansible/ansible.cfg
의 순서 입니다.
설정적용 우선순위: 환경변수 > 디렉토리 > 사용자 > 전역 순서입니다.
[defaults]
inventory = ~/ansible/inventory.yaml
ansible.cfg 파일에서 인벤토리 파일의 위치를 선택할 수 있습니다.
뿐만 아니라 cfg 파일을 통해서 다양한 것들을 설정할 수 있는데요
[defaults]
inventory = ~/ansible/inventory.yaml
remote_user = ubuntu
private_key_file = /path/to/file
remote_user: ansible이 호스트에 연결하는데 사용하는 기본 사용자의 이름
private_key_file: private_key 파일이 있는 경로를 지정하여 사용
위의 예시 등 아주 다양하게 설정하여 사용 할 수 있습니다.
동작 유형의 인벤토리 매개 변수
동작 유형의 인벤토리 매개 변수 | ansible.cfg 옵션 |
ansible_ssh_port | 원격 포트 |
ansible_ssh_user | 원격 사용자 |
ansible_ssh_private_key | private_key_file |
ansible_shell_type | ansible 실행 |
위에서 작성한 cfg 파일의 [defaults] 섹션에서 기본값을 인벤토리에서 작성하여 사용할 경우 무시할 수 있습니다.
[다양한 매개 변수들은 아래에서 볼 수 있습니다]
Ansible Inventory에 대해서 알아 보았습니다 다음 번에는 다른 내용으로 찾아 뵙겠습니다~
'INFRA > Operation' 카테고리의 다른 글
그라파나 대시보드 및 패널 설정 (0) | 2023.06.23 |
---|---|
[Ansible] WordPress 설치하기 (0) | 2023.06.23 |
배포 전략 - Rolling, Blue/Green, Canary (0) | 2023.06.08 |
[Ansible] Ansible Playbook이란 (1) | 2023.06.08 |
CrossPlane에 대해 (0) | 2023.06.07 |
댓글