2015-07-10 16 views
2

我知道我可以用sudo運行劇本和任務,但有沒有辦法用參數運行sudo?具體來說,我需要運行sudo -E <command>來保存登錄用戶的環境。如何用sudo -E運行一個單一的任務?

如果這是不可能的,有沒有很好的解決方法?


編輯

兩個澄清:

  1. 我試圖用sudo -E運行只是對於某些任務,而不是整個劇本
  2. 的一個有點令人費解的例子就是我試圖這樣做:我有一個Ubuntu的EC2實例,其中ubuntu用戶有一些主機在~/.ssh/config下配置。我希望將這些設置用於合理的git模塊,而不必將它們複製到/root/.ssh,我想用它們來修改不屬於ubuntu用戶的目錄。舉例來說,直接在shell中執行此操作的一種方法是sudo -E git pull。一個理想的解決方案可以讓我(1)使用不可靠的git模塊,(2)允許我爲此任務創建sudo -E,並且爲標記爲sudo以執行其他任務。
+0

怎麼樣'shell'和/或'sudo_user'做到這一點? – tedder42

+0

@ tedder42這些可以用於一個任務,但不是整個劇本? –

+0

是的,'sudo_user'放在任務上,'shell' *是*任務。給出一個示例任務,顯示你想要做什麼,我們可以嘗試幫助。 – tedder42

回答

0

你應該能夠通過sudo_flags參數ansible.cfg

+0

我可以只使用sudo_flags執行一項任務,但不能使用整個劇本? –

+0

我不這麼認爲,不。這是配置文件中的一個設置,啓動時只能讀取一次。 –

+1

[ansible_become_method](https://docs.ansible.com/ansible/latest/become.html)如何? – TekiusFanatikus

相關問題