/etc/sudoers 에 nopasswd 계정 추가
앤서블 설치
$ yum install ansible -y
앤서블에서 사용 가능한 명령어 확인
$ ls /usr/bin/ansible*
노드들 주소 추가
$ vi /etc/ansible/hosts
(추가)
192.1.1.1
192.1.1.2
192.1.1.3
known_hosts_key 값 입력 받음
$ ansible all -m ping
(yes를 노드수만큼 입력)
....
Are you sure you want to continue connecting (yes/no)? yes
정상적으로 노드들에게 명령 전달 확인
$ ansible all -m ping -k
SSH password : (노드 비밀번호 입력)
앤서블 명령어 옵션
-m : 모듈선택
- 쉘모듈 : ansible all -m shell -a "df -h" -k
- yum모듈 : ansible all -m yum -a "name=httpd state=present" -k (삭제 : state=absent)
-k : 비밀번호 입력
- --list-hosts : 적용 노드들 확인 ( ansible all -m ping -k --list-hosts )
앤서블 참조파일
/etc/ansible/ansible.cfg
/etc/ansible/hosts
플레이북
보통앤서블은 플레이북으로 노드들을 관리합니다.
nginx_install.yml 파일 작성
---
- name: Install nginx on linux
hosts: nginx
gather_facts : no
tasks :
- name: install epel-release
yum: name=epel-release state=latest
- name: install nginx web server
yum: name=nginx state=present
- name: start nginx web server
service: name=nginx state=started
플레이북 실행
$ ansible-playbook nginx_install.yml -k
앤서블 기본 개념 참조글 :
https://blog.naver.com/alice_k106/221333208746
https://engineering.linecorp.com/ko/blog/ansible-awx-for-provisioning-1/
앤서블 공식사이트 :
https://docs.ansible.com/ansible_community.html
남들이 짠 앤서블 플레이북 코드 :
https://galaxy.ansible.com/crivetimihai/development