在Ansible中,我们可以通过在inventory文件中定义变量,或者在playbook中使用vars关键字来定义变量。然后,可以在任务中使用这些变量。
以下是一个示例,演示了如何在Ansible中使用首先定义的变量:
inventory文件示例(inventory.ini):
[web_servers]
server1 ansible_host=192.168.1.10
server2 ansible_host=192.168.1.11
[web_servers:vars]
http_port=80
playbook文件示例(playbook.yml):
- name: Install and configure web servers
hosts: web_servers
vars:
app_name: MyWebApp
tasks:
- name: Display app name
debug:
msg: "App name is {{ app_name }}"
- name: Display http port
debug:
msg: "HTTP port is {{ http_port }}"
在上面的示例中,我们在playbook中使用了两个变量:app_name和http_port。其中,app_name是在playbook的vars部分定义的,而http_port是在inventory文件的web_servers组的vars部分定义的。
运行这个playbook后,将会显示以下输出:
TASK [Display app name] *******************************************************
ok: [server1] => {
"msg": "App name is MyWebApp"
}
ok: [server2] => {
"msg": "App name is MyWebApp"
}
TASK [Display http port] *******************************************************
ok: [server1] => {
"msg": "HTTP port is 80"
}
ok: [server2] => {
"msg": "HTTP port is 80"
}
从输出中可以看到,我们成功地使用了首先定义的变量。