Study/Ansible

[Ansible]Ansible(앤서블) 기본 개념

seomj 2023. 2. 7. 15:25

Ansible(앤서블) 구성

인벤터리(Inventory)

Ansible hosts라고도 함

원격 서버들의 목록

/etc/ansible/hosts 파일에 원격 서버들 목록이 저장되어 있음

 

플레이북(play-book)

원격 서버에 전달할 명령들을 모아둔 명령집

구축 정보에 대한 정의를 미리 실시

구축을 실행하는 경우에 이 playbook 파일을 지정하는 것만으로 자동으로 일련의 처리가 진행되는 구조

 

예제

우선, 사전작업을 해주자.

$ sudo yum -y install git
$ git clone https://github.com/devops-book/ansible-playbook-sample.git

 

이제 playbook을 실행해보자.

$ cd ansible-playbook-sample
$ ansible-playbook -i development site.yml

해당 샘플에서는 nginx 설치와 index.html을 갱신

 

-i: Inventory

그러나 여기서는 별도 파일을 지정

 

 

상태 확인

$ curl localhost

잘 동작하는 것을 확인

 

 

위의 site.yml 파일을 다시 보자.

'hosts: webservers'는 별도 정의된 Inventory File에서 지정한 그룹을 참조

 

development 파일을 확인해보자.

localhost는 webservers 그룹과 development-webservers 그룹에 속해 있다

webservers에 localhost라는 정보를 저장하고 있으며, webservers는 development-webservers 정보를 상속받고 있다

 

'become'은 대상 호스트에 root 사용자로 작업을 수행하도록 지정

 

'connection'은 대상 호스트가 ssh 대신 local 연결을 하는 것을 의미

 

'roles'는 common과 nginx 처리 수행을 지정

이 두 가지가 구체적으로 무엇을 수행하는 것인지는 roles directory 아래 각각 tasks안에 기록

 

dry-run 모드

실제로 인프라를 배포하기 전에 ansible을 check 모드로 실행하는 것

 

실행

$ ansible-playbook -i development site.yml --check --diff

--check: dry-run 모드 지정

--diff: 변경 차리를 표시하도록 지정

 

index.html 파일 수정 후 재실행

$ vi /home/vagrant/ansible-playbook-sample/roles/nginx/templates/index.html.j2

hello, {{env}} ansible!!!
hello, {{env}} ansible~ #수정

$ ansible-playbook -i development site.yml --check --diff

$ ansible-playbook -i development site.yml --diff

 

결과 확인

$ curl localhost

 

 

 

<출처>

IT 운용 체제 변화를 위한 데브옵스(DevOps)

https://5equal0.tistory.com/entry/Ansible-%EC%95%A4%EC%84%9C%EB%B8%94Ansible-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%84%A4%EC%B9%98%EC%82%AC%EC%9A%A9%EB%B2%95-w-CentOS-76

https://devlos.tistory.com/30

https://blog.naver.com/alice_k106/221333208746

https://devlos.tistory.com/31

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

[Ansible]Serverspec  (0) 2023.02.07
[Ansible]Ansible(앤서블) 시작하기  (0) 2023.02.07