持续集成(二):Jenkins部署

Jenkins

什么是Jenkins

Jenkins是一个开源的使用Java开发的持续集成工具,提供了软件开发的持续集成服务,它把开发工作和运维工作结合在一起。它可以把Sonar代码质量检测工具、Maven或者Ant编译打包工具、Github、Gitlab代码管理工具以及Ansible或者Saltstack部署工具串联成一个完整框架。

它是主流的运维开发平台,它可以把开发、测试和运维融入到一个任务中。它具有很多插件可以从而使得其具有很好的扩展和兼容能力,比如常用的如下插件功能:

  • 调用Git插件与Github或者Gitlab进行交互
  • 调用Sonar插件,为给定的代码仓库地址做静态代码扫描,可以生成报告,检查语法规范性、是否有Bug、缺陷等
  • 利用Maven插件,对代码进行编译、打包并上传到仓库

另外Jenkins还具有针对不同Job设置不同角色用于来控制权限。它还具有比较高的负载均衡功能,也就是组成一个Jenkins集群。

前置操作

说明:由于Jenkins是Java开发的所有需要在系统中安装JDK1.8及以上版本。可以直接使用OpenJDK,yum -y install java

安装Git工具

系统默认带的是git1.x版本,版本过低,我们需要进行升级

#!/bin/bash

echo "安装git2"

# 卸载老版本
yum remove git
# 
yum -y install epel-release

cat > /etc/yum.repos.d/ius.repo <<-EOF
[ius]
name = IUS for Enterprise Linux 7 - $basearch
baseurl = https://repo.ius.io/7/$basearch/
enabled = 1
repo_gpgcheck = 0
gpgcheck = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7

[ius-debuginfo]
name = IUS for Enterprise Linux 7 - $basearch - Debug
baseurl = https://repo.ius.io/7/$basearch/debug/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7

[ius-source]
name = IUS for Enterprise Linux 7 - Source
baseurl = https://repo.ius.io/7/src/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7
EOF

yum makecache
yum search git2
yum -y install git224
git --version

安装JDK

使用OpenJDK

`yum -y install java``

自定义安装JDK

安装Orcale的JDK。

tar -xzf jdk-8u291-linux-x64.tar.gz
mv jdk1.8.0_291 /usr/local/
ln -s ./jdk1.8.0_291 ./jdk

修改/ect/profile文件,配置环境变量

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

安装Jenkins

Jenkins有多种运行方式,比如Docker运行、War包运行以及通过Yum安装。我们这里通过Yum来安装。

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

yum makecache
yum -y install jenkins

如果通过YUM源安装比较慢,可以是使用清华同方镜像,下载RPM包来安装,下载站点

rpm -ivh ./jenkins-2.289.2-1.1.noarch.rpm

如果使用了自定义安装的JDK,那么还需要修改vim /etc/init.d/jenkins:

也可以使用软连接方式ln -s /usr/local/jdk/bin/java /usr/bin/java

修改Jenkins启动用户和端口,编辑配置文件vim /etc/sysconfig/jenkins,修改如下参数JENKINS_USER=xxx JENKINS_PORT=8080

JENKINS_USER创建用户useradd deploy,并修改权限,这一步不是必须的,如果通过RPM包安装它会自动创建jenkins用户。

chown -R deploy.deploy /var/lib/jenkins/
chown -R deploy.deploy /var/log/jenkins/
chown -R deploy.deploy /var/cache/jenkins

最后使用systemctl start jenkins。然后打开浏览器输入地址,一开始会有一个提示页面稍等片刻就会出现这个密码界面:

这里选择推荐的插件

创建一个管理员账号

主界面

Jenkins配置和Gitlab集成

其实这里主要是添加Git上的凭据。真正的集成是在Job中。

我们的Jenkins是使用deploy账号启动的,如果自建的Gitlab使用私有CA办法的证书并且启用了SSL,而且Jenkins连接Git也使用HTTPS的话,并且在Jenkins服务器上没有导入私有根证书,那么在Jenkins连接Git的时候会报错因为无法验证证书,所以可以到Jenkins服务器上切换到deploy账号运行git config --global http.sslVerify false命令来禁用SSL检查。

配置Jenkins免密拉取代码

首先要在Jenkins服务器上创建秘钥,管理员登录也可以。运行ssh-keygen -t rsa一路回车,拷贝id_rsa.pub的内容,然后管理员登录GitLab进入设置->SSH KEY,添加该公钥。

然后在Jenkins上创建秘钥账号,粘贴私钥内容。

posted @ 2020-01-19 17:49  昀溪  阅读(643)  评论(0编辑  收藏  举报