linux - Ansible 中的权限升级需要密码
问题描述
我正在尝试使用 Ansible 在几个远程节点上创建一个文件。我以“xyz”用户身份连接,在特权升级后我想成为“abc”用户。
这里的问题是 Ansible 期望密码成为“abc”用户,但我可以直接使用命令:sudo su abc 在 Putty 上切换为 abc 用户。
如果我通过以下命令,我的剧本运行良好: ansible-playbook TestPlay.yml --ask-become-pass 然后输入密码。
但是,我们不能共享 'abc' 用户的密码,所以我们需要 Ansible 使用 sudo 直接成为 'abc' 用户,这不会发生。当我在我的剧本中使用 : become_method: sudo 时,它失败了 {"msg": "Timeout (12s) waiting for privilege escalation prompt:"}。
我尝试在主机文件中添加 ANSIBLE_BECOME_EXE='sudo su -' ,但它仍然不起作用!!。
如果我的配置中缺少某些内容,请告诉我。
我的 TestPlay 剧本:
- name: TestPlay sample
become: true
become_method: su
become_user: abc
hosts: group1
tasks:
- name : create a file after becoming abc user
file:
path: /var/tmp/temp.txt
state: touch
mode: '0665'
主机文件条目:
[group1]
ip address1
ip address2
[group1:vars]
ansible_user=xyz
ansible_password=passxyz
解决方案
推荐阅读
- android - 使用 NavGraph - Jetpack Navigation 从另一个 Fragment 切换回来时,包含 ViewPager 的 Fragment 会重新加载
- powershell - 如何使用 WMI 限定符以便将字符串变量分配给 WMI 属性
- python - Python - 使用 Multiprocessing.Process 时无法从更高范围访问变量?
- mongodb - MongoDB使特定字段的所有键值成为自己的字段(Python)
- android - 带有成功 URL 标识的多个后备 URL
- mysql - 当列字段达到0时触发删除行?
- javascript - 如果用户在javascript中选中或取消选中复选框,如何添加或减去值?
- javascript - 如何在 react-router-dom 中使用 context api": "^5.2.0" 和 react": "^17.0.2"
- javascript - 在css网格中反应画布不是全尺寸
- linkedin - 有没有办法通过linkedin上的api编辑UGC帖子