如何将 Ansible 提升为 root 以运行剧本?问题是,我想要配置的服务器已禁用 root 访问权限,并且唯一具有登录访问权限的用户除了提升给其他用户之外,完全没有任何权限执行任何操作。
因此,当我手动登录服务器时,我会做这样的事情 -然后如果我需要安装某些东西,我会在某些罕见的情况下执行此操作,然后输入相应的用户密码。ssh [email protected]
sudo - myuser
sudo -
不幸的是,如果我运行我的 Ansible 剧本,我似乎无法将用户提升为 root 权限。
我的文件中有这样一行/etc/ansible/hosts
:
[vault_server]
vdom7.intrn ansible_become=true ansible_become_user="root" ansible_become_password="<root_user_password>"
我运行剧本得到的结果如下:
PLAY [vault_server] *********************************************************
GATHERING FACTS ***************************************************************
fatal: [vdom7.intrn] => Incorrect become password
PLAY RECAP ********************************************************************
to retry, use: --limit @/home/user/main.retry
vdom7.intrn : ok=0 changed=0 unreachable=1 failed=0
我知道ansible_become_password
确实有一些影响,因为以前我常常遇到Missing become password
错误,但同时我知道我提供的密码对于用户来说是正确的,因为当我手动使用它时它就像一个魅力一样工作,所以我真的不知道我做错了什么以及我应该如何更改剧本的运行用户。
答案1
become
默认使用sudo
(看become_method
)。因此,您需要使用用户的您提供给 sudo 的密码,而不是 root 密码。
或者您可以将 更改为become_method
,例如su
。