Ale*_*ord 7 redhat ansible ansible-playbook
我想使用Ansible来管理我们的Hadoop集群(运行Red Hat)的配置.
我有sudo访问权限,可以手动ssh进入节点执行命令.但是,当我尝试运行Ansible模块来执行相同的任务时,我遇到了问题.虽然我有权sudo访问,但我不能成为root用户.当我尝试执行需要提升权限的Ansible脚本时,我收到如下错误:
对不起,用户awoolford不允许在[some_hadoop_node]上执行'/ bin/bash -c echo BECOME-SUCCESS- [...]/usr/bin/python /tmp/ansible-tmp-1446662360.01-231435525506280/copy'作为awoolford.
浏览文档,我认为该become_allow_same_user属性可能会解决此问题,因此我将以下内容添加到ansible.cfg:
[privilege_escalation]
become_allow_same_user=yes
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有用.
这篇文章表明我需要sudo /bin/sh(或其他一些shell)的权限.不幸的是,出于安全原因,这是不可能的.以下是一段摘录/etc/sudoers:
root ALL=(ALL) ALL
awoolford ALL=(ALL) ALL, !SU, !SHELLS, !RESTRICT
Run Code Online (Sandbox Code Playgroud)
Ansible可以在这样的环境中工作吗?如果是这样,我做错了什么?
小智 3
好吧,你根本无法执行/bin/sh或/bin/bash如你/etc/sudoers所展示的那样。您可以做的是将 ansible 的默认 shell 更改为其他内容(变量executable在ansible.conf)。
由于您的 sudo 策略默认允许一切(对我来说似乎不太安全),并且我认为 ansible 需要一个与 sh 兼容的 shell,作为一个非常肮脏的黑客,您可以复制/bin/bash到其他路径/名称并executable相应地设置变量(未测试)。
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |