Ubuntu18.04安装Jenkins
通过进行系统更新和升级来开始安装:
sudo apt-get update
sudo apt-get upgrade
buntu 18.04上提供的Jenkins版本比上游版本旧,我们将使用项目维护的软件包来安装Jenkins。使用以下命令添加存储库密钥:
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
一旦添加了密钥,我们需要添加Jenkins稳定的Debian软件包存储库:
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
然后更新apt包索引:
sudo apt-get update
完成后,安装openjdk-8-jdk,因为Jenkins与java 9或其它版本可能会不兼容:
sudo apt-get install openjdk-8-jdk
如果安装了多个版本的Java JDK,则可以使用以下命令选择版本8作为默认值:
sudo update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.
然后安装Jenkins,运行以下命令:
sudo apt-get install jenkins
安装完成后如果8080端口是可以正常访问的,那么在浏览器中输入
http://IP_ADDRESS:8080就会自动跳转到jenkins登录界面
将/var/libjenkins/secrets/initialAdminPassword文件中的内容复制黏贴进去就会出现以下内容,新手选第一个即可
安装完之后(如果失败,登陆进去之后可以去插件管理里面重新添加插件)设置一个登录用户
以下界面就是jenkins主界面
jenkins邮箱配置
点击系统配置-》jenkins Location换成自己的URL和邮箱
往下找到Extended E-mail Notification,设置如下
上面如果没有看到Use SMTP Authentication可以查看右侧是否有“高级选项”,其中的Password不是User Name的登录密码或者前面登录jenkins时候设置的密码,而是该邮箱的授权码,用于第三方登录,以qq为例。进入qq邮箱设置-》账户,即可找到
邮箱的端口:25、465、587 是qq邮箱的端口,邮箱发送成但没有收到邮件,可以尝试换邮箱端口试试。
项目构建
- 系统管理-》节点管理-》新建节点,设置一个节点名称,并勾选固定节点。
- 新建任务-》新建一个自由风格的任务-》
- 添加描述
-
任务绑定特定节点
-
丢弃旧的构建任务
-
参数化构建过程
有选项参数,字符串参数...
按照上面可以添加多个参数,最后你会看到如下的内容
-
源码管理
添加git的项目地址,以及可以拉取该项目的用户凭据
-
新增构建脚本,写入构建的脚本内容
-
开始构建
-
构建列表
-
构建日志终端显示(点击上面的任一构建项)
WebHook配置
配置webhooks的作用就是当开发人员将代码提交到github或者gitlab之后,jenkins监听到有代码提交就会触发上面的项目构建任务,具体项目仓库下点击settings->webhooks->addwebhooks
jenkins->系统设置-》GithubServer
在项目构建时勾选
触发成功
使用中出现的问题
主界面出现:反向代理设置有误
问题原因:系统管理-->系统设置里的Jenkins URL没有写对
HTTP ERROR 403
Problem accessing /job/deployWebTask/descriptorByName/hudson.plugins.git.UserRemoteConfig/checkUrl. Reason:
No valid crumb was included in the request
解决方案:位置: Jenkins > 全局安全配置 > CSRF Protection,取消勾选
Command "git ls-remote -h -- [email protected]:yeqianxun/myweb.git HEAD" returned status code 128:stdout:stderr: [email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方案:源码管理位置点击添加
注意下图所示三个箭头,这里要添加的是私钥(id_rsa)的内容,而相应的公钥在github上,之前我添加的是id_rsa.pub文件的内容,一直报上述错误
Sending email for trigger: Success An attempt to send an e-mail to empty list
首先我确认我的Recipient List是添加了的。不是empty状态
测试邮件可以接收通知,但是编译构建之后无论成功失败都没有收到邮件通知
MessagingException message: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1
尝试将465换成587,之后正常收到邮件,可能qq邮件服务器的问题。
Jenkins全局变量
https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables