1:Jenkins 部署
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins是基于java开发的,所以运行需要java环境。版本要求Java 8,无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
Jenkins相当于是一个完全插件化的服务,功能都是基于插件实现的,在安装时可以基于推荐安装一些常用的插件,在后期需要实现特定功能时,也可以自行查找并安装相应插件。
Jenkins 中文官网:https://www.jenkins.io/zh/
Jenkins 中文文档:https://www.jenkins.io/zh/doc/
每12周发布一个LTS版本。
Jenkins有以下几种安装及启动方式:
-
rpm/deb安装(推荐,后期管理比较简单),需要安装daemon进行启动管理。
-
直接下载Jenkins的war包,通过java -jar 指定war包来启动(默认是前台启动,需要加&送到后台)。
用哪个用户启动,jenkins的数据就会放到该用户的家目录下(
~/.kenkins
),可以通过命令行在启动时传参数,指定各种Jenkins相关目录的位置,使用java -jar war包 --help
查看具体的使用帮助)。
这个方式启动的jenkins,要关闭的话就要用kill了。启动命令示例:
java \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname="192.168.8.2 " \ -jar jenkins-2.138.3.war &
-
部署Tomcat,将下载的war包***解压***到Tomcat的webapps目录,通过Tomcat启动(数据存放目录和java命令启动时相同)。
war包其实就是一个zip压缩包,用file可以查看文件格式,所以是用unzip将war包解压到webapps中。
比如:
unzip jenkins-2.138.3.war -d /apps/tomcat/webapps/jenkins /apps/tomcat/bin/catalina.sh start
jenkins目录不用提前创建。
-
还可以部署docker容器环境,基于官方的docker镜像启动。
本次实验采用常用的程序包安装启动方式进行。
1.1:Jenkins 的安装要求
官方的系统配置要求:
最低推荐配置:
- 256MB可用内存
- 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
为小团队推荐的硬件配置:
- 1GB+可用内存
- 50 GB+ 可用磁盘空间
软件配置:
- Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
注意: 如果将Jenkins作为Docker 容器运行,这不是必需的
此次实验采用的是2c-2g-50G的配置,系统为Ubuntu1804。
1.2:下载 Jenkins 程序包
清华大学镜像站下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins
根据系统类别选择stable稳定版本:
本次选择jenkins_2.277.2_all.deb
进行下载:
1.3:Jenkins 运行环境准备
1.3.1:java 环境准备
java环境通过安装JDK来实现(只安装JRE也可以),官方要求的版本为java 8。
可以通过apt直接安装open-jdk,但更推荐下载安装Oracle JDK(下载地址:https://www.oracle.com/java/technologies/javase-downloads.html)。
这里安装的是 jdk-8u212。
解压并创建软链接:
需要额外创建一个/usr/bin/java的软链接,因为jenkins会从这个路径查找java的可执行程序,如果不创建,会报错。
root@jenkins:/usr/local/src# tar zxf jdk-8u212-linux-x64.tar.gz
root@jenkins:~# ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk
root@jenkins:~# ln -sv /usr/local/jdk/bin/java /usr/bin/java
配置java环境变量:
root@jenkins:~# vim /etc/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
root@jenkins:~# source /etc/profile
验证java版本:
root@jenkins:~# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
1.3.2:安装 daemon
在Ubuntu系统上通过deb程序包安装的Jenkins需要通过daemon来进行进程管理。
root@jenkins:~# apt install daemon
1.4:Jenkins 的安装和初始配置
1.4.1:安装 deb 程序包并启动 Jenkins
安装:
root@jenkins:/usr/local/src# dpkg -i jenkins_2.277.2_all.deb
启动:
root@jenkins:~# systemctl start jenkins && systemctl enable jenkins
启动后Jenkins的会监听在8080端口:
root@jenkins:~# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3623 jenkins 142u IPv6 40983 0t0 TCP *:http-alt (LISTEN)
1.4.2:解锁 Jenkins
访问Jenkins(http://192.168.1.122:8080),提示需要解锁,查看指定文件获取管理员密码,粘贴并继续:
root@jenkins:~# cat /var/lib/jenkins/secrets/initialAdminPassword 36e7a71b907a4aae888e25c6725f0da4
1.4.3:安装推荐的插件
解锁并点击继续后,如果显示离线,是由于Jenkins未能获取到官网的更新管理文件
update-center.json
,需要将获取改文件的地址更改为国内的清华镜像站地址:
root@jenkins:~# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url> </site> </sites>
更改以后重启Jenkins并刷新页面,继续进行推荐插件的安装。
解锁并获取到update-center.json
文件后,就会进入安装插件界面,选择“安装推荐的插件”,其中包含了常用的插件。
安装中,等待完成即可。
安装时由于网络原因可能导致某些插件安装失败,点击重试即可。
1.4.4:创建第一个管理员用户
推荐插件安装完成后,在正式使用前,需要创建一个管理员用户(也可以使用默认的admin帐户,但创建为好)。
jenkins/123456
1.4.5:实例配置
实例配置是设置Jenkins的URL,一般保持默认即可。
http://192.168.1.122:8080
1.4.6:开始使用 Jenkins
这里点击“开始使用Jenkins”,就可以开始Jenkins之旅了。
1.4.7:安装必要的插件
安装了推荐插件后,还有一些插件需要额外安装:
- Gitlab相关:主要是Gitlab、Gitlab Hook、Gitlab Authentication,用于实现和Gitlab的相关交互操作。
- Blue Ocean,Pipeline的管理和可视化插件。
- Role-based Authentication Strategy,提供基于角色的权限管理。
使用刚刚创建的管理员帐号登录Jenkins,点击系统管理-插件管理,进入插件管理页面。
1.4.7.1:Gitlab 相关插件
选择可选插件,在搜索框中输入关键字,在检索结果中勾选相应插件,点击“Install without restart”立即安装。
安装中,等待完成即可。
如果需要,可以将其它几个Gitlab相关的插件也装上。
1.4.7.2:Blue Ocean 插件
Blue Ocean 插件官方介绍:https://www.jenkins.io/zh/doc/book/blueocean/
安装中,等待完成即可。
1.4.7.3:Role-based Authentication Strategy 插件
可以实现基于角色的权限管理,将权限分配给角色,再为用户授予角色,实现对用户的权限管理。
1.4.7.4:安装完成后自动重启 Jenkins
最后一组插件安装时,勾选安装完成后重启Jenkins(空闲时),Jenkins会在安装完成后自动重启。插件的安装需要重启才能生效。
重启中:
重启完成后,Jenkins的部署就已完成。