상세 컨텐츠

본문 제목

ansible 설치 및 사용 (feat. shell, copy CLI)

카테고리 없음

by 크리두 2020. 2. 5. 16:40

본문

반응형

 

  • Ansible???

    Ansible은 오픈 소스 기반의 자동화 관리 도구이다. python을 기반으로 동작하는 모듈로 구성되어 있고, ansible-playbook은 YAML 포맷 형태의 파일을 통해 실행이 가능하다. SSH 기반으로 Target Host에 Agentless 방식으로 자동화 구성 관리한다. 다양한 서버, 네트워크, 스토리지, 가상화 솔루션들을 코드 기반으로 관리할 수 있는 편의성이 있다.

 

  • 구조
  • Control Node: 중앙 제어 노드이며, Ansible이 설치가 되는 Node이다. Windows의 경우 설치가 불가능 하며 winrm을 사용해야 한다.
  • Managed Node: Ansible Control Node에 관리가 되는 대상 서버이다. hosts에 등록된 대상이다.
  • Inventory: Managed Node가 등록되어 있는 목록이다. IP, Group으로 관리 할 수 있으며, default 로 /etc/ansible/hosts 파일을 사용한다.
  • Modules: Ansible에서 제공하는 실행 단위 모듈이다.
  • Tasks: Modules 의 집합으로 작업 단위이다.
  • Playbooks: 계획된 작업을 순서대로 실행하기 위해 작성하는 YAML 파일이다.
  • Ansible Contorl Node 에서 SSH 통해서 Managed Node 에 배포

 

 

OS : CentOS 7.6

 

미리 설치해야할 사항

 

  1. python 2.6 또는 2.7과 package manager 인 pip 가 설치되어 있어야 한다.
  2. RHEL/CentOS 에 파이썬 패키지 매니저(python package manager) python-pip 설치하기 참고
  3. git 이 설치되어 있어야 한다.
    • RHEL/CentOS 에 git 2 설치하기
  4. ansible 1.3 이상부터는 가능하면 OpenSSH 의 python 구현물인 paramiko 를 사용하지 않고 pure OpenSSH 를 사용한다. 이 경우 OpenSSH 가 ControlPersist 를 지원해야 하지만  RHEL/CentOS 6 에 탑재된 openssh 는 버전이 낮으므로 계속 paramiko 를 사용해야 한다. (RHEL 7 부터는 문제 없음)

 

ansible 설치

yum install ansible -y

 

hosts 설정

/etc/ansible/hosts 파일에 등록
  • hosts 파일에 자기가 관리할 서버들을 목록을 만든다
[example]
xxx.xxx.xxx.154
xxx.xxx.xxx.159
xxx.xxx.xxx.169

 

위와 같이 목록을 만들게 되면 example을 통해 3개 서버에 ansible 명령어를 사용할 수 있다.

목록을 만들었다면 목록들로 이루어진 구성도 가능하다.

 

[full:children]
example1
example2

위와 같이 example1, example2 목록이 존재하는데 목록을 한번에 다 사용하고 싶을 때는 [full:childre]으로 묶을 수 있다.

* 참고 : full이라는 목록은 사용 못한다.

ansible CLI (쉘 명령어)

ansible full -m shell -o -a "ls -al /cache1 | grep 1.txt"|awk '{print$1,$13,$14,$15}' 

ansible 명령어 다음에 hosts에 등록하였던 목록을 넣으면 쉘 명령어를 보낼 수 있다.

ansible CLI (파일 copy)

ansible 11st -m copy -o -a "src=/root/log.conf dest=/root/log.conf"

CLI 형태로 파일 목사 명령어를 날릴 수 있다.

 

간단하게 설치와 설정법, 그리고 기본적인 명령어들을 정리해봤다.

필요에 따라서 더 간편하게 여러 가지 명령어들을 사용할 수 있는 방법이 있다.

ansible-playbook 명령어로 yml 포맷의 파일을 이용하여 다양한 관리를 할 수 있다.

반응형

댓글 영역