Ansible从以下代码请求sudo密码,它尝试创建一个新的postgres用户.
错误信息:
致命:[xxx.xxx.xxx.xxx] =>缺少sudo密码
main.yml
- name: 'Provision a PostgreSQL server'
hosts: "dbservers"
sudo: yes
sudo_user: postgres
roles:
- postgres
Run Code Online (Sandbox Code Playgroud)
create_db.yml
- name: Make sure the PostgreSQL users are present
postgresql_user: name=rails password=secret role_attr_flags=CREATEDB,NOSUPERUSER
sudo_user: postgres
sudo: yes
Run Code Online (Sandbox Code Playgroud)
用于登录此计算机的remote_user 是非root用户,没有密码,只能使用密钥身份验证登录.
对于用户postgres,此帐户也没有密码,因为刚刚安装了数据库.
由于我以非 root用户身份登录,因此当切换到postgress帐户以创建数据库用户时,它会询问密码.但是如果从root帐户切换到postgres,则不需要密码.所以,我想知道是否有办法切换到root,然后切换到用户postgres.
注意:root帐户没有公钥,没有密码,也无法从SSH登录.
Asi*_*mez 22
您可以在运行 Ansible playbook 时指定 sudo 密码:
ansible-playbook playbook.yml -i inventory.ini --extra-vars "ansible_sudo_pass=yourPassword"
Run Code Online (Sandbox Code Playgroud)
Man*_*tra 12
将一个文件添加到/etc/sudoers.d目标机器上名为 postgres的目录中,其内容如下:
postgres ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
这可确保 postgres 用户(假设您将其用作 sudo 用户)在尝试 sudo 命令时不会被要求输入密码。
如果您使用不同的用户连接到目标机器,那么您必须修改上述内容以将 NOPASSWD 权限授予该用户。
请参阅此处了解更多详情。
Mxx*_*Mxx 11
您需要修改/etc/sudoers文件或命令visudo以允许您连接到删除服务器的用户在没有密码提示的情况下切换到另一个用户。
尝试:
我有类似的问题,我曾经用-k -K(大写)运行我的剧本。该剧本将提示您输入密码。
ansible-playbook mail.yml -k -K
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
就我而言,我将信息添加到服务器组的组变量中
所以在 /etc/ansible/group_vars/{servergroup}/vars
我加了
ansible_become: yes
ansible_become_method: sudo
ansible_become_pass: "{{ vault_ansible_password }}"
Run Code Online (Sandbox Code Playgroud)
这篇文章帮助我找到了答案https://www.cyberciti.biz/faq/how-to-set-and-use-sudo-password-for-ansible-vault/
如果上述所有解决方案都不适合您,这就是我的情况。我的问题是我的 ansible_user 没有所有权限,我不喜欢允许 root 从 ssh 连接。
\n但我的测试人员用户没有执行某些操作的所有 sudo 权限:\n初始 tester_user 权限:
\ntester ALL= NOPASSWD:ALL # bad\nRun Code Online (Sandbox Code Playgroud)\n变成 :
\ntester ALL=(ALL:ALL) NOPASSWD:ALL # good\nRun Code Online (Sandbox Code Playgroud)\n这些附加字段的含义是:\n第一个 \xe2\x80\x9cALL\xe2\x80\x9d 表示该用户可以以所有用户身份运行命令。\n第二个 \xe2\x80\x9cALL\xe2\x80\x9d 表示该用户用户可以作为所有组运行命令。
\n最初想限制维护者的权限,但强制 ansible_user 可以运行命令,因为所有用户在 Ansible 中都使用Become_user。
\n| 归档时间: |
|
| 查看次数: |
15341 次 |
| 最近记录: |