ansible이란?
Ansible은 인프라 관리를 코드 기반으로 자동화하는 도구이다.
이름 그대로 IT 인프라를 코드 기반으로 자동 설치 및 구축/관리/프로비저닝 하는 프로세스이다.
IaC 도구들이 있기 전, 관리자들이 다양한 IT 인프라들에 직접 접촉하여 필요한 프로그램을 설치하고 셋팅해왔다.
인프라가 점점 복잡해지면 너무나 고된 일이 된다.
하지만 IaC라는 것이 등장하면서 자동화 된 인프라 구축이 가능해졌다.
결론은, Ansible은 이런 IaC를 지향하는 오픈소스 기반의 자동화 도구이다.
Ansible 특징
1. Agentless
- Chef / Puppet과 같은 IaC 솔루션들은 원격 서버에 에이전트를 설치해야한다.
- Ansible은 SSH를 기반으로 원격 서버에 명령을 전달하기 때문에 에이전트가 필요없다.
2. 접근 용이성
- Ansible은 명령 모음집 Playbook을 YAML 형식의 파일로 관리 한다.
- YAML 파일의 훌룡한 가독성 덕분에 사용자들이 느끼는 Ansibledml 진입장벽의 낮다.
3. 멱등성
- 멱등성이란 여러번 수행해도 같은 결과를 뱉는 성질을 말한다.
- Ansible은 YAML로 관리되는 명령집을 여러번 수행하더라도 언제나 같은 결과가 나올 수 있도록 여러가지 관리를 한다.
MacOS에 Ansible을 설치하기
pip로 Ansible 설치
- pip3로 설치 진행
$ pip3 install ansible
- 설치확인
$ ansible --version
ansible [core 2.13.2]
...
...
localhost에 ansible ping 테스트
ansible localhost -m ping
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
inventory file(/etc/ansible/hosts) 구성
$ sudo mkdir -p /etc/ansible
$ sudo vi /etc/ansible/hosts
[mac]
127.0.0.1
ansible all --list-hosts
hosts (1):
127.0.0.1