首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Ansible忽略ansible_become_password变量?

为什么Ansible忽略ansible_become_password变量?
EN

Stack Overflow用户
提问于 2015-11-30 19:28:14
回答 2查看 8.8K关注 0票数 5

我正在通过与Ansible的本地连接提供一个VM。有些任务需要su特权(通过sudo授予)。

我不能使用--询问-成为-密码开关,因为我希望供应是完全自动化的。

这是我的剧本play.yml:

代码语言:javascript
复制
---
  - hosts: all
    gather_facts: yes
    roles:
      - role1

以下是角色/role1 1/任务/main.yml:

代码语言:javascript
复制
---
  - name: Update apt-get cache (apt-get update)
    become: true
    apt: update_cache=yes

我的存货:

代码语言:javascript
复制
localhost

最后,host_vars/localhost.yml:

代码语言:javascript
复制
---
ansible_connection: local
ansible_become_pass: user

在使用ansible-playbook -i inventory play.yml -vvvv运行游戏手册时,我得到了以下错误:

代码语言:javascript
复制
<localhost> REMOTE_MODULE apt update_cache=yes
<localhost> EXEC ['/bin/sh', '-c', 'mkdir -p /tmp/ansible-tmp-1448910759.16-277915614747763 && chmod a+rx /tmp/ansible-tmp-1448910759.16-277915614747763 && echo /tmp/ansible-tmp-1448910759.16-277915614747763']
<localhost> PUT /tmp/tmpKuhTO2 TO /tmp/ansible-tmp-1448910759.16-277915614747763/apt
<localhost> EXEC ['/bin/sh', '-c', u'chmod a+r /tmp/ansible-tmp-1448910759.16-277915614747763/apt']
<localhost> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, key=ilkbtrjkxxznhmgwvdaglfojzolhhfhz] password: " -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-ilkbtrjkxxznhmgwvdaglfojzolhhfhz; LANG=C LC_CTYPE=C /usr/bin/python /tmp/ansible-tmp-1448910759.16-277915614747763/apt'"'"''
<localhost> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, key=stcxercjkjtxgyzjewlffytjjwcwidip] password: " -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-stcxercjkjtxgyzjewlffytjjwcwidip; LANG=C LC_CTYPE=C /usr/bin/python /home/user/.ansible/tmp/ansible-tmp-1449081640.46-119933765060267/apt; rm -rf /home/user/.ansible/tmp/ansible-tmp-1449081640.46-119933765060267/ >/dev/null 2>&1'"'"''
failed: [localhost] => {"failed": true, "parsed": false}
[sudo via ansible, key=stcxercjkjtxgyzjewlffytjjwcwidip] password:

为什么本地主机的ansible_become_password被忽略了?

我注意到在Ansible详细输出中没有报告密码,但我不知道它是否是默认行为。

Ansible 1.9.4,UbuntuServer15.10上的默认ansible.cfg。

编辑:更新的剧本(删除ansible_become_user变量)和输出。

如果我用--ask-become-password 开关运行它,那么这个游戏就能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-30 19:37:31

ansible_become_user习惯于切换到用户,就像su一样。

如果该用户没有执行任务的正确权限,而不需要进一步的权限升级,则该任务将失败。

如果您删除您的ansible_become_user行,它将默认为根,然后它应该能够做任何事情。

票数 5
EN

Stack Overflow用户

发布于 2015-11-30 22:50:20

文档说要使用ansible_become_pass,而不是ansible_become_password

ansible_become等价于ansible_sudo或ansible_su,允许强制权限提升 ansible_become_method允许设置权限提升方法 ansible_become_user等价于ansible_sudo_user或ansible_su_user,允许通过与ansible_sudo_pass或ansible_su_pass等效的权限升级ansible_become_pass来设置用户,允许设置权限升级密码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34006397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档