Skip to main content

1- Ansible 이해하기

Ansible을 알기 위해서는 먼저 IaC(Infrastructure as Code)를 이해해야 하는데요. (알아요…. 개발자가 아닌이상 code라는 단어가 나오기 시작하면 머리가 아프기 시작하는거…ㅠㅠ) IaC는 일단 개념만 알아두고 넘어가요.

눈앞에 OS만 설치된 2대가 있다고 치죠.
이 서버를 apache 혹은 nginx 같은 어플리케이션을 설치한다고 하면, 서버 2대에 접속해서…..

$ yum install apache
혹은
$ apt-get install nginx

이런 명령어를 실행해서 어플리케이션을 설치할꺼예요.
그 다음은? mpm이나 vhost같이 apache 추가 설정해야 할 수도 있겠죠.
그러고 난 다음엔 웹 구동을 위한 docroot 설치도 해야 할꺼고, 기타 등등
블라블라~~

우리는 IaC 개념을 접하기전까지는 저런 절차를 수동으로. 혹은 script를 만들어서 사용을 했을꺼예요. 그런데 어떠한가요? 편리한가요? 서버 수량이 2대가 아니라 50대, 100대라면..? 일일이 커맨드 치면 많이 힘들지 않을까요? (우리의 소중한 손가락 보호해요..ㅠㅠ)
script로 할때는 어떨까요? 손으로 할때보다는 편리하겠지만 script 개발한 사람이 퇴사한 경우라면….?

IaC(코드로 인프라 관리)는 수동으로 진행하는 업무를 code화 해서 운영자가 수동으로 하는 업무를 최대한 자동으로 관리한다는 개념..입니다.

IaC를 완성시켜줄 수 있는 도구인 CM(Config Manange) Tool은 puppet / chef / Ansible 이 있는데요.
최근에 Ansible기반의 IaC를 구성해서 마무리가 되었는데요.
따끈따끈한 지식이 있을때 Ansible에 대한 포스팅을 진행하고자 합니다.

왜? Ansible로 진행한 이유는….

  1. Opensource라서.. (License는 GPL 정책을 따릅니다.)
  2. Windows / Linux / Network까지 두루두루 사용할 수 있어서
    (Windows은 WinRM이라는 기능으로 접근하고 나머지는 ssh기반으로 접근해서 사용합니다.)
  3. AWX라는 별도의 Opensource을 이용해 WebUI기능이 제공되기 때문에…
  4. 멱등성을 지원합니다. 멱등성은 여러번 실행해도 결과가 달라지지 않는다는 수학적 개념입니다.

이런 사유로 puppet이나 Chef를 사용하지 않고 Ansible로 진행을 하게 되었습니다.


Ansible은 2015년에 Redhat에서 인수 /  관리하고 있어요.

 

출처

  1. https://ko.wikipedia.org/wiki/%EB%A9%B1%EB%93%B1%EB%B2%95%EC%B9%99
  2. https://www.ansible.com/