假设我正在调试 Ansible playbook 并想在给定任务后退出(而不是运行以下所有任务)。是否有任何可用的单行魔术命令,或者我是否必须手动创建退出/断言任务?
从ansible-playbook手册中,我看到有一个--start-at-task=START_AT标志,但我没有看到类似“结束”对应的东西。
我试图在我的文件(在 Ubuntu 12.04 LTS 服务器上)中添加一个NOPASSWD条目sudotest.sh(或任何需要 sudo 的脚本/二进制/etc/sudoers文件),但为了使其工作,我必须指定完整路径。以下条目工作正常:
%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh
Run Code Online (Sandbox Code Playgroud)
问题是脚本可能会移动到不同的目录。这似乎是*在路径中使用通配符(即/*/sudotest.sh)的好机会,这样我的脚本就可以在任何目录中,但手册指出,/在路径中使用通配符时,通配符将与字符不匹配。我已经确认它不起作用。
我知道我可以使用这个词ALL代替我的脚本,但这意味着对于任何看起来不安全的命令都没有密码提示。
我该如何解决这个问题?
从 Jenkins 运行任何 sudo 命令时,我收到以下错误:
sudo:不存在 tty 且未指定 askpass 程序
我知道我可以通过NOPASSWD在我的/etc/sudoers文件中添加一个条目来解决这个问题,这将允许用户jenkins在不需要密码的情况下运行命令。我可以添加这样的条目:
%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh
Run Code Online (Sandbox Code Playgroud)
...但这会导致以下问题:如何避免在 sudoers 文件中指定完整路径?
我可以添加这样的条目:
%jenkins ALL=NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
...但这允许用户jenkins避免所有命令的密码提示,这似乎有点不安全。我只是好奇我在这里有什么选择,如果有任何我应该考虑的最佳实践。