在Ansible中,变量可以在playbooks之间进行传递。以下是一种解决方法,包含了代码示例:
include_vars
模块加载变量文件在要传递变量的playbook中,可以使用include_vars
模块加载包含变量的文件。例如,假设有一个名为vars.yml
的变量文件,其中包含一个名为my_var
的变量:
# vars.yml
my_var: "Hello, Ansible!"
在另一个playbook中,可以使用include_vars
模块加载这个变量文件,并在后续任务中使用这个变量:
# main.yml
- name: Load variables from vars.yml
include_vars: vars.yml
- name: Print my_var
debug:
var: my_var
--extra-vars
命令行参数传递变量可以使用--extra-vars
命令行参数在不同的playbooks之间传递变量。例如,假设有一个名为my_var
的变量需要在两个不同的playbooks中使用:
# playbook1.yml
- name: Print my_var
debug:
var: my_var
# playbook2.yml
- name: Do something with my_var
debug:
var: my_var
可以使用以下命令行参数运行这两个playbooks,并传递my_var
变量的值:
ansible-playbook playbook1.yml --extra-vars "my_var=value"
ansible-playbook playbook2.yml --extra-vars "my_var=value"
这样,my_var
变量的值将会在两个playbooks中被使用。
以上是两种在Ansible中传递变量的解决方法,可以根据实际需要选择适合的方式。