ansible
시스템 환경 설정 및 배포 자동화 플랫폼(CM Tools)
Agentless 구조
ssh protocol base
학습 시간량이 및 시스템 복잡성이 낮아 쉽게 배포 자동화 환경 구축 가능
멱등성 보장
- 설치
python package 관리 pip 설치
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install python-pip
yum install python-devel
pip list
pip install paramiko pyYAML jinja2 httplib2
pip install ansible
- 설정
mkdir /etc/ansible
echo "127.0.0.1" > /etc/ansible/hosts : remote 호스트 명시
Inventory File
- Remote Server에 대한
- /etc/ansible/hosts/Ansible-hosts [Default]
- '-i' 옵션으로 별도의 inventory File 지정 가능
- Remote host Grouping 가능
[cloud]
10.12.18.200
10.12.18.199
[cloud2]
10.12.18.200
10.12.18.199
Playbook File
- ansible 환경 설정 및 배포
- yaml 문법을 사용
- YAML의 제일 첫 줄은 '---'로 시작하며, 이는 YAML 포맷의 시작 지점을 뜻함.
Template File
- 실제 처리하고자 하는 업무에 대한 Template
- Jinja2 적용 가능(Template Task인 경우)
- 관례상 확장자는 '.j2'
- ssh-key 등록
ssh-key 생성
ssh-keygen -t rsa
ssh-copy-id server@IP로 옮김
- ansible 명령어
1) ansible : 간단한 배포 명령어 수행
ansible -i /etc/ansible/hosts all -m shell -a hostname
2) ansible-playbook : yml 파일에 명시되어 있는 배포 작업 수행
ansible-playbook -i /etc/ansible/hosts ping.yml
---
- hosts: cloud
remote_user: root
tasks:
- name: test connection
ping:
remote_user: root
tasks:
- name: remote cmd test
command: mkdir test
'나만의 Cloud' 카테고리의 다른 글
SLA (0) | 2016.05.09 |
---|---|
ubuntu keepalived (0) | 2016.04.20 |
Virtual box Vagrant (0) | 2015.07.09 |
puppet Resource (0) | 2014.05.19 |
[puppet] puppet 설치 (0) | 2014.05.14 |