环境准备:
组件及版本:
Jenkins版本:2.138.3
操作系统:CentOS 7.4
JDK版本:8u161
Tomcat:8.5.49
安装前准备:
1、部署java环境,因为Jenkins的部署依赖java环境。
[root@centos7 app]# tar xvf jdk-8u161-linux-x64.tar.gz -C /usr/local/
[root@centos7 local]# ln -s /usr/local/jdk1.8.0_161/ /usr/local/java
##配置java环境变量
[root@centos7 local]# vim /etc/profile.d/java_path.sh
export JAVA_HOME=/usr/local/java
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@centos7 local]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Jenkins的几种部署方式:
方式一:直接下载war包jenkins.war,下载地址https://jenkins.io/download 。
方式一:可以把war包直接部署到tomcat中,下载后把安装包放在tomcat的webapps目录下。
方式二:不用部署tomcat环境,使用java命令直接运行war包,如:java -jar jenkins.war
方式二:二进制方式安装,jenkins下载rmp包:http://pkg.jenkins-ci.org/redhat/下载rpm包到本地。
方式三:在Red Hat发行版上安装Jenkins,配置Jenkins的YUM仓库
一、安装
这里选择二进制方式安装。
[root@centos7 app]# ls
jenkins-2.138.3-1.1.noarch.rpm
[root@centos7 app]# yum install -y jenkins-2.138.3-1.1.noarch.rpm
相关配置文件信息
[root@centos7 app]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
主配置文件信息
[root@centos7 app]# grep '^[^#]' /etc/sysconfig/jenkins
JENKINS_HOME="/var/lib/jenkins" ##jenkins的工作目录,
JENKINS_JAVA_CMD=""
JENKINS_USER="jenkins" ##改为root,后期将使用root账号从gitlab上拉取代码,方便一些关于权限的操作。
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_PORT="8080"
JENKINS_LISTEN_ADDRESS="192.168.239.132" ##默认是本机的所有端口
JENKINS_HTTPS_PORT=""
JENKINS_HTTPS_KEYSTORE=""
JENKINS_HTTPS_KEYSTORE_PASSWORD=""
JENKINS_HTTPS_LISTEN_ADDRESS=""
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"
JENKINS_HANDLER_MAX="100"
JENKINS_HANDLER_IDLE="20"
JENKINS_ARGS=""
如果想配置zabbix的监控可以加上以下的参数
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true \ -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.239.132" \ "
启动Jenkins。
[root@centos7 app]# systemctl start jenkins
问题:长时间停在这个界面
查看Jenkins的状态信息,显示正常启动。
[root@centos7 ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (running) since 一 2020-06-15 06:32:23 CST; 10s ago
Docs: man:systemd-sysv-generator(8)
Process: 36132 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
Process: 36156 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/jenkins.service
└─36179 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/lo...
查看内存,发现内存被占了很多,可能与之前搭建的gitlab服务有关,于是关闭了gitlab并重启服务
[root@centos7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 1.3G 325M 9.4M 211M 336M
Swap: 2.0G 830M 1.2G
[root@centos7 ~]# gitlab-ctl stop
ok: down: alertmanager: 0s, normally up
ok: down: gitaly: 1s, normally up
ok: down: gitlab-monitor: 1s, normally up
ok: down: gitlab-workhorse: 0s, normally up
ok: down: logrotate: 1s, normally up
ok: down: nginx: 0s, normally up
ok: down: node-exporter: 0s, normally up
ok: down: postgres-exporter: 0s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 1s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 0s, normally up
然后重启一下Jenkins
[root@centos7 ~]# systemctl restart jenkins
[root@centos7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 414M 1.0G 2.5M 379M 1.2G
Swap: 2.0G 53M 1.9G
然后进入到这个界面,说明启动成功
上面查看Jenkins状态时,发现使用的java命令路径是/etc/alternatives/java,而/etc/alternatives/java是系统默认的jdk环境变量,即openjdk(也可以使用,但是我们上面指定了自己配置的java环境,所以这里修改一下)
[root@centos7 ~]# ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 72 8月 6 2019 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/bin/java
编辑Jenkins启动文件/etc/init.d/jenkins。
[root@centos7 ~]# vim /etc/init.d/jenkins
...
candidates="
/usr/local/java/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
"
...
注意:全路径后一定要带/bin/java.
重新加载配置文件,并重启服务
[root@centos7 ~]# systemctl daemon-reload
[root@centos7 ~]# systemctl restart jenkins
再次查看Jenkins的状态信息,此时使用的是自己配置的java环境变量。
根据Jenkins配置界面的提示信息,把/var/lib/jenkins/secrets/initialAdminPassword文件中把里面的文本复制出来填到管理员密码中。
[root@centos7 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
a8b38a526f59477a904e7b9c8a4af88a
选择安装Jenkins插件。
插件安装过程中,如果因为某种原因导致有有安装失败的插件,可以后期再单独安装。
创建Jenkins管理员
配置 jenkins URL
登陆 jenkins 界面