[ roles init ]
roles directory 생성
$ mkdir roles
$ cd rolse
$ ansible-galaxy init common
$ tree common
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
[ roles/common/vars/main.yml ]
미리 변수를 정의하여 tasks에서 사용
name: my-host
[ roles/common/templates/host.my-host.j2 ]
tasks에서 사용할 template정의
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 main_server
192.168.1.11 storage_server
[ roles/common/tasks/main.yml ]
실제 동작하는 tasks 작성
- name: Install packages
yum:
name:
- wget
- unzip
become: true
- name: modify hosts
template:
src: ../templates/hosts.{{name}}.j2
dest: /etc/hosts
owner: root
group: root
[ common.yml ]
최초 실행 playbook
- hosts: '{{ target }}'
roles:
- common
[ playbook 실행 ]
$ ansible-playbook common.yml --extra-vars "target=my-host" --user=my
'Infra > Ansible' 카테고리의 다른 글
Ansible - 조건적 실행 ( handler, when ) (0) | 2025.01.11 |
---|---|
Ansible - Inventory Build (0) | 2024.12.20 |
Ansible - ssh-key를 통한 비밀번호 없이 ssh접속 (0) | 2023.03.26 |
Ansible - 설치 및 실행 (0) | 2023.03.26 |