Ansible은 오픈 소스 기반의 자동화 관리 도구이다. python을 기반으로 동작하는 모듈로 구성되어 있고, ansible-playbook은 YAML 포맷 형태의 파일을 통해 실행이 가능하다. SSH 기반으로 Target Host에 Agentless 방식으로 자동화 구성 관리한다. 다양한 서버, 네트워크, 스토리지, 가상화 솔루션들을 코드 기반으로 관리할 수 있는 편의성이 있다.
구조
Control Node: 중앙 제어 노드이며, Ansible이 설치가 되는 Node이다. Windows의 경우 설치가 불가능 하며 winrm을 사용해야 한다.
Managed Node: Ansible Control Node에 관리가 되는 대상 서버이다. hosts에 등록된 대상이다.
Inventory: Managed Node가 등록되어 있는 목록이다. IP, Group으로 관리 할 수 있으며, default 로 /etc/ansible/hosts 파일을 사용한다.
Modules: Ansible에서 제공하는 실행 단위 모듈이다.
Tasks: Modules 의 집합으로 작업 단위이다.
Playbooks: 계획된 작업을 순서대로 실행하기 위해 작성하는 YAML 파일이다.
Ansible Contorl Node 에서 SSH 통해서 Managed Node 에 배포
OS : CentOS 7.6
미리 설치해야할 사항
python 2.6 또는 2.7과 package manager 인 pip 가 설치되어 있어야 한다.
RHEL/CentOS 에 파이썬 패키지 매니저(python package manager) python-pip 설치하기 참고
git 이 설치되어 있어야 한다.
RHEL/CentOS 에 git 2 설치하기
ansible 1.3 이상부터는 가능하면 OpenSSH 의 python 구현물인 paramiko 를 사용하지 않고 pure OpenSSH 를 사용한다. 이 경우 OpenSSH 가 ControlPersist 를 지원해야 하지만 RHEL/CentOS 6 에 탑재된 openssh 는 버전이 낮으므로 계속 paramiko 를 사용해야 한다. (RHEL 7 부터는 문제 없음)
댓글 영역