본문 바로가기

DevOps/Ansible

Ansible - 2. 구성요소

Ansible은 4가지 파일로 구성하여 사용한다고 볼 수 있습니다. (저는 그렇습니다..ㅎㅎ)

 

1. ansible.cfg

config 파일 입니다. 

docs.ansible.com/ansible/latest/reference_appendices/config.html

 

Ansible Configuration Settings — Ansible Documentation

Default:[‘bud-frogs’, ‘bunny’, ‘cheese’, ‘daemon’, ‘default’, ‘dragon’, ‘elephant-in-snake’, ‘elephant’, ‘eyes’, ‘hellokitty’, ‘kitty’, ‘luke-koala’, ‘meow’, ‘milk’, ‘moofasa’, ‘moose’, ‘ren

docs.ansible.com

위의 Docs를 잘 읽어보시는게 가장 베스트이지만, 저는 아래와 같이 간단하게 두가지 정도 세팅을 하고 사용합니다.

[defaults]
host_key_checking = False
command_warnings = False

 

host key checking은 Cloud Computing을 사용하시면 아래와 같은 인증확인을 보신적이 있을텐데, 이를 체크하지 않고 진행하는 것을 의미합니다. Jenkin를 활용해 CICD를 구성하여 진행할 경우 해당 부분때문에 Auth부분에서 에러가 발생하기도 합니다.

 

GATHERING FACTS ***************************************************************
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:yy:zz:....
Are you sure you want to continue connecting (yes/no)?

 

command_warnings은 Ansible을 활용하다 보면 아래와 같은 메세지를 보는 경우가 많은데 이를 나타나지 않게 하기 위함입니다.

[WARNING]: Consider using the file module with state=absent rather than running rm.  If you need to use command
because file is insufficient you can add warn=False to this command task or set command_warnings=False in
ansible.cfg to get rid of this message.

 

2. Inventory.ini

 

인벤토리는 앤서블에 정의된 세팅을 어느 서버에 할 것인지 작성하는 부분입니다.

 

[node:vars]
ansible_ssh_private_key_file=~/abcd.pem
ansible_user=ec2-user

[node]
10.0.1.150
10.0.1.155

 

위와 같이 그룹으로 설정하여 설치하고자 하는 세팅들을 해당 그룹에만 설치할 수 있도록 분리할 수 있습니다.

또한 예전에는 ssh에 대한 인증을 모두 만들어야 했다면, 이제는 pem키로 접근을 지원하기 때문에 위와 같이 설정하여 수행하실 수 있습니다.

 

3. Playbook.yaml

 

해당 서버들에 어떠한 세팅을 할 것인지 적는 파일입니다.

Shell Script를 수행할 수 있으며, yum과 같은 모듈을 사용하여 패키지를 설치할 수 있습니다.

 

4. Variable.yaml

 

매번 사용되는 것은 아닙니다.

예를 들어 만약 유저를 생성한다고 한다면, 그때 그때 사이트의 보안 규정에 맞춰 다르게 구성될 것입니다.

혹은 설치 경로가 될 수도 있으며, DB URL이나 Host 정보 등 고정되지 않은 값이어서

해당 값만 넣으면 기존에 세팅하고자 했던 부분들을 세팅할 수 있도록 구축하기 위해 분할하여 사용합니다.

 

각 요소들에 대해 간단하게 알아봤습니다.

 

다음 포스팅에서는 CICD로 구축하여 배포까지 자동화 해보도록 하겠습니다.

 

 

'DevOps > Ansible' 카테고리의 다른 글

Ansible - 4. Sonarqube 설치하기  (0) 2020.09.07
Ansible - 3. 서버 기본 세팅 & CICD  (0) 2020.09.07
Ansible - 1. Intro  (0) 2020.09.07