Ansible install on Mac

Mac 테스트용도의 Ansible 구축해서 테스트 용도로 활용하는 방안입니다. Ansible은 Target Host에 Agent가 설치가 필요하지 않아서 손쉽게 사용할 수 있는 장점이 크고, 만약 가능하다면 자신의 맥북을 Ansible 서버로 사용하면서 여러 서버의 설정을 구성하고 조정할 수 있습니다.(기업환경에서는 바람직하지 않겠죠?)

여기에서는 MAC을 이용해서 테스트할 수 있는 환경을 제공해보도록 하겠습니다. 먼저 MAC OS 버전에 따라 설치 환경이 다릅니다. 제가 설치한 환경은 아래와 같습니다.

#sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G95

버전을 확인하고, 저와 비슷한 버전인 경우 본 설치 가이드대로 설치가 가능합니다.
이외 버전의 경우 다른 옵션이 추가될 수도 있고, 본 가이드로 설치가 가능할 수도 있습니다.

ansible은 Python기반 프로그램이기 때문에 파이썬의 인스톨 패키지 관리 프로그램인 pip를 먼저 설치해 주어야 합니다.

#sudo easy_install pip

pip가 잘 설치되었다면, 이제 ansible을 설치해 줍니다.

#sudo pip install ansible

만약 ansible과 pip 설치가 정상적으로 되지 않는 경우 Python 문제일 수 있습니다. 따라서 Python의 설치 버전을 변경하시기 바랍니다.

Ansible은 기본적으로 Linux 제어를 위해 ssh를 필요로 합니다. 이를 위해서 sshpass 설치가 필요할 수 있습니다. 아래와 같이 sshpass를 설치하시기 바랍니다.

#curl -O -L http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz && tar xvzf sshpass-1.05.tar.gz

#cd sshpass-1.05
#./configure

sudo nano /etc/ansible.cfg 로 환경 설정로 활경 설절을 진행합니다. 기본적으로는 필요하지 않습니다.
https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg 에서 기본적으로 제공하는 ansible.cfg 파일을 확인할 수 있으니 참고하시기 바랍니다.

그리고 이제 호스트 파일을 설정해야 합니다.
https://github.com/ansible/ansible/blob/devel/examples/hosts 에 기본 제공 파일이 있으니 참고하시기 바랍니다.

[testserver]
192.168.56.102

[all:vars]
ansible_user=root
ansible_ssh_pass=<password>

위 내용을 보면 all:vars라는 내용을 볼 수 있는데 전역변수라고 생각하시면 됩니다. 앤서블 실행 유저를 root, 그리고 비밀번호를 미리 넣어놓은 변수로
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html 를 보면 확인 할 수 있습니다.

만약 hosts 파일 위치를 찾지 못한다면 아래 명령을 통해 HOSTS 파일를 지정 할 수 있습니다. 이외에도 ansible.cfg의 inventory 값을 지정하여 파일을 지정 할 수도 있습니다.

export ANSIBLE_HOSTS=/etc/ansible/hosts

테스트용도의 VM하나 설치후 아래 명령으로 테스트 진행해 보면 기본적으로 명령이 가능한지 확인합니다.

ansible -m ping all

이제 앤서블을 사용하기 위한 준비가 완료되었습니다. 아래 링크에서 앤서블을 더욱 공부해 봅시다.

https://docs.ansible.com/ansible/latest/index.html

Facebook Comments

Leave A Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.