企业级devops自动化部署学习 (2)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编译打包已完成

 

posted @ 2022-07-06 01:55  筱筱创  阅读(334)  评论(0编辑  收藏  举报