$ anbile-inventory -i inventory --list
$ anbile-inventory -i inventory --graph
$ ansible -i inventory -m ping web
$ anbile-playbook --syntax-check playbook.yml
$ anbile-playbook --check playbook.yml
$ anbile-playbook playbook.yml
변수를 사용하여 사용자, 설치하고자 하는 패키지, 재시작할 서비스, 생성 또는 삭제할 파일명 등 시스템 작업 시 사용되는 다양한 값을 저장한다.
인벤토리에 정의된 호스트 그룹에 적용되는 변수
[web]
tnode1
tnode2
[db]
tnode3
[all:children]
web
db
[all:vars]
user=ansible
해당 호스트에만 사용할 수 있는 변수
[web]
tnode1
tnode2
[db]
tnode3 user=ansible
플레이북 내에서 선언되는 변수
---
- hosts: all
vars:
user: ansible
외부에서 ansible-playbook
을 실행할 때 함께 파라미터로 넘겨주는 변수
$ ansible-playbook -e user=ansible playbook.yml
플레이북의 태스크 수행 결과를 저장
---
- hosts: all
tasks:
- name: Create User {{ user }}
ansible.builtin.user:
name: "{{ user }}"
state: present
register: result
- ansible.builtin.debug:
var: result
데이터 파일을 암호화하고 암호화된 파일의 내용을 해독할 수 있는 기능이다.
get-vault-password.sh
#!/bin/sh
aws secretsmanager get-secret-value \
--secret-id ansible/password \
--region ap-northeast-1 \
| jq -r .SecretString \
| jq -r .ansible_vault_password
playbook.yml
---
- hosts: all
vars_files:
- password.txt
tasks:
- name: Create password file
ansible.builtin.lineinfile:
path: /tmp/password.txt
line: "password={{ password }}"
create: true
mode: '0600'
terminal
$ ansible-playbook playbook.yml \
--vault-password-file ./get-vault-password.sh
Ansible이 관리 호스트에서 자동으로 검색한 변수
- hosts: db
tasks:
- name: Print all facts
ansible.builtin.debug:
var: ansible_facts
Fact | ansible_facts.* 표기법 |
---|---|
호스트명 | ansible_facts.hostname |
도메인 기반 호스트명 | ansible_facts.fqdn |
기본 IPv4 주소 | ansible_facts.default_ipv4.address |
네트워크 인터페이스 이름 목록 | ansible_facts.interfaces |
/dev/vda1 디스크 파티션 크기 | ansible_facts.device.vda.partitions.vda1.size |
DNS 서버 목록 | ansible_facts.dns.nameservers |
현재 실행 중인 커널 버전 | ansible_facts.kernel |
운영체제 종류 | ansible_facts.distribution |