【发布时间】:2016-02-05 10:04:03
【问题描述】:
我想使用 Ansible 来管理我们的 Hadoop 集群(运行 Red Hat)的配置。
我有 sudo 访问权限,可以手动 ssh 进入节点执行命令。但是,当我尝试运行 Ansible 模块来执行相同的任务时,我遇到了问题。 虽然我有 sudo 访问权限,但我无法成为 root。当我尝试执行需要提升权限的 Ansible 脚本时,我收到如下错误:
抱歉,awoolford 用户不允许执行 '/bin/bash -c echo 成为成功- […] /usr/bin/python /tmp/ansible-tmp-1446662360.01-231435525506280/copy' as awoolford on [some_hadoop_node]。
查看documentation,我认为become_allow_same_user 属性可能会解决此问题,因此我将以下内容添加到ansible.cfg:
[privilege_escalation]
become_allow_same_user=yes
不幸的是,它没有用。
这个post 表明我需要sudo /bin/sh(或其他shell)的权限。不幸的是,出于安全原因,这是不可能的。这是来自/etc/sudoers的sn-p:
root ALL=(ALL) ALL
awoolford ALL=(ALL) ALL, !SU, !SHELLS, !RESTRICT
Ansible 可以在这样的环境中工作吗?如果是这样,我做错了什么?
【问题讨论】:
-
你说你可以手动ssh到节点并执行命令,那是哪个用户?
-
我可以
sudo [some_command]作为用户awoolford,前提是它不在!列表之一中(参见/etc/sudoers的sn-p)。 -
你能分享一个抛出错误的示例播放/角色吗?
标签: ansible redhat ansible-playbook