CentOS7 安装Jenkins
Jenkins基本介绍:
是目前最流行的一款持续集成及自动化部署工具。
Jenkins 和 Hundson 之间的关系:2009 年,甲骨文收购了 Sun 并继承了 Hudson 代 码库。在 2011 年年初,甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的 项目:
- Jenkins:由大部分原始开发人员组成
- Hudson:由甲骨文公司继续管理
所以 Jenkins 和 Hudson 是两款非常相似的产品。- Jenkins 可以整合 GitHub 或 Subversion
- Husband 也可以整合 GitHub 或 Subversion
二者既然是同源的工具软件,操作和指导思想就是接近的服务器简介:
- 本人买了一台华为弹性云服务器(Centos 7.6),你们可以买阿里云、腾讯云等服务器厂商的
- 买服务器的原因:可以访问外网
- 使用Jenkins + SVN时,可以使用自己的虚拟机,不要求外网,但必须能访问外网
- 使用Jenkins + Git时,必须使用服务器,因为内网地址 GitHub 是无法访问到的。
important:安装前的准备
1、CentOS7下安装JDK、Tomcat及Maven ,链接
2、CentOS7服务器安装Git,链接
mode1:安装依赖于tomcat运行的Jenkins
- 访问Jenkins下载地址==》https://www.jenkins.io/download/
- 点击如图按钮 下载war包
- 也可以使用wget命令
wget http://mirrors.jenkins.io/war-stable/2.235.2/jenkins.war
- 把 jenkins.war 放在 Tomcat 解压目录/webapps 目录下
cp jenkins.war /usr/local/apache-tomcat-9.0.20/webapps/
- 打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集
vim /usr/local/apache-tomcat-9.0.20/conf/server.xml
找到 <Connector port="8080" protocol="HTTP/1.1" 标签末尾加入
URIEncoding="UTF-8"
修改后:
- 启动 Tomcat 并通过浏览器访问
/usr/local/apache-tomcat-9.0.20/bin/startup.sh
访问地址:
http://121.37.4.145:8080/jenkins
121.37.4.145是本人服务器的ip,记得安全组配置开放8080端口;就会出现如图界面:
至此,Jenkins服务的安装完毕,下面介绍一个Jenkins的配置。
mode2:命令行安装Jenkins(推荐)
下面默认安装的是最新版的Jenkins,如果你想手动下载指定版本的Jenkins,也可以:地址
- 安装
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 install -y jenkins
-
如果报错:Public key for jenkins-2.x-x.x.noarch.rpm is not installed,根据提示信息可以看到Jenkins的rpm包保存地址
# 解决办法:找到Jenkins的rpm包位置,手动安装 rpm -ivh /var/cache/yum/x86_64/7/jenkins/packages/jenkins-2.249-1.1.noarch.rpm
- 修改Jenkins配置信息
vim /etc/sysconfig/jenkins
修改监听端口(可任意,但不能与系统端口21等冲突)
JENKINS_PORT="8888"
为了不因为权限出现各种问题,这里直接修改用户为root
JENKINS_USER="root"
- 修改目录权限
chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins
- 配置jdk
vim /etc/init.d/jenkins
找到 /usr/bin/java 替换为your java path
/usr/local/java/jre/bin/java
如果是ubuntu,将 #JAVA=`type -p java` 替换为 your java path
- 添加jenkins 到docker用户组
gpasswd -a jenkins docker
- 启动/ 停止/ 重启 Jenkins服务
systemctl start jenkins.service # 启动 jenkins systemctl enable jenkins.service # 开机启动 systemctl status jenkins.service # jenkins 状态 systemctl sotp jenkins.service # 停止 jenkins
- 在浏览器中打开(ip地址:8888),初次访问需要使用初始密码,使用以下命令获取
cat /var/lib/jenkins/secrets/initialAdminPassword
以后登录:
用户名:admin # 如果是依赖于tomcat运行的Jenkins 密码:cat /root/.jenkins/secrets/initialAdminPassword # 如果是命令行安装的Jenkins 密码:cat /var/lib/jenkins/secrets/initialAdminPassword
- 更改插件的设置
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml # 修改 https://updates.jenkins.io/update-center.json 为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
重启服务
service jenkins restart
- 卸载(按需,可选)
# 卸载软件 rpm -e jenkins # 删除遗留文件 find / -iname jenkins | xargs -n 1000 rm -rf
重点:安装Jenkins后的配置
- 获取解锁密码
# 如果是依赖于tomcat运行的Jenkins cat /root/.jenkins/secrets/initialAdminPassword # 如果是命令行安装的Jenkins cat /var/lib/jenkins/secrets/initialAdminPassword
得到密文,这里填入的密文同时也是 admin 账号的密码。复制到上图的密码输入框中,点击继续
- 选择插件安装方式
※注意:这个步骤中如果选择了安装插件则 Linux 必须能够联网。
按钮点击一次即可,响应有点慢,需要耐心等待,安装过程如下: -
弹窗:创建一个管理员用户,本人选择“使用admin账户继续”,后面有需要仍然有机会注册新账户。
- 弹窗:实例配置,不需修改,直接点击【保存并完成】按钮
1)全局安全配置,可选
开发环境我们选择任何用户做任何事,生产环境不建议这样子(应该选择登录用户可以做任何事),这里只是方便学:
2)插件管理
点击【已安装】即可查看刚刚默认安装的插件;这里我们点击【可选插件】,在两厘米上面的search框输入插件名称:
1、安装插件:Docker
2、安装插件:Docker Compose Build Step Plugin
3、安装插件:Deploy to container
点击下方的直接安装,这个步骤可能失败,多试几次即可
3)全局工具配置
配置上maven、git和jdk:
依次填入:(截图是之前的配置,本人后来为了方便修改了服务器maven的文件夹名称,所以按照下面的来即可)
/usr/local/maven/conf/settings.xml /usr/local/maven/conf/settings.xml MyJDK /usr/local/java MyGit /usr/local/git/bin/git MyMaven /usr/local/maven MyDocker /var/lib/docker
重点:Jenkins配置docker 构建所需要的cloud 环境
如果不配置,项目构建是时会保错:
ERROR: Build step failed with exception java.lang.RuntimeException: Could not find the cloud this project was built on at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher.getDockerAPI(DockerBuilderPublisher.java:248) at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher.perform(DockerBuilderPublisher.java:463) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:112) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741) at hudson.model.Build$BuildExecution.build(Build.java:206) at hudson.model.Build$BuildExecution.doRun(Build.java:163) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504) at hudson.model.Run.execute(Run.java:1880) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:428) Build step 'Build / Publish Docker Image' marked build as failure Finished: FAILURE
前提:安装了docker插件,具体步骤看前一个标题
- 进入系统管理页面,点击下图:
-
需要安装 docker 插件,才会有:
-
在 configure 页面下 最底下,点击跳转过去,重新配置一下 cloud -》 docker 配置
配置如下:
重点:Jenkins关联github账户
Github中获取访问token值,需要一个对项目有写权限的账户
首先我们要创建一个:
GitHub->setting->Developer setting->Personal access tokens->点击Generate new token,快捷链接
内容填写如下:
点击【Generate token】提交后:
Jenkins中添加Github的token凭证:
系统管理->系统配置->Github->添加Github server->添加Secret text凭证->连接测试
同时,勾选【为github指定另外一个hook url】(配置Jenkins在Hook URL中用于监听Github的Post请求,然后进行自动构建):
注意:在操作过程,点击连接测试,可能会提示:Failed to validate the account,首先请确保添加凭证的类型是Secret text,其次secret值填写的是步骤3中生成的token值
Secret text凭证添加如下:
类型需选择Secret text,Secret处输入Github中上面生成的token值
记住这个Hook URL!!!如果配置好了,Hook URL一般为:
1、如果是依赖于tomcat运行的Jenkins==》http://tomcat服务器ip:tomcat运行端口/jenkins/github-webhook/
2、如果是命令行安装运行的Jenkins==》http://jenkins服务器ip:jenkins监听端口/github-webhook/