如何在 Jenkins 中屏蔽临时(非参数、非凭据)密码
How To Mask Ad Hoc (non-Parameter, non-Credential) Passwords in Jenkins
我作为 Jenkins 管道的一部分从 Ansible 取回密码,然后想在 Jenkins 触发的 shell 脚本中屏蔽这些密码。
困难在于这些密码不是管道参数或 Jenkins 凭据。
我可以看到 mask passwords plugin 允许在 Manage Jenkins 中预定义时屏蔽正则表达式。我想在这里做的是定义一个正则表达式(或文字字符串)以编程方式屏蔽。
我想要的是这样的:
def password = getPasswordFromAnsible()
maskPassword(password)
sh "applogin -u ${username} -p ${password}"
此 sh
脚本应在控制台日志中生成以下内容:
sh "applogin -u my_username -p ******"
一个选项是在您 运行 该特定敏感命令之前禁用命令回显,并遵循使用描述性文本的逻辑:
sh '''
echo "Attempting to login"
set +x
applogin -u ${username} -p ${password}
set -x
echo "Logged in successfully"
'''
我作为 Jenkins 管道的一部分从 Ansible 取回密码,然后想在 Jenkins 触发的 shell 脚本中屏蔽这些密码。
困难在于这些密码不是管道参数或 Jenkins 凭据。
我可以看到 mask passwords plugin 允许在 Manage Jenkins 中预定义时屏蔽正则表达式。我想在这里做的是定义一个正则表达式(或文字字符串)以编程方式屏蔽。
我想要的是这样的:
def password = getPasswordFromAnsible()
maskPassword(password)
sh "applogin -u ${username} -p ${password}"
此 sh
脚本应在控制台日志中生成以下内容:
sh "applogin -u my_username -p ******"
一个选项是在您 运行 该特定敏感命令之前禁用命令回显,并遵循使用描述性文本的逻辑:
sh '''
echo "Attempting to login"
set +x
applogin -u ${username} -p ${password}
set -x
echo "Logged in successfully"
'''