使用Ansible登录服务器的无密码sudo

时间:2017-06-05 17:29:46

标签: ansible sudoers

我有一个Ansible脚本,我希望在远程服务器上运行一些与安装相关的命令。但是要进行安装,必须是root用户或sudo。我试图将用户添加到sudoers但它无法正常工作。

---
- 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访问的默认组。当我运行此命令时,它不允许执行第一个任务。这里有什么问题?

2 个答案:

答案 0 :(得分:0)

非特权用户无法在正确配置的系统上授予自己的root权限(通过编辑sudoers文件或将其自身添加到wheel组)。

您需要以root身份显式运行附加的playbook,或者在Ansible中使用become之前使用root帐户配置系统。

答案 1 :(得分:-1)

您可以在"名称"下添加"成为:是"你的任务(在同一级别)。 它允许以sudo身份执行任务。