2015-06-04 30 views
0

我開始寫出我的第一本嚴肅的劇本。我可以在host_vars或group_vars中設置remote_user嗎?

我想要做的事情是爲每臺主機指定不同的remote_user值。我能夠設置remote_user在ansible.cfg,通過CLI -u選項,甚至在遊戲中的變量,就像這樣:

--- 
- name: install dependencies 
    hosts: all 
    sudo: yes 
    vars: 
    remote_user: username 

但設置在主機或組級別的VAR(其中最有意義的我的方法)將無法工作。舉例來說,有了這個文件作爲group_vars/all能把我的「身份驗證失敗」致命錯誤:

--- 
remote_user: username 

我缺少什麼?

回答

0

你在做什麼似乎沒有證件。特別是,你有這樣的:

vars: 
    remote_user: username 

時,根據documentation,它應該是這樣的:

remote_user: username 

,它發生了,當你做了錯誤的方式是不相關的工作的事實。有一些副作用,使得它在這種情況下工作,但它當然不會在另一種情況下工作,它可能在不同的Ansible版本中表現不同。

要以每個主機中的其他用戶身份登錄,通常的方法是在inventory中指定ansible_ssh_user。是否這是一個可以在host_varsgroup_vars中覆蓋的變量,我不確定。有關ansible_ssh_userremote_user如何互相覆蓋的信息,另請參閱issue 4688

+0

是的,行爲參數可以在組/主變量中被覆蓋。 – udondan

+0

那麼remote_user不是一個變量呢?它是什麼? TBH,這方面的文件過於寬鬆。我一直在閱讀幾個小時,從來沒有遇到過「行爲參數」一詞。我不知道ansible_ssh_user,但感謝。 – Esteban

+0

'remote_user'與'name','''''''ignore_errors','always_run','register'等屬於同一個類別。您可以將它們稱爲任務關鍵字或任務參數,但AFAICS文檔沒有它們的名稱,我們很少需要它。現在,[行爲清單參數](http://docs.ansible.com/intro_inventory.html#list-of-behavioral-inventory-parameters)是不同的事情,我認爲這個詞的確是過度殺傷性的;我認爲他們只是庫存相關的變量。 –

相關問題