wait_for 모듈 ansible의 wait_for 모듈은 특정 동작을 대기, 확인할 때 쓰이는 모듈이다. Application의 상태를 확인하거나, 파일의 존재여부를 확인, 파일의 특정 내용의 유무 등을 확인하여 다음 동작의 여부를 판단하는데 주로 사용한다. wait_for 모듈 가이드 문서 = docs.ansible.com/ansible/2.3/wait_for_module.html ansible.builtin.wait_for module – Waits for a condition before continuing — Ansible Documentation Note This module is part of ansible-core and included in all Ansible installations..
lineinfile 모듈 ansible의 lineinfie 모듈은 regular expression을 사용하여 파일의 내용 변경 작업을 하는 모듈이다. Ansible 가이드 페이지 docs.ansible.com/ansible/2.5/modules/lineinfile_module.html ansible.builtin.lineinfile module – Manage lines in text files — Ansible Documentation ansible.builtin.lineinfile module – Manage lines in text files Note This module is part of ansible-core and included in all Ansible installations. In ..
fetch, Copy 모듈 사용ansible의 Fetch, Copy 모듈은 linux의 scp 명령어 동작방식과 유사하다.기본적인 모듈 사용에 관한 설명은 ansible 가이드 페이지에서 확인할 수 있다. ansible.builtin.fetch module – Fetch files from remote nodes — Ansible DocumentationNote This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name fetch even without specifying the collections: keyword. However, ..
Synchronize 모듈ansible의 Synchrinize 모듈은 linux의 rysnc 명령어를 사용할 수 있도록 만들어 놓은 모듈이다. Remote to Remote로 데이터 전송ansible에서 파일을 옮기는 방법은 copy, fetch 등의 방법도 있지만,synchronize(rsync)를 사용하여 두 host 간에 데이터를 전송하는 방법에 대해 설명하겠다. 단일 데이터(혹은 2,3개 등 적은 데이터)- 주로 copy, fetch 모듈을 사용한다.대용량의 파일(혹은 디렉터리)- synchronie 모듈을 사용한다. 1. Sysnchrinize default 모드 (push) sysnchrionize default 동작 Sysnchronize는 default로 push mode로 동작한다.S..
Ansible 반복문ansible에서 반복문이란, task를 반복하는 것이다. 예를 들어 사용자 10 명을 만들어야 한다고 가정한다면, user 모듈로 진행할 때 task를 10개를 생성해야 하는데해당 작업을 반복문을 이용해 효율적으로 줄일 수 있는 것이다. ansible에서 반복문을 사용할 수 있는 방법으로 loop와 with_item 두 가지가 있다.ansible 2.4 까지는 with_* 키워드를 사용하여 작업을 진행하였으나,ansible 2.5 부터는 좀 더 명확한 loop 키워드를 사용한다.(패키지 관련된 모듈은 반복문을 쓰지 않을것을 권장한다고 한다.) with_item 반복문추가예정 loop 반복문반복문을 사용하여 host 서버의 user를 삭제하는 실습을 진행해보겠다.(user 모듈로 ..
ansible.cfg 파일이란?ansible.cfg 엔진은 ansible 명령을 실행할 때 모든 환경설정 및 세팅이 들어있는 ansible.cfg를 참고하여 명령을 실행한다. ansible.cfg 파일 사용ansible.cfg 파일은 여러 위치에 있을 수 있고, ansible 엔진은 정해진 순서대로 구성파일을 확인한다. ansible 명령이 실행되는 디렉터리에 있는 ansible.cfg 파일홈 디렉터리에서 ansible.cfg를 찾는다. 이게 없으면 default 구성파일을 사용한다.default 구성파일인 /etc/ansible/ansible.cfg 이를 통해 관리자는 다양한 관경이나 프로젝트가 별도의 디렉토리에 저장되는 구조를 생성할 수 있고,각 디렉터리에는 고유 설정 집합으로 맞춤화된 구성파일을 ..
Inventory 작성 방법Invnetory는 확장자명이 따로 존재하지 않는다.따라서 파일 이름은 본인 마음대로 정해도 된다.(inventory 파일은 기본적인 host 주소들의 묶음이라고 생각하면 된다.) 추가로 .yml 파일로도 inventory 작성이 가능하다.mail.example.com //이렇게 하면 Ad-hoc이나 Playbook에서 해당 호스트 네임으로 명령어 실행가능//호스트 네임과 IP주소로 설정 가능[webservers]192.168.0.5192.168.0.6[dbservers]one.example.comtwo.example.comthree.example.com[nossh]nossh.example.com:5050 //기본 ssh포트를 사용하지 않는다면 이런식으로도 설정 가능..
모듈이란?CLI나 playbook 작업에서 사용할 수 있는 별도의 코드 단위이다.하나의 작은 프로그램이라고 생각하면 된다. 모듈의 특징멱등성을 보장해준다.중복 실행될 여지가 차단된다.가독성이 좋다.배포전에 테스트가 가능하다.이제 서버와 인벤토리가 준비되었다고 가정 하에 모듈 실습을 진행하겠다.(본인은 EC2 2대 사용하여 진행하였다. 시작 전 꼭 ping으로 테스트 진행할 것.) 1. Shell 모듈쉘을 이용한 작업에 사용되는 모듈이다.-a로 쉘에서 동작시킬 명령어를 입력시킬 수 있다. 본인은 inventory를 새로 작성하여 진행했기 때문에 inventory를 -i 옵션으로 지정해주었다. 2. User 모듈지정한 서버에 user를 생성하는 모듈이다.ansible all -m user -a 'nam..
저번 글에서 조건문(when)을 활용해서 조건에 만족하는 경우에만 파일에 내용을 추가하는 기능을 테스트하였다.https://cwpack0730.tistory.com/12 [Ansible] When 조건문Ansible When 조건문 및 파일 내용 추가 Ansible when 조건문을 활용하여 해당 파일이 있는 서버에만(*조건) 파일에 내용을 추가하는 기능을 실습해보려 한다. EC2 3개 (ansible1, hosts2) 로 테스트를 진행해cwpack0730.tistory.com 하지만 단순히 yes or no 말고도 (조건에 만족하면 start, 아니면 stop) a조건이면 a실행, b조건이면 b실행 등 조건을 나눠서 사용해보고 싶어졌다. 여러 when을 사용할 수 있는 방법을 조사해봤으나,단순한 Whe..
Ansible When 조건문 및 파일 내용 추가Ansible when 조건문을 활용하여 해당 파일이 있는 서버에만(*조건) 파일에 내용을 추가하는 기능을 실습해보려 한다.EC2 3개 (ansible1, hosts2) 로 테스트를 진행해보겠다. Ansible 파일 내용 추가일단 이미 존재하는 파일에서 내용을 추가하는 기능을 실습하겠다.ansible의 lineinfile 모듈은 regular expression을 사용하여 파일의 내용을 변경하는 작업을 하는 모듈이다.( regular expression/정규 표현식 은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다.)--- - hosts: all name: rc-local service status check gather_facts: fal..
ansible playbook에서의 오류처리ansible에서는 각 task의 return code를 평가하여 task의 성공 여부를 판단한다.(Ansible 은 0이 아닌 return code 를 수신하거나 모듈에서 오류를 수신하면해당 호스트에서 실행을 중지하고 다른 호스트로 넘어가게 된다.) 일반적으로 task에서 하나가 실패하는 즉시 ansible은 해당 호스트의 play를 중단하고 종료된다.하지만 작업이 실패한다 하더라도 play를 계속할 수 있어야 한다.(예로 특정 작업이 실패할 것으로 예상하고 몇가지 다른 작업을 조건부로 실행하여 복구하는 등)Ansible 은 이러한 상황을 처리하고 원하는 동작, 출력 및 보고를 얻는 데 도움이 되는 설정을 제공한다. 작업 실패 무시하기 : ignore_erro..
[Ansible] 앤서블(Ansible) 호스트 명령 내리기서버 여러대를 그룹으로 나누어 따로 따로 명렁어를 내려보겠다. AWS EC2 의 cwCool name의 Controller 서버 1 대, 내 공유기의 ESXi Ubuntu server 1대, AWS EC2 새로운 인스턴스 3대를 생성해서 진행하겠다. 즉 ,cwpack0730.tistory.com지난 페이지 호스트 명령 내리기에서 이어 진행하므로, 준비 내용물은 같다.(서버4대) 모든 서버 update 하기/home/ec2-user/.ssh/test/playbook경로로 svc_update.yml 파일을 만들어준다.(command 창 명령어로는 sudo yum update)---- name: all server update hosts: all ..