Jenkins部署与基础配置
- 1.1 jenkins安装
- 1.1.1 war安装
- 1. java环境配置:
- 2. 设置java环境变量
- 3. 启动jenkins
- 4. 日志
- 1.1.2 红帽系安装
- 1.1.3 容器搭建
- 1.1.4 总结
- 1.2 访问jenkins管理页面
- 1.3 创建第一个任务
jenkins中文官网
Jenkins 构建伟大,无所不能
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
本文将介绍两种部署方式,包括war安装和容器安装。如果是生产环境,建议使用war安装,在后台启动使用。如果是以学习为目的,建议参考容器搭建。其他安装方式参考官网。官网安装介绍
1.1 jenkins安装
1.1.1 war安装
jenkins由java编写,所以软件依赖java启动,部署jenkins之前,需要部署java。
war安装的优点:Jenkins的Web应用程序ARchive(WAR)文件版本可以安装在任何支持Java的操作系统或平台上。
1. java环境配置:
root@jenkins:/usr/local/src#tar xvf jdk-8u192-linux-x64.tar.gz
root@jenkins:/usr/local/src#ln -sv /usr/local/src/jdk1.8.0_192/ /usr/local/jdk
root@jenkins:/usr/local/src#ln -sv /usr/local/jdk/bin /java/usr/bin/#java命令软连接
[root@dbc-server-554 jenkins]# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
[root@dbc-server-554 jenkins]# java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
2. 设置java环境变量
[root@dbc-server-554 jenkins]# export JAVA_HOME=/usr/bin/java
[root@dbc-server-554 jenkins]# export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
[root@dbc-server-554 jenkins]# export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
[root@dbc-server-554 jenkins]# env|grep java||JAVA
PATH=/usr/bin/java/bin:/usr/bin/java/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
JAVA_HOME=/usr/bin/java
CLASSPATH=.:/usr/bin/java/lib:/usr/bin/java/jre/lib:/usr/bin/java/lib/tools.jar
[root@dbc-server-554 jenkins]# source /etc/profile
[root@dbc-server-554 jenkins]# java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
3. 启动jenkins
下载 Jenkins 2.346.3 LTS for:https://www.jenkins.io/zh/download/
选择Generic Java package (.war)
启动
java -jar jenkins.war
jenkins端口默认是8080,可以通过–httpPort=****改为其他端口,例如
java -jar jenkins.war --httpPort=9090
提示如下信息则为成功
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
56fbb976461e4914bcd788c1ea5df87c
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
切换到后台运行
[root@dbc-server-554 jenkins]# nohup java -jar /usr/local/jenkins.war &
[1] 8297
[root@dbc-server-554 jenkins]# nohup: ignoring input and appending output to ‘nohup.out’
[root@dbc-server-554 jenkins]# ps -ef |grep jenkins
root 8297 5958 86 14:19 pts/0 00:00:21 java -jar /usr/local/jenkins.war
4. 日志
使用nohup后台启动方式的日志存储在nohup.out文件中,如果需要查看log,使用cat
或者tail
命令就可以了
当然初次启动也可以以后台方式,不过密码信息需要在nohup.out中查找
1.1.2 红帽系安装
To use this repository, run the following command:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装java和jenkins
yum install fontconfig java-11-openjdk
yum install jenkins
修改启动账号
较新版本的jenkins
[root@localhost ~]# cat /usr/lib/systemd/system/jenkins.service |grep root
User=root
Group=root
[root@localhost ~]# cat /usr/lib/systemd/system/jenkins.service |grep PORT
Environment="JENKINS_PORT=8080"
重新加载配置文件及启动
systemctl daemon-reload
systemctl start jenkins
插曲:这里在jenkins官网下载的repo是较新的版本,依赖java 11及以上版本,所以此处还需要更新下java
- 下载java 11
官网下载 https://www.oracle.com/java/technologies/downloads/#java11 下载完成后,上传到服务器 - 解压
tar -zxvf jdk-11.0.19_linux-x64_bin.tar.gz
mv jdk-11.0.19 /opt/
- 删除以前版本
查询已安装的Java版本:
java -version
#或者:
rpm -qa|grep jdk
- 删除已安装的JDK:
sudo rpm -e --nodeps [JDK包名]
- 添加环境变量
[root@node-253 ~]# tail -5 /etc/profile
export JAVA_HOME=/opt/jdk-11.0.19
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HIOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 加载环境变量
source /etc/profile
- 建立软连接
ln -s /opt/jdk-11.0.19/bin/java /usr/bin/java
systemctl daemon-reload
systemctl start jenkins
1.1.3 容器搭建
在Docker中下载并运行Jenkins
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
[root@k8s-node-02 local]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb4c6dbf9070 jenkinsci/blueocean "/sbin/tini -- /usr/…" 10 minutes ago Up 10 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp wizardly_wright
80e89e1c19f2 garland/mesosphere-docker-mesos-master:latest "mesos-slave" 3 days ago Up 3 days mesos_slave_1
docker logs <container-id>
报错:WARNING: IPv4 forwarding is disabled. Networking will not work.
解决方式:
第一步:在宿主机上执行
echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
第二步:重启network和docker服务
[root@localhost /]# systemctl restart network && systemctl restart docker
1.1.4 总结
三种安装方式各有优缺点,笔者建议在生产环境中使用红帽系搭建方式,因为可以使用systemd管理,配置文件,数据等内容路径比较固定。如果是自己学习,快速了解上手的话,通过docker应该是最快的。通过war包的方式,笔者在生产环境中,遇到过诸多问题,比如由于不是本人搭建,找不到使用版本的war包对应路径,或者nohup.out文件路径等,因为服务器并不是一个人使用,war包可能有多个,不知道使用哪个,有时候只能碰运气。生产环境中如果使用war包的方式,建议写shell脚本,放在固定位置。
1.2 访问jenkins管理页面
浏览http://localhost:8080并等到Unlock Jenkins页面出现,如果不是在本机搭建localhost换成对应IP或者域名,填入密码
安装插件,可以通过安装推荐插件进行安装。如果安装过程中,有个别插件安装失败也不必担心,在后续的插件管理界面可以单独安装。
如果因网络问题显示离线,也不必担心。此处可以配置代理,或者选择跳过插件安装,我们选择跳过插件安装。
创建管理员,此处可以使用admin ,密码是解锁jenkins的密码。或者创建自己的账户
最后,进入jenkins工作台。
中文插件:在Manage Jenkins中选择Plugin Manager,Available中输入localization,可以选择安装中文插件
在前面安装插件失败的地方,可以通过以下网址进行单独安装
1.3 创建第一个任务
老规矩,打印hello world!
1.选择New item,输入项目名称,选择Freestyle project。由于笔者新搭建的jenkins未安装其他插件,所以此处只显示freestyle project,正常会有很多类型可以选择,如果在前文中选择了安装推荐插件此处会有较多选择,不过作为第一个打印任务,不安装插件也可以构建成功
我们在Build中选择Execute shell中填入"echo hello world!",应用保存。
执行Build Now
在Build History中查看#1任务Console Output,可以看到打印了hello world,并提示执行成功