Jenkins自动化部署

1.Jenkins安装和持续集成

linux中Gitlab的安装

1.安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfix

2.开启以下服务并且设置为开机自启动

systemctl enable sshd && sudo systemctl start sshd
systemctl enable postfix && systemctl start postfix

如果关闭防火墙systemctl stop firewalld就不需要做以上配置

3.下载gitlab包,并且安装

在线下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
安装:
rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

在这里插入图片描述

4.修改gitlab配置

vi /etc/gitlab/gitlab.rb

修改gitlab访问地址和端口,默认为80,这里改为82

external_url 'http://192.168.0.100:82'
nginx['listen_port'] = 82

在这里插入图片描述

在这里插入图片描述

5.重新加载配置并启动gitlab

gitlab-ctl reconfigure
gitlab-ctl restart

在这里插入图片描述

在这里插入图片描述

启动成功后,使用网页访问该gitlab,地址http://192.168.0.100:82

看到以下修改管理员root密码的页面,修改密码
在这里插入图片描述

在这里插入图片描述

登录成功的界面,
在这里插入图片描述

Gitlab添加组、创建用户、创建项目

1)创建组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2)在组中创建项目

以刚才创建的新用户身份登录到Gitlab,然后在用户组中创建新的项目
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3)创建用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在用户创建后,我们需要修改密码

在这里插入图片描述

在这里插入图片描述

4)将用户添加到组中

在这里插入图片描述

选择某给需要添加新成员的组,进行成员管理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. GitLab用户权限管理
GitLab用户在组中有五种权限由低到高:Guest、Reporter、Developer、Master、Owner。

- Guest
 可以创建issue、发表评论、不能读写版本库。
 

- Reporter
 可以克隆代码,不能提交,QA、PM可以赋予这个权限。
 

- Developer
 可以克隆代码、开发、提交、push、RD可以赋予这个权限。
 

- Master
 可以创建项目、添加 tag 、保护分支、添加项目成员、编辑项目、核心RD负责人可以赋予这个权限。
 

- Owner
 可以设置项目的访问权限-Visibility Level、删除项目、迁移项目、管理组成员、开发组leader可以赋予这个权限。
 

2. GitLab中的组和项目有三种访问权限
GitLab中的组和项目有三种访问权限:Private、Internal、Public。

- private
 只有组成员可以看到。
 

- internal
 只要登录的用户就能看到。
 

- public
 开源的所有的人都可以看到。
 

3. 附加: PM、RD、QA、OP英文缩写含义
- PM
 Product Manager, 产品经理
 

- RD
 Research and Development engineer,研发工程师
 

- QA
 Qualtiy Assurance,质量保证。
 

- OP
 Operator,操作员,管理员。

退出当前用户,登录新的用户zhangsan
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5)源码上传到Gitlab仓库

1)项目创建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果部署好,可以访问该页面就成功啦!

在这里插入图片描述

1)开启版本控制

在这里插入图片描述

在这里插入图片描述

2)提交代码到本地仓库

先Add到缓存区

在这里插入图片描述

再Commit到本地仓库
在这里插入图片描述

在这里插入图片描述

3)推送到Gitlab项目仓库中

在这里插入图片描述

在这里插入图片描述

拷贝Gitlab的项目中url地址

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

刷新

在这里插入图片描述

持续集成环境-Jenkins安装

192.168.0.101环境

1)安装JDK

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

1.准备JDK安装包

我这⾥下载的是jdk-8u161-linux-x64.tar.gz 安装包,并通过SecureFX将其直接上传到了 root ⽬录下
在这里插入图片描述

在这里插入图片描述

2.卸载已有的openjdk

通过命令查看是否安装有openjdk

rpm -qa | grep java

在这里插入图片描述

把带有openjdk的包进行卸载,

例如:

yum -y remove java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64

删除后查看是否还有openjdk,直到没有,可进行下一步

在这里插入图片描述

3.创建jdk存放⽬录并解压

1.创建目录

 mkdir /usr/local/java
 cd /usr/local/java

在这里插入图片描述

2.解压

tar -zxvf /root/jdk-8u161-linux-x64.tar.gz -C ./

在这里插入图片描述

注:解压完成后,可以看到/usr/local/java目录中,会有一个文件夹jdk1.8.0_161

4.配置jdk环境变量

编辑/etc/profile ⽂件,在⽂件尾部加⼊如下 JDK 环境配置即可

Vi /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

在这里插入图片描述

然后执⾏如下命令让环境变量⽣效

source /etc/profile

5.JDK安装结果

java -version
javac

在这里插入图片描述

到此为安装jdk成功

2)获取jenkins安装包

下载页面:https://jenkins.io/zh/download/

安装文件:jenkins-2.190.3-1.1.noarch.rpm

3)把安装包上传到192.168.66.101服务器,进行安装

在这里插入图片描述

安装指令

rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

在这里插入图片描述

4)修改Jenkins配置

vi /etc/sysconfig/jenkins

修改内容如下:

JENKINS_USER="root"
JENKINS_PORT="8888"

在这里插入图片描述

在这里插入图片描述

5)保存退出编辑,然后启动Jenkins

systemctl start jenkins

6)打开浏览器访问

http://192.168.0.101:8888/ 注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口

7)获取并输入admin账户密码

在这里插入图片描述

cat /var/lib/jenkins/secrets/initialAdminPassword 

在这里插入图片描述

在这里插入图片描述

8)跳过插件安装

在这里插入图片描述
在这里插入图片描述

9)添加一个管理员账户,并进入Jenkins后台,

在这里插入图片描述

实例配置,保存并完成
在这里插入图片描述

开始使用Jenkins

在这里插入图片描述

在这里插入图片描述

持续集成环境-Jenkins插件管理

修改Jenkins插件下载地址

Jenkins->Manage Jenkins->Manage Plugins,点击Available

在这里插入图片描述

在这里插入图片描述

以上的操作是为了把Jenkins官方的插件列表下载到本地

修改地址文件,替换为国内插件地址

cd /var/lib/jenkins/updates

在这里插入图片描述

sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i
's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

在这里插入图片描述

最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述

在这里插入图片描述

提交更改后,在浏览器输入: http://192.168.0.101:8888/restart ,重启Jenkins。

在这里插入图片描述

下载中文汉化插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

更新jenkins版本

出现报红的异常,是版本太低,可以自行升级https://blog.csdn.net/jiayou516/article/details/116797405

持续集成环境-Jenkins用户权限管理

安装Role-based Authorization Strategy插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建角色

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 
Project roles(项目角色):针对某个或者某些项目的角色 
Slave roles(奴隶角色):节点相关的权限

添加全局角色:baseRole

在这里插入图片描述

给该角色绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。

在这里插入图片描述

添加项目角色,role1,role2项目角色,并绑定匹配的项目名称

在这里插入图片描述

保存

在这里插入图片描述

创建用户

在这里插入图片描述

分别创建两个用户:jack和eric

在这里插入图片描述

在这里插入图片描述

给用户分配角色

在这里插入图片描述

绑定规则如下:

eric用户分别绑定baseRole和role1角色

jack用户分别绑定baseRole和role2角色

添加全局角色
在这里插入图片描述

在这里插入图片描述

添加项目角色的用户

在这里插入图片描述

为用户分配项目角色
在这里插入图片描述

保存。

创建项目测试权限

以jenkins管理员账户创建两个项目,分别为web_demo01和javaweb_demo01

创建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

退出当前jenkins用户,分别登录eric,和jack

结果为:

eric用户登录,只能看到web_demo01项目

在这里插入图片描述

jack用户登录,只能看到javeweb_demo项目

在这里插入图片描述

持续集成环境-Jenkins凭证管理

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

如果是版本比较高的,比如2.293版本的jenkins是自带的凭据

安装Git插件和Git工具

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

在这里插入图片描述

虚拟机上安装Git工具:

yum install git -y 

git --version 

在这里插入图片描述

用户密码类型

1)创建凭证

Jenkins->凭证->系统->全局凭证->添加凭证

选择"Username with password",输入Gitlab的用户名和密码,点击"确定"。

在这里插入图片描述

在这里插入图片描述

2)测试凭证是否可用

创建一个FreeStyle项目:新建Item->FreeStyle Project->确定

在这里插入图片描述

找到"源码管理"->“Git”,

在这里插入图片描述

复制gitlab项目的地址

在这里插入图片描述

jenkins的test01项目的源码管理选择Git,把gitlab项目的URL粘贴到Repository URL

Credentials选择刚添加的凭证,并保存

在这里插入图片描述

保存配置后,点击构建”Build Now“ 开始构建项目

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

SSH密钥类型

SSH免密登录示意图

在这里插入图片描述

1)使用root用户生成公钥和私钥

ssh-keygen -t rsa
cd /root/.ssh/id_rsa

在/root/.ssh/目录保存了公钥和使用

在这里插入图片描述

id_rsa:私钥文件

id_rsa.pub:公钥文件

2)把生成的公钥放在Gitlab中

以root账户登录->点击头像->Settings->SSH Keys

复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"

在这里插入图片描述

在这里插入图片描述

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

在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复

制过来,例如

在这里插入图片描述

在这里插入图片描述

4)测试凭证是否可用

新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证

在这里插入图片描述

克隆gitlab项目的ssh地址

在这里插入图片描述

在这里插入图片描述

同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!

在这里插入图片描述

在这里插入图片描述

持续集成环境-Maven安装和配置

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

1.安装Maven

这⾥下载的是 apache-maven-3.6.3-bin.tar.gz 安装包,并将其放置于提前创建好的 /opt/maven⽬录下。

 mkdir /opt/maven

通过文件传输工具把apache-maven-3.6.3-bin.tar.gz上传到目录/opt/maven

在这里插入图片描述

进入到/opt/maven目录

cd /opt/maven

将压缩包解压到当前文件夹

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

解压完成,生成apache-maven-3.6.3文件夹

2.配置maven加速镜像源(aliyun)

1.编辑修改/opt/maven/apache-maven-3.6.3/conf/settings.xml

vi /opt/maven/apache-maven-3.6.3/conf/settings.xml

2.在 标签对⾥添加以下内容:

<mirror>
 <id>alimaven</id>
 <name>aliyun maven</name>
 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 <mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述

3.配置环境变量

编辑修改/etc/profile⽂件,在⽂件尾部添加如下内容,配置 maven 的安装路径,保存退出

vi /etc/profile
export MAVEN_HOME=/opt/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

在这里插入图片描述

执行命令source /etc/profile,刷新环境变量,让maven环境的路径配置生效

source /etc/profile

4.安装结果

mvn -v

在这里插入图片描述

能够打印出版本信息,说明安装和配置成功

5.全局工具配置关联JDK和Maven

Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下:

在这里插入图片描述

Jenkins->Global Tool Confifiguration->Maven->新增Maven,配置如下:

在这里插入图片描述

6.添加Jenkins全局变量

Manage Jenkins->Configure System->Global Properties ,添加三个全局变量JAVA_HOME、M2_HOME、PATH+EXTRA

在这里插入图片描述

7.测试Maven是否配置成功

使用之前的gitlab密码测试项目,修改配置

在这里插入图片描述

构建->增加构建步骤->Execute Shell
在这里插入图片描述

输入

mvn clean package

在这里插入图片描述

再次构建,如果可以把项目打成war包,代表maven环境配置成功啦!

在这里插入图片描述

在这里插入图片描述

查看生成war包的路径,可以看到生成了一个web_demo-1.0-SNAPSHOT.war

在这里插入图片描述

这⾥使⽤的是8.5.55版: apache-tomcat-8.5.55.tar.gz,直接将其放在了/root

⽬录下

持续集成环境-Tomcat安装和配置

解压并安装

1./usr/local/下创建tomcat⽂件夹并进⼊

cd /usr/local/
mkdir tomcat
cd tomcat

在这里插入图片描述

2.将tomcat的压缩包上传到linux,按住alt+p进入sftp传输
在这里插入图片描述

3、将 Tomcat 安装包解压到/usr/local/tomcat 中即可

[root@localhost tomcat]# tar -zxvf apache-tomcat-8.5.55.tar.gz

解压完之后,/usr/local/tomcat⽬录中会出现⼀个 apache-tomcat-8.5.55的⽬录

在这里插入图片描述

启动TOMCAT

直接进 apache-tomcat-8.5.55⽬录,执⾏其中bin ⽬录下的启动脚本即可

[root@localhost tomcat]# cd apache-tomcat-8.5.55/
[root@localhost apache-tomcat-8.5.55]# cd bin/
[root@localhost bin]# ./startup.sh

在这里插入图片描述

这时候浏览器访问: 你的linux主机IP:8080 ,得到如下画⾯说明成功启动了
在这里插入图片描述

如果遇到访问的页面不成功,也许是端口未开放导致的,解决方案如下:

linux开放指定端口的方法

1.查看有哪些端口是开放的

/sbin/iptables -L -n

在这里插入图片描述

2.编辑/etc/sysconfig/iptables文件

 vi /etc/sysconfig/iptables

加入内容并保存:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

在这里插入图片描述

3.重启服务:/bin/systemctl restart iptables.service

在这里插入图片描述

4.查看端口是否开放·/sbin/iptables -L -n

在这里插入图片描述

再此访问

配置Tomcat用户角色权限

默认情况下Tomcat是没有配置用户角色权限的

在这里插入图片描述

在这里插入图片描述

但是,后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,

添加用户及权限

vi /usr/local/tomcat/apache-tomcat-8.5.55/conf/tomcat-users.xml
<tomcat-users> 
    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,tomcat,admin-gui,manager-script"/>
</tomcat-users>

在这里插入图片描述

用户和密码都是:tomcat

注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

vi /usr/local/tomcat/apache-tomcat-8.5.55/webapps/manager/META-INF/context.xml
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

把上面这行注释掉即可!

在这里插入图片描述

重启Tomcat,访问测试

/usr/local/tomcat/apache-tomcat-8.5.55/bin/shutdown.sh 停止

/usr/local/tomcat/apache-tomcat-8.5.55/bin/startup.sh 启动

访问: http://192.168.0.102:8080/manager/html ,输入tomcat和tomcat,

在这里插入图片描述

看到以下页面代表成功啦

在这里插入图片描述

2、Jenkins构建Maven项目

Jenkins项目构建类型-Jenkins构建的项目类型介绍

Jenkins中自动构建项目的类型有很多,常用的有以下三种:
		自由风格软件项目(FreeStyle Project)
		Maven项目(Maven Project)
		流水线项目(Pipeline Project)
每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在
实际开发中可以根据自己的需求和习惯来选择。这里只演示两种风格(自由风格软件项目,Maven项目)

Jenkins项目构建类型-自由风格项目构建

下面演示创建一个自由风格项目来完成项目的集成过程:
拉取代码->编译->打包->部署

拉取代码

1)创建项目
在这里插入图片描述

2)配置源码管理,从gitlab拉取代码

在这里插入图片描述

编译打包

构建->添加构建步骤->Executor Shell

在这里插入图片描述

部署

把项目部署到远程的Tomcat里面

1)安装 Deploy to container插件

Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现

在这里插入图片描述

2)添加Tomcat用户凭证
在这里插入图片描述

在这里插入图片描述

3)添加构建后操作

在这里插入图片描述

在这里插入图片描述

点击"Build Now",开始构建过程
在这里插入图片描述

4)部署成功后,访问项目

http://192.168.0.102:8080/web_demo-1.0-SNAPSHOT/

在这里插入图片描述

演示改动代码后的持续集成

1)IDEA中源码修改并提交到gitlab
在这里插入图片描述

2)在Jenkins中项目重新构建
在这里插入图片描述

3)访问Tomcat

在这里插入图片描述

Jenkins项目构建类型(3)-Maven项目构建

1)安装Maven Integration插件

在这里插入图片描述

2)创建Maven项目

在这里插入图片描述

3)配置项目

拉取代码

在这里插入图片描述

构建项目
在这里插入图片描述

远程部署

在这里插入图片描述

点击"Build Now",开始构建过程
在这里插入图片描述

4)部署成功后,访问项目

http://192.168.0.102:8080/web_demo-1.0-SNAPSHOT/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值