Ansible 정리
· 약 4분
앤서블
서버 구성 관리 자동화 프로그램
용어
- 애드훅: 일회성 실행
- 플레이북: yaml 로 재사용
CMDB
- Configuration Management DataBase (구성 관리 데이터베이스)
- 분산 설치된 서버, 스토리지, 네트워크 장비 등의 CPU, 메모리, 디스크 등의 하드웨어 정보와 OS, 응용프로그램 종류 등의 소프트웨어 정보 관리
- 다양한 시스템의 정보를 한 번에 파악 가능하고, 각 장비 간 연관 관계 파악이 쉬워 예방, 장애 파악, 유지보수에 좋음
- 앤서블 CMDB 는 앤서블 호스트 파일 또는 지정된 인벤토리를 통해 설정 관리 대상 시스템의 정보를 setup 모듈을 통해 수집, 저장
- 앤서블 vault 로 중요 정보 암호화 가능
- Device42, servicenow 등이 지원
- ansible-cmdb 를 사용해 간단한 대시보드로 볼 수 있다.
최적화
pipelining
- 앤서블 실행 단계를 한 단계로 줄일 수 있음
- 플레이북 내에서는 ansible_ssh_pipelining 으로 설정 가능
- /etc/ansible/ansible.cfg 에서 설정 가능
forks
- 한 번에 실행할 수 있는 노드의 수 제어 (default: 5)
- serial 은 단순히 전체 노드에서 어느 정도를 실행할 것인지를 설정하는 거라 forks 와는 다르다.
async
- 태스크 별 지정된 주기에 체크하고 모든 노드의 동일 태스크가 완료되어야 다음 태스크 실행
- 주기를 0으로 설정하면 상태 체크 없이 다음 태스크가 진행된다.
strategy free
- 상태 체크는 하지만 다른 노드의 진행을 기다리지 않고 각 노드 간 독립적으로 태스크 진행
- 빠르게 작업이 끝나는 노드가 생기므로 forks 수의 제한을 가능한 늘려줘야한다.
설정 확인
ansible-config dump --only-changed
로 변경된 설정 확인 가능