[技术探索]jenkins自动化部署配置

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登录界面

image.png

将/var/libjenkins/secrets/initialAdminPassword文件中的内容复制黏贴进去就会出现以下内容,新手选第一个即可
image.png

安装完之后(如果失败,登陆进去之后可以去插件管理里面重新添加插件)设置一个登录用户
image.png

以下界面就是jenkins主界面


image.png

jenkins邮箱配置

点击系统配置-》jenkins Location换成自己的URL和邮箱


image.png

往下找到Extended E-mail Notification,设置如下


image.png

上面如果没有看到Use SMTP Authentication可以查看右侧是否有“高级选项”,其中的Password不是User Name的登录密码或者前面登录jenkins时候设置的密码,而是该邮箱的授权码,用于第三方登录,以qq为例。进入qq邮箱设置-》账户,即可找到


image.png

邮箱的端口:25、465、587 是qq邮箱的端口,邮箱发送成但没有收到邮件,可以尝试换邮箱端口试试。


image.png

项目构建

  • 系统管理-》节点管理-》新建节点,设置一个节点名称,并勾选固定节点。
  • 新建任务-》新建一个自由风格的任务-》
    • 添加描述
    • 任务绑定特定节点


      image.png
    • 丢弃旧的构建任务


      image.png
    • 参数化构建过程


      image.png

      有选项参数,字符串参数...


      image.png

      按照上面可以添加多个参数,最后你会看到如下的内容
      image.png
    • 源码管理
      添加git的项目地址,以及可以拉取该项目的用户凭据


      image.png
    • 新增构建脚本,写入构建的脚本内容


      image.png
    • 开始构建


      image.png
    • 构建列表


      image.png
  • 构建日志终端显示(点击上面的任一构建项)


    image.png

WebHook配置

配置webhooks的作用就是当开发人员将代码提交到github或者gitlab之后,jenkins监听到有代码提交就会触发上面的项目构建任务,具体项目仓库下点击settings->webhooks->addwebhooks

image.png

jenkins->系统设置-》GithubServer
image.png

在项目构建时勾选

image.png

触发成功


image.png

使用中出现的问题

主界面出现:反向代理设置有误

问题原因:系统管理-->系统设置里的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.

解决方案:源码管理位置点击添加


image.png

注意下图所示三个箭头,这里要添加的是私钥(id_rsa)的内容,而相应的公钥在github上,之前我添加的是id_rsa.pub文件的内容,一直报上述错误

image.png

Sending email for trigger: Success An attempt to send an e-mail to empty list

首先我确认我的Recipient List是添加了的。不是empty状态


image.png

image.png
image.png

测试邮件可以接收通知,但是编译构建之后无论成功失败都没有收到邮件通知

image.png
image.png

MessagingException message: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1

image.png

尝试将465换成587,之后正常收到邮件,可能qq邮件服务器的问题。

Jenkins全局变量

https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables

你可能感兴趣的:([技术探索]jenkins自动化部署配置)