如何使用密码以 sudo 作为 jenkins 用户进行权限升级

问题描述 投票:0回答:1

我想在 Linux 服务器上使用 ansible 和 jenkins 运行配置手册以及自动修补。我需要集中式环境来进行修补和节点配置,我选择了 Jenkins,因为我仅限于开源选项。

通过向 jenkins 用户授予 apt 或 dnf 或 bash 脚本的 nopasswd sudo 访问权限,可以轻松完成自动修补。

我的问题是 - 其他的东西呢?

我们的安全策略不允许用户对所有命令使用 nopasswd,因此目前所有 ansible playbook 都使用 --ask-become-pass 选项运行,我们提供用户的 sudo 密码,以便 ansible 可以完成它的工作。

我找不到任何有关使用 Jenkins 提供 sudo 凭据的文章/教程 - 这可能吗?

jenkins ansible sudo
1个回答
0
投票

如果您在用于 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 的凭证页面

© www.soinside.com 2019 - 2024. All rights reserved.