Jenkins使用入门

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和凭据添加进入,不再报错:

相关推荐
技术小齐3 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风3 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕3 小时前
C语言-进程
linux·运维·服务器
chenbin5204 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯4 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
AI服务老曹4 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
sszdzq5 小时前
Docker
运维·docker·容器
book01215 小时前
MySql数据库运维学习笔记
运维·数据库·mysql
bugtraq20216 小时前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu
xmweisi6 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证