Ansible 은 agent 가 없으므로 설치가 매우 간단하며 ansible 스크립트를 실행할 제어 노드(Control Node) 를 제외하고는 python 설치도 필요없습니다.


제어 노드는 Linux 나 Unix 만 지원하며 python 3(>= 3.5) 또는 python 2(>= 2.7) 이상 버전이 설치되어 있어야 합니다.


pip로 설치

의존성있는 패키지까지 자동으로 설치해주므로 개인적으로 권장하는 설치 방법으로 root 권한으로 설치해야 합니다.

pip install ansible
BASH


패키지 매니저로 설치

RHEL/CentOS

yum install ansible -y
BASH


Ubuntu

sudo apt install ansible
CODE

OS X


brew install ansible
BASH



설치 확인

Inventory 파일 생성

ansible 이 관리하는 서버의 정보를 담은 파일을 Inventory 파일이라고 하며 인벤토리는 세 가지 방법으로 지정할 수 있습니다.


/etc/ansible/hosts(기본 설정)

mkdir /etc/ansible/
echo "127.0.0.1" > /etc/ansible/hosts
BASH


ANSIBLE_INVENTORY 환경 변수에 설정

echo "127.0.0.1" > ~/.ansible/hosts

export ANSIBLE_INVENTORY=~/.ansible/hosts
BASH


ansible 실행시 -i 옵션과 파일 경로 지정

ansible all -m ping  -k -i ~/my_ansible_hosts
BASH


적용 우선 순위는 3, 2,1 순이며 여러 개가 지정되어 있을 경우 우선 순위 높은 항목만 적용됩니다. 즉 1, 2, 3 이 다 지정되어 있으면 3 번만 적용됩니다.

1번은 root 권한이 필요하며 유연성이 떨어지므로 잘 사용하지 않습니다.


Config 파일 생성

ansible 동작을 제어하는 설정 파일은 /etc/ansible/ansible.cfg  이며  ANSIBLE_CONFIG 환경 변수를 통해 설정할 수 있습니다.

export ANSIBLE_CONFIG=~/.ansible/ansible.cfg 
BASH


정상 설정 여부 확인은 다음과 같이 --version 을 주고 실행하면 됩니다.

$ ansible --version  

config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/lesstif/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/ansible
  executable location = /opt/rh/rh-python36/root/usr/bin/ansible
  python version = 3.6.12 (default, Oct 23 2020, 12:37:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]
CODE


설치 확인

ansible 의 정상 설치 여부는 다음과 같이 ansible ad-hoc 명령어를 사용해서 확인할 수 있습니다.


ansible ping 모듈 실행해서 ping 결과를 확인합니다.. 

$ ansible all -m ping  -k

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
BASH


만약 127.0.0.1 | FAILED => No authentication methods available 와 같은 에러가 난다면 실행시에 암호 프롬프트를 띄우는 옵션인  -k, --ask-pass 옵션을 추가합니다.


같이 보기

Ref