Jenkins搭建教程
jenkins简介
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,它提供了数百个插件来支持构建、部署、自动化任何项目,使软件的持续集成变成可能。Jenkins只是一个平台,真正运作的都是插件。
Jenkins官网:https://jenkins.io/
下面就聊聊我在Ubuntu18.04上的搭建过程吧~~
环境部署
新建jenkins用户
用这个用户运行jenkins
# useradd -d /export/jenkins -m -s /bin/bash jenkins
# passwd jenkins
# chmod u+w /etc/sudoers
# vim /etc/sudoers
jenkins ALL=(ALL:ALL) ALL
# su jenkins
java环境
因为Jenkins是基于Java开发的,所以一定要有Java环境
安装jdk:
$ sudo apt-get install openjdk-8-jre
$ sudo apt-get install openjdk-8-jdk
$ vim /etc/profile #添加环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
$ source /etc/profile
验证安装成功:
$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.16.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
git环境
$ sudo apt-get install git
jenkins安装
- 下载jenkins
可以直接在jenkins官网上下载
也可以用命令下载:
$ sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
我个人比较推荐直接下载war包的下载方式
2. 设置jenkins环境变量
$ vim /etc/profile
$ export JENKINS_HOME=/export/jenkins
$ source /etc/profile
jenkins启动
启动命令
$ java -jar /usr/share/jenkins/jenkins.war --httpPort=8081
jenkins默认端口号是8080,这里通过–httpPort可以更改端口号,如果8080端口已被其他程序占用时,可以自行更改。
启动的过程中大家注意看打印信息,
http://xxxx:8081/
初始密码:********************
This may also be found at: /export/jenkins/.jenkins/secrets/initialAdminPassword
·http://xxxx:8081/ :这个是jenkins登录的网页URL
·初始密码:jenkins启动时自动创建了一个管理员admin,这个是初始密码,待会儿登录时会用到。忘记了也没有关系,它保存在/export/jenkins/.jenkins/secrets/initialAdminPassword(这里是我前面指定了JENKINS_HOME,默认是放在/root/.jenkins/secrets/initialAdminPassword)
如果这里没有留意到,后面网页登录的时候也会有提示的
相关配置
jenkins所有相关配置在/export/jenkins/.jenkins下面
jenkins网页登录
- jenkins运行起来后,打开浏览器,输入URL
- 使用admin+密码登录
至此Jenkins就可以开始使用拉~~
修改admin初始密码
一般自动生成的初始密码很长一串,不好记忆,所以最好改成一个方便记忆的密码。改密码有两种方式:一是通过网页修改,二是通过配置文件修改
- 通过网页修改admin密码
系统管理—管理用户—点击admin用户的管理图标—找到“密码”重新设置
设置成功后,需要重新登录 - 通过配置文件修改admin密码
$ vim /export/jenkins/.jenkins/users/admin_6323890843932636880/config.xml
替换下图中#jbcrypt:后面的字符串即可,这个是用jBCrypt加密工具生成的
String pwd = BCrypt.hashpw("123456abc", BCrypt.gensalt());
System.out.println("加密:"+pwd);
遇到的问题&解决办法
- 启动时报错Caused by: java.net.BindException: Address already in use
Apr 26, 2019 12:55:33 PM winstone.Logger logInternal
SEVERE: Container startup failed
java.io.IOException: Failed to start Jetty
at winstone.Launcher.(Launcher.java:186)
at winstone.Launcher.main(Launcher.java:354)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at Main._main(Main.java:375)
at Main.main(Main.java:151)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:339)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:307)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:395)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at winstone.Launcher.(Launcher.java:184)
… 7 more
看到“Caused by: java.net.BindException: Address already in use”所以需要修改端口号:
# vim /etc/default/jenkins
# port for HTTP connector (default 8080; disable with -1)
HTTP_PORT=8081
或者启动指令中加上–httpPort
- 第一次登录网页后显示空白
$ vim .jenkins/config.xml
<disableSignup>false</disableSignup>