[toc]
ansible定义变量
1.ansible定义变量
1.1 在playbook中的play进行定义
在yml文件中通过 vars 关键字定义变量,引用变量使用 {{}}
vars:
- 变量名1: 变量值1
- 变量名2: 变量值2
使用示例
- hosts: all
vars:
- pkg_name1: httpd
- pkg_name2: nginx
tasks:
- name: install httpd
yum:
name:
- "{{ pkg_name1 }}"
- "{{ pkg_name2 }}"
state:
present
在playbook中还可以通过 vars_files 关键字引用变量文件
vars_files: 变量文件
编辑一个变量文件
pkg_name1: httpd
pkg_name2: nginx
在yml文件使用关键字 vars_files 引用变量文件
- hosts: devops02
vars_files:
./vars_pub.yml
tasks:
- name: install httpd nginx
yum:
name:
- "{{ pkg_name1 }}"
- "{{ pkg_name2 }}"
state:
present
1.2 通过inventory主机清单进行定义
在inventory主机清单中通过 [组名:vars] 定义变量,这个变量既可以在inventory中引用,也可以在playbook中引用
[all_server:vars]
ansible_ssh_user=ops
ansible_ssh_port=2233
ansible_ssh_private_key_file=/home/ops/.ssh/id_rsa_ops
ansible_become=true
ansible_become_method=sudo
ansible_become_user=root
[all_server]
devops01
devops02