Ansible

如何在命令行上覆蓋 ansible_user?

  • October 9, 2019

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是變數,而不是命令行選項,它們將覆蓋配置設置、命令行選項、劇本關鍵字以及其他地方設置的變數。例如,此任務將連接為briannot as carol

ansible -u carol -e 'ansible_user=brian' -a whoami all

您必須使用 指定變數名稱和值 --extra-vars

引用自:https://unix.stackexchange.com/questions/545847