안녕하세요, 오늘 내용은 앤서블을 활용하여 보안 설정을 하는 내용을 다룹니다. 사전 준비 1) 유저 생성 먼저 유저를 생성합니다. 아래와 같이 디렉터리를 생성하고, cfg 파일과 inventory 파일을 작성해 줍니다. # mkdir ~/my-ansible/chapter_09.1 cd ~/my-ansible/chapter_09.1 # ansible.cfg, inventory 파일 작성 cat > tnode1
ansible
이번 내용의 플레이북 구성도는 다음과 같습니다. 사전 분석 NTP 서버 주소는 메인 플레이북에서 정의한다. 운영체제가 Ubuntu면 apt 모듈을 사용하여 chrony를 설치한다. 운영체제가 CentOS/레드햇이면 dnf 모듈을 사용하여 chrony를 설치한다. Jinja2 템플릿 방식의 chrony.conf 파일을 대상 호스트로 복사한다. 설정 파일이 복사되면 chrony 서비스를 재시작한다. 다음에도 사용할 수 있도록 롤을 이용하여 설계하고 작성한다. 플레이북 설계 chrony를 서로 다른 운영체제에서 각각의 모듈을 이용하여 설치할 것이므로 롤을 생성하고 호출하는 방식으로 작성합니다. - vars : chrony 서비스 설치를 위한 롤에서는 변수를 정의,, - templates : 환경 설정 템플릿 ..
이번에 다룰 내용의 요지는 다음과 같습니다. 사전 분석: 사용자 아이디는 외부 변수로 받습니다. Ansible 서버에서 ansible 계정을 만들고 SSH 키를 생성합니다. Ansible 서버에서 생성된 SSH 공개 키를 각 tnode 호스트로 복사합니다. 계정을 생성할 때는 ansible.builtin.user 모듈을 사용하며, SSH 공개 키를 복사할 때는 ansible.posix.authorized_key 모듈을 사용합니다. 플레이북 설계: 앤서블 공식 문서의 콘텐츠 컬렉션에서 SSH 키 생성 모듈과 SSH 키 복사 모듈을 찾습니다. 플레이북 명은 create_sshkey.yml로 설정하고, 두 가지 주요 태스크를 가집니다: - 'Create ssh key'와 'Copy SSH Pub Key'. '..
안녕하세요, 오늘은 앤서블을 활용해서 사용자 계정을 생성하는 방법을 알아보겠습니다. 플레이북 구성 예시는 위와 같습니다. 위의 구성을 통해서 진행해 볼 내용은 사용자 계정과 패스워드는 Vault를 이용해 암호화 처리할 예정입니다. 먼저, 1) 플레이북 생성 - 프로젝트 디렉터리 생성 및 ansible.cfg, inventory 파일을 작성합니다. ~/my-ansible/chapter_09.1/ # mkdir ~/my-ansible/chapter_09.1 cd ~/my-ansible/chapter_09.1 # ansible.cfg, inventory 파일 작성 cat
안녕하세요, 오늘은 CloudNet Ansible 101 2주 차 도전과제 내용을 작성해 보았습니다. # 1. linux user1~10(10명) 를 반복문을 통해서 생성 후 확인 후 삭제를 해보자. 1) 사용자 생성을 위한 플레이북 생성 ch1.yml - hosts: localhost become: yes tasks: - name: 사용자 생성 ansible.builtin.user: name: "user{{ item }}" state: present loop: "{{ range(1, 11) | list }}" 2) 실행 3) 사용자 확인을 위한 플레이북 생성 ch1-2.yml --- - hosts: localhost become: yes tasks: - name: 사용자 존재 여부 확인 command:..
앤서블은 블록 block이라는 오류를 제어하는 문법을 제공합니다. 블록은 작업을 논리적으로 그룹화하는 절입니다. 이를 통해 작업 실행 방법을 제어에 사용할 수 있습니다. 블록을 통해 rescue 문과 always 문을 함께 사용함으로써 오류를 처리할 수 있습니다. block : 실행할 기본 작업을 정의함 rescure : block 절에 정의된 작업이 실패할 경우 실행할 작업을 정의함 always : block 및 rescue 절에 정의된 작업의 성공 또는 실패 여부와 관계없이 항상 실행되는 작업을 정의함 1) 플레이북 생성 --- - hosts: tnode2 vars: logdir: /var/log/daily_log logfile: todays.log tasks: - name: Configure Log..
앤서블 모듈은 멱등(idempotent)이 가능하도록 설계되어 있습니다. 즉, 플레이북을 여러 번 실행해도 결과는 항상 동일합니다. 또한 플레이 및 해당 작업은 여러 번 실행할 수 있지만, 해당 호스트는 원하는 상태로 만드는 데 필요한 경우에만 변경됩니다. 하지만 한 작업에서 시스템을 변경해야 하는 경우 추가 작업을 실행해야 할 수도 있습니다. 예를 들어 서비스의 구성 파일을 변경하려면 변경 내용이 적용되도록 서비스를 다시 로드해야 합니다. 이때 핸들러는 다른 작업에서 트리거한 알림에 응답하는 작업이며, 해당 호스트에서 작업이 변경될 때만 핸들러에 통지합니다. 1. 핸들러 #1. Handlers 참조 링크 : https://docs.ansible.com/ansible/latest/playbook_guid..
안녕하세요, 오늘은 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..