如何在不使用'become'模块的情况下使用'sudo'



感谢您的阅读。

是否有一种方法可以使用sudo command而不使用become module,同时编写一个可行的剧本?(这是不使用shell module的情况)

目前,在我的环境中,可以执行sudo命令,但不能使用sudo -i或sudo su -等命令切换到root用户。

所以像be: yes这样的设置不起作用。

我想像下面这样使用它。

ex) testuser可以使用sudo命令,但不能以root身份使用sudo -i等命令访问。

- name: install default packages
become: yes
shell: "yum install -y smem"
remote_user: testuser

→这不起作用,但是您可以在testuser中使用sudo命令,→Sudo yum install -y smem

ex2)

- name: sett nproc
become: yes
pam_limits:
domain: user1
limit_type: '-'
limit_item: nproc
value: 257521
remote_user: testuser

作为解决问题的方法,我只能想到使用shell模块手动输入sudo命令的方法,或者在ex2的limits.conf的情况下,通过在blockcinfile中放置标记来修改它。

有什么好办法吗?

谢谢

have a good day.

尝试在没有root权限的情况下运行ansible将是非常繁琐的。看起来您有sudo访问一组受限制的命令,仅此而已。

我能想到的唯一明智的方法是将一组实用程序脚本复制到/home/testuser/bin/并作为testuser调用它们。所以你可以输入/home/testuser/bin/sudo_yum.sh:

#!/bin/bash
sudo yum install -y "$@"

这是可怕的,繁琐的获得引用安全的参数,并使大多数可见模块无法使用。

如果你真的不能授予ansible所需的访问权限,也许你需要一个不同的配置工具。看起来你可以安装包,所以一些带有代理以root身份运行的东西可能是允许的。

最新更新