2017-06-05 72 views
0

我有一個Ansible腳本,使用它我想在遠程服務器上運行一些與安裝相關的命令。但是要安裝,需要成爲root用戶或sudo。我正在嘗試將用戶添加到sudoers,但它不起作用。使用Ansible無密碼sudo登錄到服務器

--- 
- hosts: webservers 
    gather_facts: no 
    become: yes 
    tasks: 
     - name: Make sure we have a 'wheel' group 
      group: 
      name: wheel 
      state: present 

     - name: Allow 'wheel' group to have passwordless sudo 
      lineinfile: 
      dest: /etc/sudoers 
      state: present 
      regexp: '^%wheel' 
      line: '%wheel ALL=(ALL) NOPASSWD: ALL' 

     - name: Add sudoers users to abkari group 
      user: name=abkari groups=wheel append=yes state=present createhome=no 

對於CentOS wheel組是sudo訪問的默認組。當我運行這個命令時,它不允許執行第一個任務。這裏有什麼問題?

+0

請發佈確切的錯誤信息。另外,你在玩這個遊戲的用戶是什麼?如果作爲'abkari',那麼你不能在事先沒有sudo權限的情況下執行這些操作。 – techraf

+0

我正在運行這個as abkari。是的,它不會工作。那麼這是否意味着我必須使用root來啓用無密碼sudo? – Prat

+0

這就是Unix派生系統中的權限工作方式。如果沒有root權限,您無法獲得root權限。 – techraf

回答

-1

您可以在任務的「名稱」下(同一級別)添加「成爲:是」。 它允許以sudo的方式執行任務。

+0

除了作爲[其他答案](https://stackoverflow.com/a/44375785/2947502)的副本,其中的任何內容都不會改變任何內容,因爲所有任務都會在遊戲級別繼承「成爲:是」 。 – techraf

0

在正確配置的系統上,非特權用戶無權授予其自身的根特權(通過編輯sudoers文件或將其自身添加到wheel組)。

您需要以root身份顯式運行附加的劇本,或者在Ansible中使用become之前,使用root帳戶配置系統。

相關問題