在group_vars/all.yml我定义了一个默认的远程用户:
ansible_user: blackknight
Run Code Online (Sandbox Code Playgroud)
但在某些情况下,我喜欢在命令行上覆盖它:
% ansible-playbook -u kingarthur test.yml
test.yml 是一个简单的调试手册
- hosts: localhost
tasks:
- debug: var=ansible_user
Run Code Online (Sandbox Code Playgroud)
执行时它告诉我"ansible_user": "blackknight"。
我应该如何更改我的变量或剧本以具有非标准ansible_user,但仍允许它在命令行上指定(以便命令行选项优先于我在变量中的默认值)?
从文档:
在命令行使用 -e 额外变量
要覆盖所有其他类别中的所有其他设置,您可以使用额外变量:
--extra-vars或-e在命令行中。传递的值-e是变量,而不是命令行选项,它们将覆盖配置设置、命令行选项和剧本关键字以及其他地方设置的变量。例如,此任务将连接brian不为carol:Run Code Online (Sandbox Code Playgroud)ansible -u carol -e 'ansible_user=brian' -a whoami all您必须使用 指定变量名称和值
--extra-vars。
| 归档时间: |
|
| 查看次数: |
2384 次 |
| 最近记录: |