4. 한 번의 명령으로 다수의 시스템에 작업하기
-shell, user, copy 모듈 사용
// uptime 확인하기
# ansible all -m shell -a "uptime" -k
// 디스크 용량 확인하기
# ansible all -m shell -a "df -h" -k
// 메모리 상태 확인하기
# ansible all -m shell -a "free -h" -k
// 새로운 유저 만들기 => password=1234 로 입력하면 안된다. decrypt 필요 , /etc/passwd 에서 확인
# ansible all -m user -a "name=bloter password=1234" -k
// 파일 전송하기
# ansible all -m copy -a "src=/etc/resolv.conf dest=/etc/resolv.conf" -k
- yum 모듈 사용
// httpd 설치
# ansible all -m yum -a "name=httpd state=present" -k
설치 후
# ansible all -m shell -a "yum list installed | grep httpd" -k
로 확인
5. 작업 내용을 파일로 만들어서 반복하기 실행하기
- Ansible의 특성은 멱등성 (idempotence)
=> 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
=> 즉, 변화가 없으면 여러번 적용해도 실행되지 않거나 , 달라지지 않음
- yaml 파일 구성하기
* k8s랑 비슷한거 같다.
* name, hosts, tasks 형식으로 구성
hosts : 적용할 호스트들 ( /etc/ansible/hosts에 그룹으로 되어있으면 그 그룹명을 넣으면 됨)
remote_user :root 로 할경우 루트 권한으로 실행
tasks 내에는 여러개 작업을 넣을 수 있음
- name: 실행될 이름 설정
그 밑에 모듈 및 argument 설정
- name :
hosts:
remote_user: root
tasks:
- name: Add ansible hosts
blockinfile:
path: /etc/ansible/hosts
block: |
[bloter]
192.168.1.13
- name: install epel-release
yum : name=epel-release state=latest
- name: install nginx web server
copy: src=index.html dest=/usr/share/nginx/html/ mode=0644
- name: Start nginx web server
service: name=nginx state=started
6. ansible-vim 설치
=> 생략
7. 에러 로그 줄바꿈
- /etc/ansible/ansible.conf 에
#stdout_callback=skippy 를
stdout_callback=debug 로 변경
끝.