모듈이란?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 ..
서버 여러대를 그룹으로 나누어 따로 따로 명렁어를 내려보겠다. AWS EC2 의 cwCool name의 Controller 서버 1 대,내 공유기의 ESXi Ubuntu server 1대,AWS EC2 새로운 인스턴스 3대를 생성해서 진행하겠다.즉 , cwCool 인스턴스가 4대를 관리하는것 기존 ansible이 설치된 cwCool을 제외한 3개의 인스턴스를 추가 생성하였다. 🔥 여기서 잠깐 🔥원래 ssh-copy-id 명령어를 사용해서 쉽게 공개키를 보내려 하였다. 하지만 aws ec2 인스턴스들은 pem파일을 넣어야 접속이 가능한 문제때문에ssh 명령어에 pem 파일 추가하는 방법은 찾았으나, ssh-copy-id 명령어에 pem 파일도 추가해서 보내는것을 할 수가 없음…. 그냥 하나하나 공개..
앤서블(Ansible) 개념 앤서블은 효율적인 서버 자동화 관리 도구이다.기업에서 일일이 서버에 접속하지 않아도, 앤서블은 한 번의 엔터로 수많은 서버를 관리할 수 있다.즉, 많은 서버에 동시 배포 및 관리가 가능하다.클라이언트는 에이전트 설치가 별도로 필요하지 않아 편리하고, 리눅스, 유닉스, 윈도우 환경 어디든 적용할 수 있다.이러한 앤서블은 클라이언트에 대해 SSH 접근만 필요하고, 효울적인 형상 관리 구조이기 때문에데브옵스 환경에 최적화 된 도구이다.기업 입장에서 생산성을 높이고 편리한 서비스 운영을 제공하는 매력정인 모듈이다. Ansible이 가진 특징1. AgentlessChef/Pupeet과 같은 기존 IaC 솔루션들은 원격 서버에 에이전트를 설치할 필요가 있었다.따라서 명령을 내려주는 ..