ansible 기초-1
소개
- App deployment, configuration management and orchestration - all from one system
- Provision & configuration management tool
- Python Github project 중 상위 랭킹 (6위)
- DO :
- 설치 작업: apt-get, yum, homebrew …
- 설정파일, 스트립트 배포: copy, template …
- 다운로드: get_url, git, subversion …
- 실행: shell, task …
특징
- 개발언어: Python
- 정의: yaml (사람이 쉽게 읽을 수 있는’ 데이터 직렬화 양식)
- agent/ssh 사용여부: ssh (비 agent)
- 통신: json
- 병렬 provisiong 지원
- 멱등성 (Idempotency) 제공
- 여러 번 적용해도 결과는 바뀌지 않는다
- 바뀌는 것이 없으면 당연히 배포되어도 바뀌지 않는다
- 바뀌는 부분이 있으면 그 부분만 반영된다
- 제외:
- shell, command, file module
설치
- sudo apt-get ansible
- pip install sumplejson
기본개념
- playbook: 환경설정, 배포를 가능케 하는 언어
- play: 여러 호스트 들에 role, task 를 매핑하는 역할
- task: ansible 모듈의 호출을 의미
- role: 미리 정의된 yaml 파일을 include을 하여 관리하는 것이 좋다
Inverntory: 리모트 서버에 대한 meta 데이터를 기술하는 파일
기본적으로 /etc/ansible/hosts 를 확인함
# Ex 1: Ungrouped hosts, specify before any group headers. ## green.example.com ## blue.example.com ## 192.168.100.1 ## 192.168.100.10 # Ex 2: A collection of hosts belonging to the 'webservers' group ## [webservers] ## alpha.example.org ## beta.example.org ## 192.168.1.100 ## 192.168.1.110 # If you have multiple hosts following a pattern you can specify # them like this: ## www[001:006].example.com # Ex 3: A collection of database servers in the 'dbservers' group ## [dbservers] ## ## db01.intranet.mydomain.net ## db02.intranet.mydomain.net ## 10.25.1.56 ## 10.25.1.57
- playbook: 환경설정, 배포를 가능케 하는 언어
'Tools' 카테고리의 다른 글
ansible 기초-2 (playbook 작성 및 활용) (0) | 2017.05.02 |
---|---|
Orchestration tools (0) | 2017.02.01 |
jmeter 설치 및 사용 (0) | 2016.08.01 |