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
Posted by 뭉탁거림
,