ETC

[자동화] Ansible | 간단 설치 및 기본 명령어(Shell) 실행까지

인프라보이 2021. 3. 8. 17:04

Multiple Hosts를 중앙 관리할 수 있는 유용한 도구인 Ansible을 적용해보려 합니다. 기본적으로 관리하기 위하여 사용을 하였는데 기초적으로 어떻게 설정하고 사용하는지에 대한 방법을 공유합니다.  자세한 이론은 아래 링크에서 확인!

docs.ansible.com/

 

Ansible Documentation

Ansible Documentation An enterprise automation platform for the entire IT organization, no matter where you are in your automation journey

docs.ansible.com

0. 구성 환경 Summary

 1개의 관리 서버
 6개의 Target 서버 
 * 아래에는 root로 실행이 되지만 실제로는 사용자 계정을 생성하여 해당 계정으로 수행해야 함.

1. Ansible Master 설치

# yum install epel-release
# yum install ansible -y

2021년 03월 18일 기준, 16개의 Package가 설치됩니다.

2. Ansible Remote 서버 등록

/etc/ansible/hosts 에 기본적인 Sample(example) 정보가 있습니다. 관련하여 주석을 해제하거나 특정한 그룹으로 호스트를 등록합니다.

 

3. Remote 서버에 패스워드 없이 접속할 수 있도록 설정

SSH Key 생성하여 원격관리 서버에 전달

# ssh-keygen

 

관리대상 서버에 ssh key ID를 전달, 아래와 같이 입력할 때 원격 호스트 패스워드 입력

# ssh-copy-id 192.168.1.50
# ssh-copy-id 192.168.1.51
# ssh-copy-id 192.168.1.60
# ssh-copy-id 192.168.1.61

 

4. Remote 서버가 정상적으로 응답하는지 PING-PONG 테스트

# ansible all -m ping
# ansible 그룹명 -m ping

Ping에 대한 응답으로 pong을 주고 있음.

5. Ansible Master서버에서 Remote서버로 파일 배포 

# ansible all -m copy -a "src=~/test.txt dest=/tmp/test.txt"
# ansible 그룹명 -m copy -a "src=~/test.txt dest=/tmp/test.txt"

Remote서버로 파일 복사

6. Remote 서버에서 Ansible Master로 일괄 파일 수집 

# ansible all -m fetch -a "src=/var/log/message dest=/test/logs/log"
# ansible 그룹명 -m fetch -a "src=/var/log/message dest=/test/logs/log"

Ansible master서버에 Ansible에 등록된 모든 Remote서버의 messages파일이 복사됨

 

7. Remote 서버에 일괄 Shell 명령 수행

# ansible all -m shell -a "ulimit -a"
# ansible 그룹명 -m shell -a "yum install net-tools -y"
# ansible 그룹명 -m shell -a "ip a"

ansible all -m shell -a "df -h"

 

 

728x90