Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

하마롱크의 블로그

Ansible 시작하기 본문

카테고리 없음

Ansible 시작하기

하마롱크 2021. 11. 9. 08:46

Ansible을 시작하기 위한 기본 구성 과정을 정리했다.

GCP 플랫폼에서 CentOS8을 기반으로 하여 진행했다.

 

1. Control 노드 구성하기

Control 노드의 내부IP는 10.178.0.3로 고정했다.

sudo su -

#hostname 설정
vim /etc/hostname
hostnamectl set-hostname control.example.com


#SELINUX 모드 변경
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux
setenofrce0 
getenforce	#permissive


#방화벽 비활성화
systemctl stop firewalld
systemctl disable firewalld


vim /etc/hosts
#host 구성하기
#127.0.0.1   localhost.localdomain       localhost
#10.178.0.3  control.example.com         control
#10.178.0.4  servera.example.com         servera
#10.178.0.5  serverb.example.com         serverb
#10.178.0.6  serverc.example.com         serverc


#root 비밀번호 설정
passwd

#test 유저 생성, 비밀번호 설정 후 로그인
useradd test
passwd test 
su - test


#키 생성하기
mkdir .ssh
ssh-keygen -t rsa 
cat .ssh/id_rsa.pub
#생성된 키 복사하여 GCP 플랫폼의 메타데이터에 추가
exit


#test유저 슈퍼유저로 변경
vim /etc/group
#wheel:x:10:test


#sudo 패스워드 입력없이 사용할 수 있도록 설정
vim /etc/sudoers

#test유저로 로그인 후 sudo 패스워드 없이 사용 가능한지 확인
su - test 
sudo yum install vsftpd

 

2. Managed Node 구성하기

Managed Nodes는 3개로 구성했다. 각각의 IP는 다음과 같이 설정했다.

servera : 10.178.0.4
serverb : 10.178.0.5
serverc : 10.178.0.6

sudo su -

#hostname 설정
hostnamectl set-hostname servera.example.com


#SELINUX 모드 변경
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux
setenofrce0 
getenforce	#permissive


#방화벽 비활성화
systemctl stop firewalld
systemctl disable firewalld


#SSH 서버 암호 인증 활성화
vim /etc/ssh/sshd_config
#Passworuthenti nodetion yes
systemc#tl restart sshd

#control node에서
#ssh test@servera로 접속이 되는지 확인


su - test
sudo yum install -y vsftpd


3. Ansible 설치

#Control Node에서 Ansible 패키지 설치
sudo dnf install -y epel-release
sudo dnf install -y ansible


#inventory 파일 작성
vim inventory	#servera \ serverb \ serverc


#ansible 설정파일 작성
vim ansible.cfg

#[defaults]
#inventory = ./inventory
#remote_user = test
#ask_pass = false
#[previlege_escalation]
#become = true
#become_method = sudo
#become_user = root
#become_ask_pass = false

 

4. Ansible  동작 확인 

ansible --version

#managed node 서버 동작 확인
ansible servera -m ping

#servera | SUCCESS => {
#    "ansible_facts": {
#        "discovered_interpreter_python": "/usr/libexec/platform-python"
#    },
#    "changed": false,
#    "ping": "pong"

ansible servera -m ping에서 servera는 명령어가 실행되는 대상 노드이며 -m은 ansible이 지원하는 모듈을 의미하며, ping은 ICPM ping을 수행하는 것이 아니라 관리 호스트에서 Python기반 모듈을 실행할 수 있는지 확인하는 것이다.

 

ansible에서 fact는 동적 할당 변수를 의미하며 여기에선 Python 기반 모듈의 해석기로서 platform-python이 할당되었다고 보여준다.
"changed": false,는 대상노드에서 이 명령어를 실행함으로서 변경사항이 발생하지 않았다는 의미이며,
"ping": "pong" 은 ping에 대한 반환값으로 ping모듈이 성공적으로 동작했다는 의미이다.

 

 

※ 이 글의 내용은 받고 있는 교육내용을 토대로 정리했습니다.