본문 바로가기

DevOps/Ansible

(14)
[Ansible] 9. ansible Module (systemd, service) systemd와 service 모듈은 daemon 등록과 관련된 앤서블 모듈입니다. 앤서블 모듈을 먼저 알아보기전에, systemd와 service의 경로나 관리하는 방법에 대해서 먼저 알아야 합니다. systemctl 이란? RHEL 7 에 도입된 systemd 를 관리하는 명령어 service 이란? /systemd/system/{{서비스이름.service}} 디렉토리 아래에 확장자가 .service인 파일을 만들면, systemctl 명령을 통해 서비스를 제어할 수 있습니다. systemd service가 등록되어 있지 않아도, service를 실행하면 자동으로 systemctl에 등록됩니다 (참고로 CentOS 7 이전에는 기존 서비스 관리 명령어였던 chkconfig를 통해 /etc/init.d..
[Ansible] 8. Ansible 구조에 대한 표준 가이드 8. Ansible을 통한 코드 작성 표준 메뉴얼 1. 인벤토리 인벤토리는 앤서블에 의해 제어되어 infrastructure as a code의 대상이 될 서버들의 목록을 정의하는 파일이다. 일반적으로 hosts 파일에 정의해 사용하는데 vRealize Automation에서는 이 hosts 파일을 통합 관리하게 되면, deploy간의 순서를 특정하지. 못해 충돌이 일어나기 때문에 각 deployment 마다 새로 디렉토리를 생성하여 그안에 hosts 파일과 host variable등을 관리한다 2. 플레이북 플레이북은 yaml 포맷으로 되어있는 파일로서, 인벤터리 파일에서 정의된 서버들에서 어떤 작업들을 실행할지 정의한다. 일반적으로 앤서블을 사용한다고 하면, 플레이북을 사용하는것이 일반적이며, 플레이..
[Ansible] 7. ansible Module (텍스트 수정) 오늘 포스팅 할 내용은 ansible에서 text파일을 어떻게 관리하면 좋을까? 입니다. 기본적으로 linux OS에서는 echo 명령어와 sed 명령어 등을 이용해서 text 파일을 수정하고 관리하였는데, 앤서블에서는 이러한 기능들을 모듈로 제공하고 있습니다. blockinfile – Insert/update/remove a text block surrounded by marker lines lineinfile – Manage lines in text files replace – Replace all instances of a particular string in a file using a back-referenced regular expression 간단히 설명하자면, blockinfile은 echo..
[Ansible] 6. ansible Module (yum repository) 앤서블의 핵심은 코드실행의 멱등성을 갖추고 있다는 점에 있다. 멱등성이란 여러번 ansible 툴을 사용하더라도 동일한 결과값을 나올 수 있도록 제공되는 형태여야 한다. 즉 매번 다른 결과가 나오거나 에러가 나온다면 비멱등성(non-idempotent) 하다고 할 수 있다. ansible 툴의 거의 대부분의 모듈은 멱등성을 제공한다. 또한 멱등성을 제공하기 위해서는 조건절을 제공하고 있다. 출처: https://knight76.tistory.com/entry/ansible-멱등성idempotent-용어-이해하기 [김용환 블로그(2004-2020)] 즉 중복실행을 하더라도, make directory 같은 shell 명령어는 2번 입력 시 에러를 발생시키는데, 이러한 에러등이 작업에 영향을 미치지 않게끔 ..
[Ansible] 5. mariadb 바이너리 설치 앤서블로 mariadb를 설치하는 경우 보통 구글링에 나오는 자료들은 repository를 이용하여 패키지 설치하는 경우만 나오기 때문에, 해당 포스팅은 mariadb를 바이너리 설치하는 내용에 대해서 ansible의 모듈도 조금 익힐수 있게 설명과 소스를 포스팅 하겠습니다. 우선 전체적인 흐름을 먼저 잡아보자면 mariadb는 tarball을 가지고 설치를 합니다. 물론 yum ,apt , zhipper 등을 사용하면 이러한 설치 과정이 없이 바로 서비스를 등록할수 있지만, 인터넷 환경이 아닌 경우가 종종 있어서 알고 있으시면, 좋습니다. 1. tarball을 unarchive 합니다. 즉 압축을 푸는거죠. 2. 압축을 풀게되면 mariadb-linux-system-10.3.20 등 이렇게 디렉토리가 ..
[Ansible] 4. vRealize Automation 연동 오늘은 VMware의 자동화 솔루션인 vRealize Automation과 Ansible의 연동을 다뤄보려고 합니다. 우선 크게는 해야할 작업은 다음과 같습니다. 앤서블 호스트를 설치합니다. ( ansible 설치 ) ansible host의 playbook 실행파일을 수정합니다 ( 디렉토리 추가, 호스트 파일 복사 ) ansible host에 config파일을 설정합니다. default값으로 vault password를 사용할 것이고, 기본적인 세팅들을 합니다. 위 내용들은 vmware의 공식홈페이지 document들을 참고합니다. vRA에서 ansible 호스트를 등록합니다. 블루프린트를 작성합니다. 현재 제 환경은 다음과 같습니다. vRA Version : 8.4 Ansible Host : Ubun..