앤서블 모듈은 멱등(idempotent)이 가능하도록 설계되어 있습니다. 즉, 플레이북을 여러 번 실행해도 결과는 항상 동일합니다. 또한 플레이 및 해당 작업은 여러 번 실행할 수 있지만, 해당 호스트는 원하는 상태로 만드는 데 필요한 경우에만 변경됩니다. 하지만 한 작업에서 시스템을 변경해야 하는 경우 추가 작업을 실행해야 할 수도 있습니다. 예를 들어 서비스의 구성 파일을 변경하려면 변경 내용이 적용되도록 서비스를 다시 로드해야 합니다. 이때 핸들러는 다른 작업에서 트리거한 알림에 응답하는 작업이며, 해당 호스트에서 작업이 변경될 때만 핸들러에 통지합니다. 1. 핸들러 #1. Handlers 참조 링크 : https://docs.ansible.com/ansible/latest/playbook_guid..
1. 조건문 앤서블은 조건문을 사용하여 특정 조건이 충족될 때 작업 또는 플레이를 실행할 수 있습니다. 예를 들면 조건문을 사용하여 호스트의 운영체제 버전에 해당하는 서비스를 설치하는 식입니다. 앤서블에서 조건문을 사용할 때는 플레이 변수, 작업 변수, 앤서블 팩트 등을 사용할 수 있습니다. 참조 링크 : https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html #1. when 문 - 조건이 충족되면 작업이 실행되고, 조건이 충족되지 않으면 작업을 건너뜁니다. - when 문을 테스트하는 가장 간단한 조건 중 하나는 Boolean 변수가 true인지 false인지 여부에 대한 판별입니다. 1) 플레이북 생성 ~/m..
안녕하세요, 오늘은 2주 차 진행 내용을 가지고 왔습니다. 먼저, 반복문입니다. 1. 반복문 반복문을 사용하면 동일한 모듈을 사용하는 작업을 여러 번 작성하지 않아도 됩니다. 예를 들어 서비스에 필요한 포트를 방화벽에 추가한다고 하면, 포트를 추가하는 작업을 여러 개 작성하는 대신 loop 반복문을 이용해 작업 하나로 여러 개의 포트를 추가할 수 있습니다. 참조 링크 : https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_loops.html 여기서 빌트인 모듈을 통해서 실습을 진행했습니다. #1. ansible.builtin.service 참조 링크 : https://docs.ansible.com/ansible/latest/collectio..
1. 변수 1-1. 변수의 정의 앤서블은 변수를 통해서 사용자, 설치하고자 하는 패키지, 재시작할 서비스, 생성 또는 삭제할 파일명 등 시스템 작업 시 사용되는 다양한 값을 저장할 수 있습니다. 변수를 통해 서비스를 재시작할 수도, 사용자로부터 받은 값도 쉽게 적용할 수 있습니다. 앤서블에서 사용되는 변수는 그룹 변수, 호스트 변수, 플레이 변수, 추가 변수가 있으며 플레이 결과를 저장하기 위한 작업 변수도 있습니다. 1) 그룹 변수 [web] tnode1 tnode2 [db] tnode3 [all:children] web db [all:vars] user=ansible 그룹 변수는 다음과 같이 [all:vars] k:v로 선언되며 해당 내용 적용 시 모든 관리 노드에 적용됩니다. 다음과 같이, 유저 생..
안녕하세요, 2024년 첫 시작을 가시다님 스터디(a101)와 함께 앤서블로 시작하는 인프라 자동화로 열게 되었습니다. 작년에 한빛 출판사에서 베타 리딩을 한 적 있었는데, 다른 분들과 함께 깊게 공부해 볼 수 있는 좋은 기회인 것 같아서 신청하고 공부하게 됐습니다. 1. 왜 앤서블인가? 문득 왜 앤서블을 배워야 하는지 목표가 있어야 공부가 더 재밌을 것 같아 조금 더 찾아보게 됐습니다. Cloud Native Interactive Landscape를 확인하더라도, 자동화 구성 관리 도구가 Ansible을 제외하더라도 잘 알려진 Chef, Puppet, Terraform, Salt, Cloudformation 등 다양한 IaC 툴이 있고 성격도 다른데 왜 Ansible을 공부를 해야 하는 것인지 궁금해졌..