Centos安装Jenkins

一、为什么要使用Linux宿主机安装Jenkins,而不是Docker安装?


二、开始安装:

1、安装jdk,因为Jenkins是Java实现的——我已经安装好

2、添加Jenkins下载库到yum源:

官方文档地址:https://www.jenkins.io/doc/book/installing/linux/

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

2023年版(建议jdk11):

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

yum upgrade -y

yum install jenkins -y

systemctl daemon-reload

通过清华源安装指定版本的Jenkins:

yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.354-1.1.noarch.rpm
yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.244-1.1.noarch.rpm

3、如果要配置端口或默认用户,就修改这个文件:

vi /etc/sysconfig/jenkins
## JENKINS_PORT :启动端口
## JENKINS_USER :"root"
##  JENKINS_HOME="/data/jenkins"

如果我们把默认用户修改为root,则还需要修改对应的几个文件夹权限

chown -R root:root /data/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

(当然我们也可以修改Jenkins的对应HOME目录,因为Jenkins工作目录以后可能很大,也是最重要的一个目录,所以我们可以改到我们需要的位置)

4、还要记得把Jenkins的java命令位置添加上:

vi /etc/init.d/jenkins

如图:

image.png

5、启动jenkins:

systemctl enable jenkins
systemctl start jenkins
systemctl status jenkins

image.png

6、在新版中如果systemctl启动失败,还需要修改jenkins.service服务中的用户信息:

[root@jiguiquan ~]# vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root

三、2023年安装新版JENKINS并修改JENKINS_HOME:

1、通过清华源安装指定版本的Jenkins:

yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.390-1.1.noarch.rpm

yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.360-1.1.noarch.rpm

2、修改配置文件 /etc/sysconfig/jenkins:

[root@jiguiquan ~]# vim /etc/sysconfig/jenkins
## JENKINS_PORT :启动端口
## JENKINS_USER :"root"

3、修改新版服务的启动用户:

[root@jiguiquan ~]# vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root

4、修改/etc/init.d/jenkins 中的java位置:

// 把我们的java命令放在最上面
[root@jiguiquan ~]# vim /etc/init.d/jenkins
candidates="
/usr/local/jdk11/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-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
"

5、配置几个核心文件夹的访问权限:

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

6、启动Jenkins并设置开机自启:

systemctl enable jenkins
systemctl start jenkins
systemctl status jenkins

7、为了插件安装速度,可以修改清华源:

[root@i-jiguiquan jenkins]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>


三、使用初始化、安装blueocean

1、获取初始化密钥

image.png

2、直接安装推荐插件(省事)

image.png

然后就是创建第一个用户admin:admin

3、给Jenkins安装 blueocean 插件(管理Jenkins ——> 插件管理)

image.png

安装完,重启jenkins服务生效!


三、配置JDK+MAVEN环境

1、在系统管理 ——> 全局工具配置中,配置JDK + MAVEN的位置:

image.png

image.png

2、在系统管理 ——> 系统配置中,配置JDK + MAVEN的环境变量:

image.png

如果我们还想在Jenkins中使用node,npm,yarn等命令,也可以将node的bin目录配置在此处的PATH变量中即可!

3、然后就可以生效啦:

image.png


补充、可能遇到的问题解决:

1、字体问题:

image.png

不要被他的第一行报错所迷惑,所有的报错第一行都是这个,要看内部具体报错内容:

如果是Font字体问题,那么我们就在Linux上面安装字体即可解决:

yum install fontconfig

之后重启服务!


补充一:Jenkins服务的重启:

1、以admin身份登录;

2、访问链接:

http://10.206.73.154:8080/restart

image.png

然后确认,等待即可!


补充二、我的Maven配置,供参考:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/var/maven/.m2</localRepository>
 
<pluginGroups>
</pluginGroups>
 
<proxies>
</proxies>
 
<servers>
    <server>
      <id>registry.cn-hangzhou.aliyuncs.com</id>
      <username>18652907029</username>
      <password>********</password>
    </server>
    <server>
      <id>10.206.73.155</id>
      <username>admin</username>
      <password>********</password>
    </server>
</servers>
 
<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus Aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
</mirrors>
<profiles>
</profiles>
</settings>


补充三:Jenkins如何向外部机器发送文件

1、借助Publish Over SSH插件完成,安装插件:

image.png

2、在系统管理系统配置中,添加一个SSH Server:

image.png

3、语法生成器中使用sshPublisher生成JenkinsFile语法:

sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s-test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'pipeline.yml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])


补充四、如果在Jenkins最后一步,触发K8s发版:

在JenkinsFile最后一步增加ssh执行命令:

ssh root@10.206.73.136 kubectl rollout restart deployment jiguiquan-nginx -n iotplat

相当于使用ssh执行远程命令,原理很简单!


补充五、如何使用Jenkins + gitlab的 webhook 完成CI

1、创建一个新的用户:

系统管理 ——> 管理用户 ——> 新增用户

image.png

2、当前用户至少登录一次,然后设置添加API Token:

image.png

保存好,只会显示一次!

3、找到对应的项目,配置“触发远程构建”:

image.png

# 最终拼接好的webhook钩子为:
http://jiguiquan:11366983b539496b85f40647b29a0d2910@10.206.73.154:8080/job/login-center/build?token=jiguiquan

4、设置 gitlab 允许内部地址不受信的钩子:

当gitlab添加钩子时,如果不允许“http://ip:端口”这样的钩子,那么我们就得以root账户登陆后,修改全局配置:

image.png

然后去对应的项目上添加Web Hook钩子即可啦!

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐