CentOS 7 下Jenkins安装部署教程

一、前言

1、 Jenkins是什么?

Jenkins是一个开源的支持自动化构建、部署等任务的平台。基本上可以说是持续集成(CI)、持续发布(CD)不可或缺的工具。

官网:https://jenkins.io/

2、本篇环境信息

工具/环境

版本

Linux Server

CentOS 7

Jenkins

2.121.2

JDK

1.8.0_181

Nginx

1.14.0

3、准备工作

  • 安装JDK

参考:https://ken.io/note/centos-java-setup

将jdk1.8.0_181部署在目录/usr/java/ 部署完成后,jdk的根目录就是:/usr/java/jdk1.8.0_181/

  • 安装Nginx(非必要步骤)

参考:https://ken.io/note/centos-quickstart-nginx-setup

部署Nginx是为了方便我们通过域名访问Jenkins,如果无此需求可忽略次操作

二、Jenkins安装

1、Yum安装

  • yum源导入
#添加Yum源
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
  • 安装
sudo yum install -y jenkins

2、开放端口

Jenkins站点的默认监听端口是8080

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

3、配置Java可选路径

因为Jenkins默认的java可选路径不包含我们部署的jdk路径,所以这里要配置一下,不然Jenkins服务会启动失败

#修改jenkins启动脚本
sudo vi /etc/init.d/jenkins

#修改candidates增加java可选路径:/usr/java/jdk1.8.0_181/bin/java
candidates="
/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
/usr/java/jdk1.8.0_181/bin/java
"

4、启动Jenkins并设置Jenkins开机启动

#重载服务(由于前面修改了Jenkins启动脚本)
sudo systemctl daemon-reload

#启动Jenkins服务
sudo systemctl start jenkins

#将Jenkins服务设置为开机启动
#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on

浏览器输入 http://<ip address>:8080 访问Jenkins

三、Nginx配置(非必要步骤)

1、配置Nginx反向代理Jenkins

  • 新建配置文件
#新增Jenkins专用Nginx配置文件
sudo vi /etc/nginx/conf.d/jenkins.conf

#输入以下内容并保存
server {
    listen       80;        #监听80端口
    server_name  jenkins.ken.io; #监听的域名
    access_log  /var/log/nginx/jenkins.access.log main;
    error_log  /var/log/nginx/jenkins.error.log error;

    location / {            #转发或处理
        proxy_pass http://127.0.0.1:8080; 
    }
    error_page   500 502 503 504  /50x.html;#错误页
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  • 重载Nginx配置
sudo nginx -s reload

2、配置SELinux

如果不配置SELinux,通过Nginx反向代理访问,可能会产如下错误

#查看错误信息
/var/log/nginx/jenkins.error.log

#错误信息示例
connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1
  • 方法1:setsebool -P httpd_can_network_connect 1
  • 方法2:
#关闭SELinux: 
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 
#重启:
reboot

修改本地hosts,将域名jenkins.ken.io指向CentOS IP,通过域名测试访问

四、Jenkins初始化

1、解锁Jenkins

查询root账号默认密码

cat /var/lib/jenkins/secrets/initialAdminPassword

输入密码并解锁

2、选择插件

这里直接选择“安装推荐的插件”即可

选择安装的插件后会进入插件安装界面

3、添加管理员

插件安装完成后会自动进入添加管理员界面

4、配置Jenkins URL

这里的URL指的是默认访问Jenkins的地址。 默认是是http://:8080,如果你通过Nginx配置了域名,那么直接填写配置的域名即可。

5、开始使用Jenkins

配置完Jenkins URL之后就完成了整个Jenkins配置引导

点击“开始使用Jenkins”就会进入Jenkins主页

搞定~

五、备注

  • 本文参考

https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions

https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx?rq=1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT可乐

eclipse在debug模式下总是自动进入到ThreadPoolExecutor类中

  当我们将web项目发布到tomcat服务器中,并且以debug模式启动的时候,总是自动跳转到 ThreadPoolExecutor 类中,如下: ? 解决办...

2165
来自专栏积累沉淀

struts2国际化

在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 jsp页面的国际化 第一步 ...

2285
来自专栏ASP.NET MVC5 后台权限管理系统

.Net 转战 Android 4.4 日常笔记(10)--ADT集成环境更新SDK

今天下载了一份原来来参考,却发现SDK版本偏低我没有安装 用SDK Manager却一直更新不了出现 Failed to fetch URL https://d...

1906
来自专栏Python爬虫与数据挖掘

在Windows下如何创建指定的虚拟环境

前几天给大家分享了如何在默认的情况下创建虚拟环境,没来得及上车的伙伴,可以戳这篇文章:在Windows下如何创建虚拟环境(默认情况下)。今天小编给大家分享一下,...

681
来自专栏Youngxj

emlog添加人体艺术时钟组件

1654
来自专栏xingoo, 一个梦想做发明家的程序员

Oracle卸载

1.关闭oracle所有的服务。可以在windows的服务管理器中关闭; 2.打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE...

27410
来自专栏游戏杂谈

windows下codelite的使用

codelite官方打不开,从这里下载安装程序,地址:http://sourceforge.net/projects/codelite/

1452
来自专栏电光石火

获得PHP版本信息及版本比较

version_compare是一个版本比较工具,当然也可以作为其他的版本比较工具:

853
来自专栏静默虚空的博客

[JSP]JSP 简介

1.1 概述 1.1.1 什么是 JSP? JSP 全称是 Java Server Pages,是一种动态网页开发技术。 它与 PHP、ASP、ASP.NET ...

2666
来自专栏Android相关

Gradle For Android(1)--使用AndroidStudio开始Gradle

build.gradle是为了构建Android项目的脚本。Gradle构建脚本并不是使用传统的XML,而是基于Groovy的domain-specific l...

983

扫码关注云+社区

领取腾讯云代金券