Ansible 은 agent 가 없으므로 설치가 매우 간단하며 ansible 스크립트를 실행할 제어 노드(Control Node) 를 제외하고는 python 설치도 필요없습니다.
제어 노드는 Linux 나 Unix 만 지원하며 python 3(>= 3.5) 또는 python 2(>= 2.7) 이상 버전이 설치되어 있어야 합니다.
pip로 설치
의존성있는 패키지까지 자동으로 설치해주므로 개인적으로 권장하는 설치 방법으로 root 권한으로 설치해야 합니다.
패키지 매니저로 설치
RHEL/CentOS
yum install ansible -y
BASH
Ubuntu
sudo apt install ansible
CODE
OS X
brew install ansible
BASH
설치 확인
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