ansible 13

Ansible playbook 파일을 사용하여 변수 정의

사용방법 playbook은 변수를 파일로 정의할 수 있습니다. 파일에 변수를 정의하고 var_files로 파일 변수를 불러오면 됩니다. 아래 예제는 vars.yaml에 변수를 정의하고 playbook에서 vars.yaml에 정의한 변수를 사용합니다. # vars.yaml hello: world alphabets: - a - b - c - name: Variables key value hosts: localhost vars_files: - vars.yaml tasks: - name: Echo vars ansible.builtin.debug: msg: "{{ hello }}" - name: Echo index 0 ansible.builtin.debug: msg: "{{ alphabets[0] }}" - na..

연재 시리즈 2024.01.20

Ansible playbook 변수

1. 변수 정의와 사용 방법 playbook에서 변수 정의는 vars필드로 합니다. - name: Variables hosts: localhost vars: hello: world 그리고 정의한 변수는 “{{ 변수이름 }}”으로 사용합니다. 꼭 쌍따옴표가 있어야 합니다. - name: Variables key value hosts: localhost vars: hello: world tasks: - name: Echo vars ansible.builtin.debug: msg: "{{ hello }}" playbook을 실행하면 변수 값이 잘 출력됩니다. ansible-playbook playbook.yaml 2. 변수 유형 2.1 key-value key-value는 변수이름과 변수 값을 정의하는 유형입..

연재 시리즈 2024.01.20

Ansible playbook 실패 제어

playbook이 중간에 실패하면? playbook은 실행한 taks결과가 실패라면 다음 task를 실행하지 않습니다. 아래 예제에서는 ls명령어로 존재하지 않는 경로를 조회하는 task가 있습니다. - name: Failed Example hosts: localhost tasks: - name: Echo start ansible.builtin.debug: msg: "start" - name: List files ansible.builtin.command: cmd: "ls /tmp/doest_not_exist" - name: Echo end ansible.builtin.debug: msg: "end" ls명령어는 실행을 실패하기 때문에 “Echo end” task는 실행되지 않습니다. 실패해도 계속 실행..

연재 시리즈 2024.01.19

Ansible vault

https://youtu.be/N2wzqgkUYD0 1. Ansible vault란? ansible vault는 ansible실행에 필요한 민감정보를 암호화/복호화합니다. github같은 공개된 코드저장소에 ansible 민감정보를 관리할때 꼭 사용해야 합니다. ansible vault를 사용하면 아래그림 오른쪽처럼 민감정보가 암호화됩니다. 그리고 ansible을 실행할 때 암호화된 값을 복호화합니다. 복호화키는 암호화에 사용한 비밀번호와 동일합니다. 복호화 키는 --ask-vault-pass인자로 전달합니다. ansible-playbook -i inventory playbook.yaml --ask-vault-pass {복호화 키} 2. 사용방법 처음 민감정보 파일을 생성하는 경우 ansible-vaul..

연재 시리즈 2024.01.14

Ansible playbook

https://youtu.be/sqj7lSCagO4 Ansible playbook은 Ansible task(작업할 내용)를 효율적으로 관리하고 실행합니다. 왜 효율적이라고 표현했는지 이 글에서 다룰려고 합니다. Ansible 작업할 내용을 파일로 관리하려면? Ansible에서 여러 task를 수행하려면 ansible 명령어를 여러번 실행해야 합니다. 아래 예제는 bob, alice, john계정을 생성하는 예제입니다. ansible -i ./inventory -m user -a "name=bob state=present" all ansible -i ./inventory -m user -a "name=alice state=present" all ansible -i ./inventory -m user -a ..

연재 시리즈 2024.01.14

Ansible 사용방법

https://youtu.be/F7LnYUqrrqE?si=sWpTFIcVgFUgaI-1 Ansible을 사용하기 위해 2가지 설정이 필요합니다 1. 첫 번째: SSH 연결 설정 Ansible은 SSH프로토콜로 통신을 하기 때문에 control-node와 managed-node간 ssh연결 설정이 필요합니다. ssh 연결을 하려면 control-node와 managed-node에서 공개키를 교환해야 합니다. 교환한 공개키는 파일로 저장됩니다. control-node: $HOME/.ssh/known_hosts managed-node: $HOME/.ssh/authorized_keys control-node에서 ssh-copy-id로 쉽게 공개키를 교환할 수 있습니다. ssh-copy-id를 사용하려면 mana..

연재 시리즈 2024.01.12