Ansible一直想成为根用户

时间:2019-02-13 16:52:02

标签: ansible

我是Ansible的初学者,我需要在远程服务器上运行一些基本任务。

过程如下:

  • 我以某些用户(osadmin)身份登录
  • 我运行su -成为root
  • 然后我要做我需要做的任务。

所以,我写我的剧本如下:

---
- hosts: qualif
  vars:
    - ansible_user: osadmin
    - ansible_password: H1g2.D6#
  tasks:
    - name: Copy stuff from here to over there
      copy:
       src: /home/osadmin/file.txt
       dest: /home/osadmin/file-changed.txt
       owner: osadmin
       group: osadmin
       mode: 0777

此外,我在vars / main.yml中有以下内容:

ansible_user: osadmin
ansible_password: password1
ansible_become_password: password2
[ some other values ]

但是,在运行任务时,Ansible /主机会向我返回以下内容:

  

“错误的sudo密码”

然后,我更改了任务,以使不再成为sudo并在osadmin无法访问的某个位置复制文件,而只是将文件复制到/home/osadmin上。因此,从理论上讲,无需为简单的复制就变得sudo。 现在的问题是,不仅它会一直说“错误的sudo密码”,而且如果我删除它,Ansible也会要求它。

然后我决定运行命令并在末尾添加-vvv,它向我显示了以下内容:

  

为用户建立SSH连接:osadmin

     

SSH:EXEC sshpass -d10 ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o User = osadmin -o ConnectTimeout = 10 -o ControlPath = / home / osadmin / .ansible / cp / b9489e2193 -tt HOST -ADDRESS'/ bin / sh -c'“'”'sudo -H -S -n -u

     

root / bin / sh -c'“'”'“”“”“”“”“”“回显BECOME-SUCCESS-ewujwywrqhcqfdrkaglvrouhmuiefwlj; / usr / bin / python /home/osadmin/.ansible/tmp/ansible-tmp-1550076004.1888492-11284794413477/AnsiballZ_setup.py'“'”'“”“”“”“”“” && sleep 0'“' “”

     

(1,b'sudo:需要密码\ r \ n',b'与主机地址的共享连接已关闭。\ r \ n')

如您所见,它以某种方式使用root,而我从未告诉过他。

有人知道为什么Ansible会继续尝试做sudo吗,我该如何禁用它?

提前谢谢

1 个答案:

答案 0 :(得分:1)

“ su”和“ sudo”之间有区别。如果您具有“ su”访问权限,则意味着您可以以root用户身份登录(可能不是,但看起来像)。使用ansible_ssh_user=rootansible_password=password2

如果这不起作用,请尝试在服务器上配置sudo。您应该能够运行sudo whoami并获得答案root。之后,您的代码应运行。

另一件事:您使用的“复制”模块不正确。它使用src作为本地计算机(运行ansible的计算机)上的路径,以及dst作为远程计算机的路径。