⚡ Ansible(5)
-
( 메모 ) Ansible role base 구조 및 inventory 그룹핑 방법
Intro 이번 게시글은 ansible playbook 구조에 대해 러프하게 보려고 한다. 목적은 세부적으로 모든 것을 테스트 하는 것은 아니고, 기존에 playbook을 유지보수 하면서 어렴풋이 알았던 것을 "아~ 이게 이런 용도 였구나!" 라고 한번 짚어보기 위함이다. ( 체계적이지 못한 내용이라 다른 분들께 도움이 못 될 것 같습니다.. ) Sample Directory Layout 아래는 ansible 공식문서에서 찾을 수 있는 Directory Layout 이다. 이중에서 오늘 새롭게 알게 된 것은 handler 이다. task에 쓰인 모듈의 changed 값에 따라 trigger 되는 함수 개념이라고 한다. 예를 들어서 특정 서비스의 status 확인을 했는데 active 상태가 아니면 not..
2022.09.05 -
Ansible Vault로 민감한 데이터 암호화하기
Intro Ansible Playbook에 비밀번호나 api key 같은 보안상 민감한 내용이 사용되어야 할 때가 있다. 평문으로 넘길 경우 보안상 취약하기 때문에 암호화하는 것이 필요하다. 이때 Ansible Vault로 변수의 암호화를 수행하고, playbook 에서 이를 참조하여 보안을 강화할 수 있다. 배경 다음과 같이 dbadm 계정을 생성하고 패스워드를 지정하려고 한다. 이때 계정에 대한 패스워드를 아래와 같이 평문으로 넘기는 것은 보안상 취약하다. [root@wglee-deploy training-wglee-playbook]# cat roles/deploy-db/tasks/main.yml --- - name: Create user user: name: dbadm password: "dbate..
2022.09.05 -
Ansible 서버 reboot 후 정상적으로 올라왔는지 확인하기
Intro Ansible Playbook에서 target 서버를 reboot했을 때, 해당 서버가 정상적으로 올라온 상태에서 나머지 task를 실행해야 할 것이다. 올라온 것을 검증하지 않고 나머지 task를 수행하면 에러가 발생할 수 있다. 본 게시글에서는 target서버 reboot 후 정상적으로 올라왔는지 확인하는 방법 2가지를 설명한다. 첫번째는 wait_for 모듈을 사용하는 것이고, 두번째는 reboot 모듈의 test_command 파라미터를 사용하는 것이다. 직접 사용해보니 reboot 모듈의 test_command 로 확인하는 것이 task를 줄일 수 있고 훨씬 간편하다. 1. wait_for / connection wailt_for 모듈을 사용하면 특정 포트 상태를 확인하여 어플리케이션..
2022.09.05 -
Ansible Semaphore 설치 (CentOS 7)
Intro 오늘은 Ansible Semaphore 에 대해 알아보도록 한다. Ansible Semaphore 는 Ansible Playbook을 UI 적으로 관리할 수 있는 인터페이스이다. Web UI로 쉽게 다룰 수 있어 cli 사용이 어려운 비엔지니어도 사용이 편리하다. 또한 역할 기반으로 엑세스를 제어하여 보안을 높이고, 각 task별로 cron을 등록해 스케줄링이 가능하다. Semaphore Home : https://ansible-semaphore.com/ Semaphore Docs : https://docs.ansible-semaphore.com/ 설치 환경 Centos 7.6 Ansible Semaphore 최신 버전 ( v2.8.49 ) Ansible 2.9.27 설치 과정 Ansible ..
2022.09.05 -
Ansible Semaphore 기본 동작 테스트 - task 등록 및 cron 스케줄링
Intro 지난 게시글에서 Ansible Semaphore 설치한 것에 이어, task 를 등록해 보도록 한다. Semaphore를 통해 task에 cron 을 걸어서 스케줄링을 할 수도 있다. 프로젝트 생성 프로젝트 생성 후에 대시보드를 확인 할 수 있다. Environment 생성 나는 따로 외부에서 변수 지정할 것은 없어서 빈 파일을 생성했다. SSH Key 생성 target에 task를 돌릴 때 사용할 ssh key 등록 semaphore가 동작하는 master 서버에서 target 서버에 접속하여 플레이북을 실행할 때 사용할 ssh 개인키를 등록한다. Repository 생성 github 주소를 url 칸에 입력한다. 나는 SSH 타입으로 git clone을 할 것이다. git clone을 할 ..
2022.09.05