[macos]
-
- 설치(http://docs.ansible.com/ansible/latest/intro_installation.html)
- 여러가지 방법이 있습니다. pip로 설치할 수도 있구요.
sudo easy_install pip sudo pip install ansible
brew로 설치할수도 있습니다.
brew install ansible
-
앤서블 옵션
-
-i : (–inventory-file) 적용, / etc/ansible/hosts 에 있는 것 말구 특정 노드만을 명령시키고 싶으면 인벤토리를 수정해서 적용할 수 있음
ansible all -i /usr/local/etc/ansible/hosts -m ping
-
-m : (–module-name) 모듈을 이용하겠다는 의미로 기본적으로 제공되는 수행을 이용할 수 있습니다.
ansible all -m ping
위에서 사용한 것처럼 ping모듈을 이용하기 위해 옵션을 주고 사용합니다. 너무 많은 모듈이 있기 때문에 doc을 확인 하시고 자주 쓰는 모듈만 몇가지 소개하겠습니다.
-
ping : 호스트와 서버와 SSH통신이 가능한지 알기위해 hosts에 정의된 호스트들에게 ping을 한번 날려봅니다.
-
shell : bash shell을 이용해서 명령어를 날릴 수 있습니다.
-
..
-
..
-
-
-k : (–ask-pass) 패스워드를 준다
-
-K : (–ask-become-pass)
ansible all -m ping -k -K
SSH말고도 한번 더 SUDO SSH 키를 묻는데, 실제 작업환경에서는 유저와 관리자가 다를 수 있고, 관리자의 키를 필요로하는 경우가 있기 때문에 사용한다.
-
–list-hosts : 적용되는 호스트들을 보여준다.
ansible nginx -m ping —list-hosts
명령어를 하기 전에 영향받는 호스트를 알고 싶다고 하면 이 명령어 옵션을 통해 적용받는 호스트를 확인할 수 있다.
-
-
- Host Inventory & Config
- 호스트 인벤토리는 전 포스트에서 설명한대로 실행받을 호스트를 명시한 파일입니다. 기본으로 지정된 앤서블 호스트 파일 경로는 /etc/ansible/hosts 입니다. Config파일은 앤서블의 환경설정파일로 호스트와 똑같은 /etc/ansible/ansible.cfg에 위치합니다. brew로 설치하던 pip로 설치하던,.. 자동으로 참조파일이 생기지 않습니다… 만들어줘야 합니다. 하지만 옵션을 통해 따로 경로를 지정할 수도 있습니다.
-
앤서블 접속 호스트 관리 : /etc/ansible/hosts
-
host파일 : ansible로 전송할 서버 호스트를 저장하는 곳. [name]을 통해 그룹으로 관리할 수 있다. 아래처럼 test로 호스트를 묶을 수 있고 service로 묶을 수 있다. all은 host파일의 전부를 의미한다.
[test] xxx.xxx.xxx.xxx ooo.ooo.ooo.ooo [service] xxx.xxx.xxx.xxx ccc.ccc.ccc.ccc . .
-
-
기본 환경설정파일 : /etc/ansible/ansible.cfg
- config파일(http://docs.ansible.com/ansible/latest/intro_configuration.html) ansible.cfg in source control
-
- Playbook 사용법
- 저는 AWS 3대의 우분투에 nodejs Express 웹서버를 배포 하도록 하겠습니다.