IaC

IaC/Ansible_앤서블

[Ansible] wait_for, wait_for_connection 모듈 (동작 대기, 확인)

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..

IaC/Ansible_앤서블

[Ansible] lineinfile 모듈 (파일 수정)

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 ..

IaC/Ansible_앤서블

[Ansible] fetch, copy 모듈(파일 복사)

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, ..

IaC/Ansible_앤서블

[Ansible] Sysnchronize 모듈(Remote to Remote 파일전송)

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..

IaC/Ansible_앤서블

[Ansible] 반복문 (loop, with_item)

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 모듈로 ..

IaC/Ansible_앤서블

[Ansible] cfg 파일 설정(앤서블 명령 설정, 세팅)

ansible.cfg 파일이란?ansible.cfg 엔진은 ansible 명령을 실행할 때 모든 환경설정 및 세팅이 들어있는 ansible.cfg를 참고하여 명령을 실행한다.  ansible.cfg 파일 사용ansible.cfg 파일은 여러 위치에 있을 수 있고, ansible 엔진은 정해진 순서대로 구성파일을 확인한다. ansible 명령이 실행되는 디렉터리에 있는 ansible.cfg 파일홈 디렉터리에서 ansible.cfg를 찾는다. 이게 없으면 default 구성파일을 사용한다.default 구성파일인 /etc/ansible/ansible.cfg 이를 통해 관리자는 다양한 관경이나 프로젝트가 별도의 디렉토리에 저장되는 구조를 생성할 수 있고,각 디렉터리에는 고유 설정 집합으로 맞춤화된 구성파일을 ..

IaC/Ansible_앤서블

[Ansible] Inventory 작성방법

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포트를 사용하지 않는다면 이런식으로도 설정 가능..

IaC/Ansible_앤서블

[Ansible] 자주 사용하는 간단한 모듈 활용

모듈이란?CLI나 playbook 작업에서 사용할 수 있는 별도의 코드 단위이다.하나의 작은 프로그램이라고 생각하면 된다. 모듈의 특징멱등성을 보장해준다.중복 실행될 여지가 차단된다.가독성이 좋다.배포전에 테스트가 가능하다.이제 서버와 인벤토리가 준비되었다고 가정 하에 모듈 실습을 진행하겠다.(본인은 EC2 2대 사용하여 진행하였다. 시작 전 꼭 ping으로 테스트 진행할 것.)   1. Shell 모듈쉘을 이용한 작업에 사용되는 모듈이다.-a로 쉘에서 동작시킬 명령어를 입력시킬 수 있다. 본인은 inventory를 새로 작성하여 진행했기 때문에 inventory를 -i 옵션으로 지정해주었다.  2. User 모듈지정한 서버에 user를 생성하는 모듈이다.ansible all -m user -a 'nam..

IaC/Ansible_앤서블

[Ansible] When 조건문 트리구조 생성(includ_tasks)

저번 글에서 조건문(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..

IaC/Ansible_앤서블

[Ansible] When 조건문

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..

IaC/Ansible_앤서블

[Ansible] 작업 제어 구현 - 오류처리

ansible playbook에서의 오류처리ansible에서는 각 task의 return code를 평가하여 task의 성공 여부를 판단한다.(Ansible 은 0이 아닌 return code 를 수신하거나 모듈에서 오류를 수신하면해당 호스트에서 실행을 중지하고 다른 호스트로 넘어가게 된다.) 일반적으로 task에서 하나가 실패하는 즉시 ansible은 해당 호스트의 play를 중단하고 종료된다.하지만 작업이 실패한다 하더라도 play를 계속할 수 있어야 한다.(예로 특정 작업이 실패할 것으로 예상하고 몇가지 다른 작업을 조건부로 실행하여 복구하는 등)Ansible 은 이러한 상황을 처리하고 원하는 동작, 출력 및 보고를 얻는 데 도움이 되는 설정을 제공한다. 작업 실패 무시하기 : ignore_erro..

IaC/Ansible_앤서블

[Ansible] 앤서블(Ansible) Playbook 만들기 - update, shutdown, 파일 복사하기

[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 ..

cwpack0730
'IaC' 카테고리의 글 목록 (2 Page)