ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

企业级devops自动化部署学习 (2)jenkins安装与使用

2022-07-06 02:00:07  阅读:239  来源: 互联网

标签:插件 central devops 企业级 maven Jenkins jenkins 安装


上面我们已经在192.168.80.133服务器安装了gitlab并成功将本地项目推送到gitlab远程仓库,接下来,我们在另外一台服务器192.168.80.134上安装jenkins

 

一:安装jdk

Jenkins需要依赖JDK,所以先安装JDK1.8 

yum install java-1.8.0-openjdk* -y

安装目录为:/usr/lib/jvm

安装好后,就自动配置好了环境变量:

 

二:安装jenkins

1、获取jenkins的rpm包

此处我通过华为云镜像拉取

wget https://repo.huaweicloud.com/jenkins/redhat/jenkins-2.356-1.1.noarch.rpm

2、安装jenkins

rpm -ivh jenkins-2.356-1.1.noarch.rpm

到这里,jenkins已经安装完,

默认安装目录: /usr/lib/jenkins 

工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME)

 

3、修改Jenkins配置 

vim /etc/sysconfig/jenkins

 修改内容如下: 

JENKINS_USER="root"
JENKINS_PORT="8888"

JENKINS_USER 必须修改,否则权限不足

JENKINS_PORT可以不修改,为了避免与tomcat服务器端口冲突,此处还是要改改

 

 

4、启动jenkins并查看状态

systemctl start jenkins
systemctl status jenkins

此处我们查看到,只通过修改第四步文件vim /etc/sysconfig/jenkins还不能够修改端口成功,所启动的jenkins还是默认的8080端口,下面到jenkins加载目录中修改端口尝试下能不能将端口修改成功

vim /usr/lib/systemd/system/jenkins.service

重新加载配置文件

systemctl daemon-reload

重启jenkins再来查看jenkins所运行的端口

jenkins端口修改成功

 

5、防火墙开放http服务以及8888端口

firewall-cmd --add-service=http --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

6、访问jenkins:http://192.168.80.134:8888/

7、获取admin账户初始化密码并登录

cat /var/lib/jenkins/secrets/initialAdminPassword

7、跳过插件安装

 

9、添加管理员账户

 

至此,jenkins的安装配置已经完成

 

 

三、jenkins的基本使用

插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。

 

1、安装中文汉化插件,可以使jenkins汉化

Manage Jenkins->Manage Plugins->在"available"tab列搜索"Chinese"->下载后重启

重启jenkins后,可以看到汉化成功,不过只能支持部分汉化,没有做到全量汉化

 

 

2、Jenkins用户权限管理

安装[Role-based Authorization Strategy]插件

Jenkins用户权限管理需要使用到【Role-based Authorization Strategy】插件,下面进行安装

 

安装重启后,在Manage Jenkins管理页面就会看到多出个Configure Glogal Security的安全配置选项

 

开启权限全局安全配置,授权策略选择为【Role-Based Strategy】后保存

 

 

创建角色

这里有三种角色,分别对三种角色进行介绍。

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色

Item role(项目角色):针对某个或者某些项目的角色

Node role(节点觉得):针对节点相关的权限 

 

接下来我们创建三个角色。

baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,则会报错误

role1:该角色为项目角色。使用正则表达式绑定"auto.*",意思是只能操作auto开头的项目。

role2:该角色也为项目角色。使用正则表达式绑定"test.*",意思是只能操作test开头的项目。

 

创建用户

 

分别新增zhangsan,lisi两个用户

 

 

用户绑定角色

为zhangsan绑定role1角色,为lisi绑定role2角色

 

 

 

创建项目测试

管理员创建两个项目,auto001,test001

 

用zhangsan用于登录的结果:

用lisi用户登录的结果:

 

 

3、Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件。

 

安装Credentials Binding插件

 

安装好后,在manage Jenkins中就多了【凭据配置】和【Manage Credentials】选项

 

进行【凭据配置】

5种凭据的解析:

Username with password:用户名和密码

SSH Username with private key: 使用SSH用户和密钥

Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。

Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token

Certificate:通过上传证书文件的方式

常用的凭据有:Username with password(用户密码)和SSH Username with private key(SSH秘钥)

 

使用Git管理工具到gitlab拉取项目源码,演示Jenkins如何管理Gitlab的凭证。

为了让Jenkins支持从Gitlab拉取源码,需要在Jenkins汇总安装Git插件以及在CentOS7服务上安装Git工具

1、Jenkins 上安装git插件

2、 CentOS7服务器安装git工具

yum install git -y
git --version #安装完后查看版本

 

3.1、添加凭证,选择用户密码类型

 

测试凭证是否可用

(1)配置前面新建的test001项目

(2)在源码管理处选择Git,其中Repository URL为gitlab项目中复制出来的URL

 

(3)构建项目

 

(4)检查构建日志

 

(5)查看/var/lib/jenkins/workspace/ 目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

 

 

 

3.2 新增SSH秘钥类型凭证

SSH免密登录示意图:

 

1、使用root用户生成公钥和私钥
ssh-keygen -t rsa

在/root/.shh/ 目录保存了公钥和私钥,其中id_rsa是私钥文件,id_rsa.pub是公钥文件

 

2、把公钥放到gitlab中

 

3、在Jenkins中添加SSH凭证,配置私钥 

 

4、测试凭证是否可用

(1)新建test002项目,源码管理选择git,凭证为SSH方式

 

构建后查看控制台

 

再到jenkins工作空间查看是否已经拉取代码成功。

到此,jenkins通过SSH方式拉取gitlab代码也成功了

 

 

4、Maven安装与配置

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

 

1、服务器安装maven

wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

下载完后解压

tar -zxvf apache-maven-3.6.3-bin.tar.gz

配置环境变量

vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

 

查看配置是否生效

source /etc/profile  #使配置生效
mvn -v   #查看Maven版本

 

2、在jenkins中全局工具配置中关联JDK和Maven

 

 

 

3、添加jenkins全局变量

 

 

4、修改maven的setting文件

mkdir /root/repository #创建本地仓库目录
vim /opt/apache-maven-3.6.3/conf/settings.xml

(1) 将本地仓库地址修改为:/root/repository

(2)追加maven仓库镜像

<mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>
        <mirror>
            <id>ibiblio</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
        </mirror>
        <mirror>
            <id>jboss-public-repository-group</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
        </mirror>
        <mirror>
            <id>google-maven-central</id>
            <name>Google Maven Central</name>
            <url>https://maven-central.storage.googleapis.com
            </url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <!-- 中央仓库在中国的镜像 -->
        <mirror>
            <id>maven.net.cn</id>
            <name>oneof the central mirrors in china</name>
            <url>http://maven.net.cn/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>

 

 

5、测试Maven配置是否成功

使用jenkins前面测试的test002项目进行配置

构建->增加构建步骤->Execute Shell

 

 

输入命令:mvn clean package

 

再次构建,查看控制台输出,再次构建,如果可以把项目打成war包,代表maven环境配置成功。

我当前次构建失败了,我猜想原因是因为我新建的/root/repository的权限不足,下面我们对该目录添加权限

chmod 777 /root/repository

 

添加权限后再次构建

还是失败了,此处我猜想,估计我将将repository仓库目录放在/root目录下面估计会有Linux系统其他阻塞问题,所以我将仓库修改到了/opt/repo下,再执行构建

 

 

终于成功了,接下来到/opt/repo目录下查看是否下载依赖包成功,可以看到相关的依赖包下载成功

再查看jenkins工作空间下jar包是否生成成功

ls /var/lib/jenkins/workspace/test002/target/

 

此时我们执行jar包即可启动服务

java -jar gitlab_test_demo-0.0.1-SNAPSHOT.jar

 

我们在访问一下该项目:http://192.168.80.134:8080/hello

成功访问到了项目,自此,jenkins调用maven编译打包已完成

 

标签:插件,central,devops,企业级,maven,Jenkins,jenkins,安装
来源: https://www.cnblogs.com/lrc123/p/16445018.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有