Jenkins输出hello world
Jenkins是一个自动化构建工具,可以理解为可视化的自动脚本工具,类似于提供了一个可视化界面完成Linux下shell脚本的执行工作。为了学习一下Jenkins如何使用,下面执行一个简单的hello world打印任务学习相关流程。


接下来进入配置界面:
对于当前hello world的打印任务,build steps步骤之前的操作都可以保持默认(当前就是什么都不改),直接来到这一步,增加shell脚本。

编写一个简单的shell语句,然后直接保存就可以了

保存之后回到项目页面,点击"立即构建",开始执行当前构建任务:
等待片刻,一个构建任务就执行完毕:

点开这个构建,然后选择"控制台输出",查看输出结果:

构建成功!
Jenkins和bitbucket的联通
为bitbucket配置公钥以及为Jenkins配置私钥
在Jenkins服务器中,执行ssh-keygen -t rsa -b 4096 -C "``your_email@example.com``"
之类的语句用于生成密钥,例如,对于本项目执行如下语句:
一直按回车,会自动在Jenkins服务器的根目录.ssh文件夹下生成一份公钥(id_rsa.pub)和私钥(id_rsa),如下图,其中可以在上图发现Enter passphrase字样,passphrase是密码短语,可以保持不填,这里保持回车不填。

我们可以分别通过cat
命令查询公钥和私钥内容。
在bitbucket中,我们进入个人manage account 界面,在SSH keys 选项中点击Add key添加公钥:

进入二级界面,我们在key一栏填入id_rsa.pub中公钥内容,注意,在终端中执行cat id_rsa.pub
,接下来输出的所有语句都要复制进来,包括开头的ssh-rsa以及结尾的邮箱字样!之后点击保存即可。

进入Jenkins界面,如果是中文界面则进入系统管理 >凭据管理。在Stores scoped to Jenkins一栏中,我们进入系统全局凭据界面:

进入下一级界面,再点击全局凭据(unrestricted),进入下一级界面,

然后在现在的界面里创建一个新的凭据,用于存储私钥:

进入新的私钥配置界面,我们在类型 一栏中选择SSH Username with private key,

然后在下面我们可以添加一些简单的ID、描述来标记这个私钥,例如ID和Username可以写git,描述处可以写bitbucket-ssh之类的,只是用来写个名字方便区分,在Private Key处,我们将刚才生成的私钥复制到这里,注意,所有通过执行cat id_rsa
产生的密钥都要复制,包括收尾的-----BEGIN OPENSSH PRIVATE KEY-----`` -----END OPENSSH PRIVATE KEY-----
字样,这是私钥的重要标记。


至此,bitbucket配置公钥以及为Jenkins配置私钥的流程完毕。在凭据界面出现我们刚才新生成的密钥凭据。

但在实际测试中,可能还会出现提示"Host key verification failed"的问题,即 Jenkins 服务器未信任目标主机的 SSH 主机密钥,这时需要我们手动为Jenkins服务器添加主机信任配置。
在 Jenkins 服务器的终端运行以下命令,将目标主机的密钥添加到 known_hosts
文件:
ssh-keyscan -p 7999 <你的bitbucket地址> >> ~/.ssh/known_hosts
-p 7999
:指定端口号(Bitbucket 使用的是 7999)。
执行该语句会在.ssh目录下生成一个新的known_hosts文件,我们可以通过执行cat ~/.ssh/known_hosts
来查看现在是否正确记录了主机密钥,出现下述语句即表示记录成功:

我们可以通过执行GIT_SSH_COMMAND="ssh -p 7999" git ls-remote ssh://``git@<你的bitbucket地址>:7999/~xxx
命令来测试是否可以通过 SSH 连接到 Bitbucket 仓库,如果返回了仓库的引用(如分支和标签信息),则说明 SSH 配置正确。

此时,回到Jenkins中配置一个新的自动化构建任务,选择Git,并添加bitbucket的仓库,将仓库URL和凭据添加进入,不再报错:
