以编程方式创建运行ansible-playbook的sudo规则



我如何创建ansible-playbook使用的所有可能命令的列表,以便我可以创建sudoers文件?

为了测试剧本,暂时在/etc/sudoers.d中创建一个条目:

tempuser ALL=(ALL:ALL) NOPASSWD:ALL

但是是否有一个插件或方法可以获得命令列表,以便我以后可以创建一个像

这样的列表
tempuser ALL= NOPASSWD:  /bin/systemctl start  mariadb.service
...

任何想法?

如果您打算在ansible中使用特权升级,那么特权升级必须是通用的

不能限制某些命令的特权升级权限。Ansible并不总是使用特定的命令来做某事,而是从每次更改的临时文件名运行模块(代码)。如果你有'/sbin/service '或'/bin/chmod '作为允许的命令,这将与ansible失败,因为这些路径与ansible创建的运行模块的临时文件不匹配。如果你的安全规则限制你的sudo/pbrun/doas环境只能运行特定的命令路径,那么从一个没有这个限制的特殊帐户使用Ansible,或者使用Red Hat Ansible Tower来管理对SSH凭证的间接访问。

如上面的文档引用所示,这是该工具的一个众所周知的限制。如果这在您的环境中是一个问题,请查看上述文档引用中建议的解决方案,或者根本不要使用ansible。

最新更新