我想在 Linux 服务器上使用 ansible 和 jenkins 运行配置手册以及自动修补。我需要集中式环境来进行修补和节点配置,我选择了 Jenkins,因为我仅限于开源选项。
通过向 jenkins 用户授予 apt 或 dnf 或 bash 脚本的 nopasswd sudo 访问权限,可以轻松完成自动修补。
我的问题是 - 其他的东西呢?
我们的安全策略不允许用户对所有命令使用 nopasswd,因此目前所有 ansible playbook 都使用 --ask-become-pass 选项运行,我们提供用户的 sudo 密码,以便 ansible 可以完成它的工作。
我找不到任何有关使用 Jenkins 提供 sudo 凭据的文章/教程 - 这可能吗?
如果您在用于 jenkins 用户的 sudoers 中添加了专用用户,则可以在 jenkins 设置中为此用户创建一个凭据。然后,您可以选择秘密凭证与 jenkins 脚本一起使用,而不必在脚本中包含密码或作为用户输入。
withCredentials([usernamePassword(credentialsId: 'patching',
usernameVariable:'USERNAME', passwordVariable: 'PASSWORD')]) {
// available as an env variable, but will be masked if you try to print it
out any which way
// note: single quotes prevent Groovy interpolation; expansion is by Bourne
Shell, which is what you want
sh 'echo $PASSWORD'
// also available as a Groovy variable
echo USERNAME
// or inside double quotes for string interpolation
echo "username is $USERNAME"
}
有关更多信息,请参阅 jenkins 的凭证页面。