앤시블(Ansible) 네트워크 자동화 – 1
앤시블 기초
Ansible은 IT 자동화 도구이며, 기본적으로 ssh 프로토콜을 이용한다. 또한 데몬이 실행되지도 않는다.
참고: SF 소설에서의 Ansible – 앤시블은 원래 SF 소설에서 초광속 실시간 통신을 위한 개념으로 사용했다. 1966년 Ursula K. Le Guin의 소설에서 Ansible이란 단어를 처음 사용했다고 한다. Orson Scott Card의 소설 엔더스 게임이나 듀나의 소설 대리전에서도 앤시블 통신을 사용하는 것을 볼 수 있다.
앤시블 구성
Control Node
ansible이 설치되어 있는 어떤 기계들도 control node가 될 수 있다. control node에서 anaible이나 ansible-playbook 명령을 실행한다. 파이썬이 설치된 어떤 컴퓨터든 control node로 사용할 수 있지만, 윈도우가 설치된 기계는 control node로 사용할 수 없다. 또한 control node를 여러개 가질 수도 있다.
Managed Node
Ansible이 관리하는 네트워크 장치들이나 서버들. Managed node는 때대로 host 라 부르기도 하며, managed node에는 ansible을 설치하지 않는다.
Inventory
Managed node의 목록. 인벤토리 파일은 때때로 hostfile 이라 부른다. inventory 파일은 각 managed node의 정보(ip 주소 등)가 명시된다. managed node를 그룹으로 만들고 중첩시킬 수도 있다.
Collection
collection은 playbook, role, module, plugin을 포함하는 ansible 콘텐츠의 배포 포맷이다. ansible galaxy를 통해 collection을 설치하고 사용할 수 있다.
Modules
ansible 실행 코드의 단위. 각 모듈은 특정 용도를 가진다.
Tasks
ansible의 작업 단위. ad-hoc 명령으로 한번의 task를 실행할 수 있다.
Playbook
순서가 지정된 task 리스트가 저장되어 해당 task를 반복 실행할 수 있다. playbook은 변수와 task를 포함할수도 있다. playbook은 YAML로 작성되어 읽고 쓰고 공유하고 이해하기 쉽다.
Continue reading