study/Ansible101 1기 썸네일형 리스트형 Ansible Semaphore 마지막 스터디 공유 시작하겠습니다. 이번에는 오픈 소스 Semaphore에 대해 공부하겠습니다. 세마포어는 Ansible UI를 제공해줍니다. https://docs.semui.co/ Introduction - Semaphore Docs Semaphore is written in pure Go and available for Windows, macOS and Linux (x64, ARM, ARM64). Semaphore is an open-source project with concise and high-quality code. docs.semui.co 본격적으로 설치부터 시작해 보겠습니다. # 설치 cd pwd wget https://github.com/ansible-semaphore/semaphore.. 더보기 Ansible101 1기 4주차 첫번째 안녕하세요, 마지막 스터디 공유 시작하겠습니다. 보안 설정 자동화 11.1. 패스워드 변경 주기 설정하기 패스워드 변경 주기를 설정할 대상 호스트는 인벤토리를 통해 설정한다. 패스워드 변경 주기를 설정할 사용자 계정 정보와 최대 변경일은 변수를 통해 별도의 파일로 정의한다. 패스워드 변경 주기 설정은 ansible.builtin.user 모듈을 이용한다. 플레이북 설계 사용자 계정과 최대 변경일을 변수로 설정하기 위해 vars_maxdays.yml 파일 생성 메인 플레이북 set_chage_password.yml 파일에는 변경 주기를 설정할 태스트가 포함 1. 프로젝트 디렉터리 생성 및 ansible.cfg, inventory 파일 작성 # mkdir ~/my-ansible/chapter_11.1 cd .. 더보기 Ansible101 1기 3주차 두번째 네트워크 IP 설정하기 OS가 우분투일 경우에는 netplan 파일을 이용하여 IP를 설정한다 - netplan은 파일이므로 사전에 netplan 파일 구조를 확인하고 jinja2 템플릿으로 작성한다. OS가 CentOS/레드햇일 경우에는 nmcli 모듈을 사용하여 IP를 설정한다. - community.general.nmcli 모듈 - https://docs.ansible.com/ansible/latest/collections/community/general/nmcli_module.html 예제에서는 ethernet 타입의 네트워크 IP를 설정한다. IP 설정 관련 정보는 메인 플레이북에서 변수로 정의한다. 변수로 정의한 네트워크 인터페이스가 실제 호스트에 존재하는지 앤서블 팩트를 통해 확인한다. 플레.. 더보기 Ansible101 1기 3주차 첫번째 3주차 스터디 공유 시작하겠습니다. 사용자 계정 생성하기 사용자 계정과 패스워드는 Vault를 이용해 암호화 처리한다. 사용자 계정 생성은 ansible.builtin.user 모듈을 이용한다. 플레이북 개발 1. 프로젝트 디렉터리 생성 및 ansible.cfg, inventory 파일 작성 # mkdir ~/my-ansible/chapter_09.1 cd ~/my-ansible/chapter_09.1 # ansible.cfg, inventory 파일 작성 cp ~/my-ansible/ansible.cfg ./ cat 다시 실행 ansible-playbook --ask-vault-pass --syntax-check create_user.yml Vault password: qwe123 playbook: c.. 더보기 Ansible101 1기 2주차 두번째 너무 길어서 포스팅을 나눠서 진행하겠습니다. 핸들러 및 작업 실패 처리 앤서블 모듈은 멱등(idempotent)이 가능하도록 설계되어 있습니다. 즉 플레이북을 여러 번 실행해도 결과는 항상 동일합니다. 또한 플레이 및 해당 작업은 여러 번 실행할 수 있지만, 해당 호스트는 원하는 상태로 만드는 데 필요한 경우에만 변경됩니다. 하지만 한 작업에서 시스템을 변경해야 하는 경우 추가 작업을 실행해야 할 수도 있습니다. 예를 들어 서비스의 구성 파일을 변경하려면 변경 내용이 적용되도록 서비스를 다시 로드해야 합니다.이때 핸들러는 다른 작업에서 트리거한 알림에 응답하는 작업이며, 해당 호스트에서 작업이 변경될 때만 핸들러에 통지합니다. Handlers: running operations on change - ht.. 더보기 Ansible101 1기 2주차 첫번째 안녕하세요, 덴고입니다. Ansible 101 1기 2주차 스터디 공유 시작하겠습니다. 반복문 Ansible Loops - https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_loops.html 반복문을 사용하면 동일한 모듈을 사용하는 작업을 여러 번 작성하지 않아도 됩니다. 예를 들어 서비스에 필요한 포트를 방화벽에 추가한다고 하면, 포트를 추가하는 작업을 여러 개 작성하는 대신 loop 반복문을 이용해 작업 하나로 여러 개의 포트를 추가할 수 있습니다. 단순 반복문 : 특정 항목에 대한 작업을 반복 - item 변수, 변수 목록 지정 loop 키워드를 작업에 추가하면 작업을 반복해야 하는 항목의 목록을 값으로 사용합니다. 그리고 해당하는.. 더보기 Ansible101 1기 1주차 안녕하세요, 덴고입니다. 본격적으로 CloudNet@에서 주관하는 Ansible101 Study가 시작됐습니다. 거두절미하고 바로 스터디 내용을 공유하겠습니다. Ansible은 쉽게 말해서 자동화 도구입니다. IT 업무를 코드 기반으로 작성하고 여려 환경에 동일하게 적용될 수 있도록 돕는 역할을 합니다. 앤서블 아키텍처를 살펴보면 그림처럼 제어노드와 관리 노드로 구성돼 있습니다. 제어노드는 앤서블이 설치되는 노드입니다. 이 노드에는 파이썬 모듈을 이용하기 때문에 파이썬이 필수로 설치돼 있어야 합니다. 관리노드는 앤서블이 제어하는 원격 시스템 또는 호스트를 의미합니다. 이 노드는 제어노드와 SSH 통신이 가능해야 하며 마찬가지로 파이썬이 설치돼 있어야 합니다. 인벤토리는 제어노드가 제어하는 관리 노드의 목.. 더보기 Ansible101 1기 실습환경 구성 안녕하세요, 덴고입니다. CloudNet@에서 주관하는 Ansible101 스터디에 참여하게 되었습니다. 스터디 내용을 공유하고자 블로그에 작성합니다. 스터디 교재는 아래와 같습니다. 실습 환경은 AWS에서 구성했으며 인스턴스 정보는 아래 표과 같습니다. 실습환경을 스터디장인 '가시다'님이 CloudFormation으로 제공해주셔서 쉽게 실습환경을 구성할 수 있었습니다. VPC, 서브넷, 인스턴스 등 자세한 정보은 아래와 같습니다. AWSTemplateFormatVersion: '2010-09-09' Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: ">" Parameters: - KeyName - SgIngressS.. 더보기 이전 1 다음