中级第 6 / 11 节30 分钟 · 实操
环境与凭据
Jenkins 课程的一部分
你的流水线要把镜像推到镜像仓库,而镜像仓库要一个密码。最快能跑通的做法是把密码直接粘进 Jenkinsfile,而 Jenkinsfile 就躺在仓库里,于是这个密码永远留在了 git 历史中,凡是有克隆权限的人都能读到,以后拿到克隆权限的人也一样能读到。想换掉它,就得把它被复制过去的每一个地方都翻出来。
Jenkins 有一套像样的办法。密钥存放在 Jenkins 内部的 凭据 (credentials) 库 里,用一个简短的 ID 来引用,流水线在运行时才把它取出来。Jenkins 还会在控制台日志里把已知的凭据值遮蔽掉,所以就算不小心 echo 了一下,打印出来的也是星号而不是你的令牌。本课讲的就是这个库、从里面取值的两种方式,以及人们即便如此仍然能把密钥漏出去的那几种做法。
你将学到什么
- Environment block
- Credentials() helper
- Jenkins credentials store
- Username with password
- Secret text
- SSH key
- WithCredentials block
