Ansible
如何在命令行上覆蓋 ansible_user?
在
group_vars/all.yml
我定義了一個預設的遠端使用者:ansible_user: blackknight
但在某些情況下,我喜歡在命令行上覆蓋它:
% ansible-playbook -u kingarthur test.yml
test.yml
是一個簡單的調試手冊- hosts: localhost tasks: - debug: var=ansible_user
執行時它告訴我
"ansible_user": "blackknight"
。我應該如何將我的變數或劇本更改為具有非標準
ansible_user
,但仍允許它在命令行上指定(以便命令行選項優先於我在變數中的預設值)?
從文件:
在命令行使用 -e 額外變數
要覆蓋所有其他類別中的所有其他設置,您可以使用額外的變數:
--extra-vars
或-e
在命令行中。傳遞的值-e
是變數,而不是命令行選項,它們將覆蓋配置設置、命令行選項、劇本關鍵字以及其他地方設置的變數。例如,此任務將連接為brian
not ascarol
:ansible -u carol -e 'ansible_user=brian' -a whoami all
您必須使用 指定變數名稱和值
--extra-vars
。