2017-06-05 45 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帐户配置系统。

相关问题