CI/CD 项目

项目例图

CI/CD 项目 - 图1

项目主机

主机名称 IP 服务
开发者1 (user1) 192.168.11.102 git
gitlab 192.168.11.103 gitlab
jenkins 192.168.11.104 jenkins+java+maven
tomcat 192.168.11.105 tomcat+java

一、基础配置

  1. setenforce 0
  2. sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config
  3. systemctl disable --now firewalld
  4. sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
  5. sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
  6. systemctl restart sshd
  7. systemctl restart network sshd
  8. rm -rf /etc/yum.repos.d/*
  9. curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  10. curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  11. yum clean all && yum makecache
  12. yum install -y vim sysstat net-tools lrzsz epel-release git
  13. yum install -y bash-completion openssl openssh bash iproute wget tree

1.1主机安装服务

1.1.1 开发主机git

# 配置主机名
hostnamectl set-hostname user1
bash

#  安装git
yum install -y git

# 克隆开源项目
 mkdir /test
 cd /test/
 git clone https://gitee.com/newrain001/easy-springmvc-maven.git

1.1.2服务器gitlab

# 配置主机名
hostnamectl set-hostname gitlab
bash

# 安装依赖
yum -y install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion
yum -y install curl policycoreutils openssh-server openssh-clients postfix
yum -y install policycoreutils openssh-server openssh-clients postfix


# 下载gitlib

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.4-ce.0.el7.x86_64.rpm --no-check-certificate
yum -y localinstall gitlab-ce-13.1.4-ce.0.el7.x86_64.rpm

# 编辑配置文件 改个默认端口 (82)
vim /etc/gitlab/gitlab.rb
    external_url 'http://192.168.11.103:82'
    nginx['listen_port'] = 82

# 重新加载配置文件-重启gitlab
gitlab-ctl reconfigure                
gitlab-ctl restart   

systemctl enable sshd
systemctl enable postfix && systemctl start postfix

进入界面即可 第一次登录需要修改root密码 默认无密码

image.png

1.1.3 服务器jenkins

# 配置主机名
hostnamectl set-hostname jenkins
bash

# 安装jdk11
# https://www.oracle.com/java/technologies/downloads/
yum -y install fontconfig java-11-openjdk




# 安装maven
1.下载 maven
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
2.解压maven
tar -zxf apache-maven-3.6.3-bin.tar.gz ; rm -rf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3/ /usr/local/maven


# 设置环境变量 java和maven
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
source /etc/profile

# 获取jenkins源,安装
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install -y jenkins

#编辑配置文件(修改启动用户)
sed -i /JENKINS_USER/s/jenkins/root/ /etc/sysconfig/jenkins
sed -i /JENKINS_PORT/s/8888/8080/ /etc/sysconfig/jenkins
#启动jenkins
systemctl start jenkins                    


# 密码放置位置
[root@localhost log]# cat /var/lib/jenkins/secrets/initialAdminPassword
b8271ae647f74441be92fe3c0c0c5e81

将/var/lib/jenkins/secrets/initialAdminPassword 的密码填写

image.png

选择选择插件安装 官网下载插件慢

image.png

选择无 等下配置中国网络源 外网太慢

image.png

可自己创建一个管理员用户

image.png

保持默认

image.png
安装完成
image.png
jenkins优化

安装中文汉化插件

image.png
点击可选插件 搜索Chinese 选择第一个即可
image.png
安装完成 重启即可 http://192.168.11.104:8080/restart 等待重启即可
image.png

配置jenkins源 (提升下载插件速度)

[root@localhost updates]# pwd
cd /var/lib/jenkins/updates
[root@localhost updates]# sed -i 's/http:\/\/updates.jenkins-ci.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

清华园插件url:
http://mirrors.tuna.tsinghua.edu.cn/jenkins/

配置清华源 进入全局管理 点插件 点高级
image.png
image.png
重启jenkins http://192.168.11.104:8080/restart 等待重启即可
image.png

安装git插件来调取gitliab内容

image.png

点击可选插件 搜索git 点击安装

image.png

安装完成 返回首页

安装凭证管理插件 Credentials Binding

image.png

点击 可选插件 搜索Credentials Binding

image.png

等待安装即可

image.png

1.1.4 服务器tomcat

# 配置主机名
hostnamectl set-hostname tomcat
bash

# 安装tomcat
wget http://dlcdn.apache.org/tomcat/tomcat-8/v8.5.81/bin/apache-tomcat-8.5.81.tar.gz
tar -xf apache-tomcat-8.5.81.tar.gz
mv apache-tomcat-8.5.81 /usr/local/tomcat

# 安装java环境
yum -y install java-1.8.0-openjdk



# 创建tomcat界面的用户密码
# 开启权限连接  用于给jenkins连接
 vim /usr/local/tomcat/conf/tomcat-users.xml 
    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <role rolename="manager-script"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="tomcat" password="tomcat" roles="manager-script,manager-gui,tomcat,admin-gui,admin-scipt"/>
</tomcat-users>

# 开启远程访问功能  #注释这个值
vim /usr/local/tomcat/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/startup.sh
# 关闭tomcat
/usr/local/tomcat/shutdown.sh

image.png

1.2 配置主机将ssh免密(用于实验)

1.2.1 user1(git) —-gitlab

user1配置生成ssh公钥私钥

[root@user1 ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:h/niktPPyeexsKPpeqsm8AAlHB51dpHhGdXPnnYfFs4 root@user1
The key's randomart image is:
+---[RSA 2048]----+
|.oo. o ==..      |
|o.o o o.o  .     |
| +     o    o    |
|.        o   o . |
| .      S . . + .|
|  o      o   + E |
|   +   o. o o o o|
|    o =.o=.+.o  .|
|     ooB*+*+o    |
+----[SHA256]-----+

[root@user1 ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDErXPSueXGE2Jefosu4inVbADoJYIWWXwVq0DrpFAKa0G2/FXqUOCSeK4r3krz5zna3V8a64LRiVVpiwUDMg4Wwk3Gf3iX+fQUQfvhUFw7gDAw+03jx2GGc9bFGo1gRpy4/e3L4lJLw8cclywIoKsxNk7ZAj188ZUkYt7LKdtwt9fkp3RP77lN5SbF6Jf+SYytPJVYpyq/G3RL5xw2pBZWmxTmibFoL0N07mePQGB1Bt+7MvF5XkmjyUEIuVjr26o+h2gj0L40oJiMI5cbw2exloaTnAGu2wHYISBjj7O3liatEUED/m5VzSlgbxjzC+Dz0wfqPfQUwsROtaGzl1An root@user1

gitlab配置
image.png

添加配置

image.png
image.png

[root@gitlab ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:69IPEO0snSYej2uWofFprI33Mo84gqMWcds6RheDlHk root@gitlab
The key's randomart image is:
+---[RSA 2048]----+
|    o            |
|   + E .         |
|  . o . .        |
| . o o = .       |
|  o o B S        |
| . o.+.O .       |
| .o o=o=+        |
|o..+o+&+..       |
|+...=B+*+..      |
+----[SHA256]-----+
[root@gitlab ~]# 
[root@gitlab ~]# vim ~/.ssh/authorized_keys
[root@gitlab ~]# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDErXPSueXGE2Jefosu4inVbADoJYIWWXwVq0DrpFAKa0G2/FXqUOCSeK4r3krz5zna3V8a64LRiVVpiwUDMg4Wwk3Gf3iX+fQUQfvhUFw7gDAw+03jx2GGc9bFGo1gRpy4/e3L4lJLw8cclywIoKsxNk7ZAj188ZUkYt7LKdtwt9fkp3RP77lN5SbF6Jf+SYytPJVYpyq/G3RL5xw2pBZWmxTmibFoL0N07mePQGB1Bt+7MvF5XkmjyUEIuVjr26o+h2gj0L40oJiMI5cbw2exloaTnAGu2wHYISBjj7O3liatEUED/m5VzSlgbxjzC+Dz0wfqPfQUwsROtaGzl1An root@user1

1.2.2 gitlab —-jenkins

jenkins配置ssh公钥私钥

[root@jenkins ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MnVhEJvPK5sZS1gcg65eAy+kgFJrBVP3s80qc3cOG6Y root@jenkins
The key's randomart image is:
+---[RSA 2048]----+
|  o.. . ooo      |
|   o . o + .     |
|  . . . O .      |
|.. o . o @       |
|+ o o + S =      |
|.o o + = . .     |
|  . o B * * .    |
|   . o * @ *     |
|    .   E . .    |
+----[SHA256]-----+


[root@jenkins ~]# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwKoY0XKuG7aeX5lxyF0esec3Uz/skaKKw0wtqhv5JSFdZw0A
v9yD/XDws8G+Bv3r4dDRCwgMZNGvMzSC25mBgDkQkscEprPbj+yVgNcEWBgwMBM5
vqG/uD+hgss32OfvgdSvjYrtADe3iNAkn4F+hdVfcJ2QRDs8PmJ3WaCVCzNhlZCL
7gCv1hPtADQ1W+8DkaAavjReAu+dpXc/oeMFDYOjJKJyvxc0kRICw3cnQ8dljDFI
gQWPcWK6+QOnGvHhMnozQQod9kJlAz8aXTRjCzJc80jH6IRBxwP1IgKbXoccuwRf
R482cf6VVwIHxtPrYkEy/Du1h1oORG2r+o2S2QIDAQABAoIBAFwkPXBWB1yrrvyL
lzY7CsYMjZIb/Vj9Qp36XdCARlxyo4f4WQZpQRrBm+xsWSRg5iH+Syuacsr42XCE
yZyawqt/HyUDV38ef4BKpomSy7oR/2HOoAxCsT09+VFjPVdYPVx7SmZILeavvvAI
k6tRNCBvlpB2Wpu3NK2lS+0qdn1/A8GfNA6Ytmav+A1Ln1jZmr4l9PDGyeWtx070
rkPFk3lMiTOVgK6iBt+NKeWC+tlgDy2SPl4FjYOHprnO3+chkAUBqbTLBHvdH2AR
U5tSCmXcuKeq9nplTmxcz+gvvEJkBFsc5Vjy66C3Jd3OwKJKjGpMKheypfXhvvxt
l/fhAzECgYEA/50bAvwmD/VT7JkFC71Ld94EaSMiEwqnV1ozDo5VoIeHZnl4SjmT
i+R4ZV/9zmNlrC1fRqt32/4XiVn4ctvYnWYRlYlRF9g2O3yVXAr42mbZFWWxLsMY
tjEKPRT3t9ScEXin5DD7N1zQ8f2Nv+hUNzUFnfGArwt0U2znQ122Ss0CgYEAwPSj
EHThy7gF2pOJlwvsSEeAx87GcTDausaQ4nE6mEIxgKnmrswcK4paRUtjdG5vXBDQ
v/WnOHwtx6ZdgyV29IjXBWk1f01qSOWGa7t+FAhaXqgEjdbS+359zf9fa7nPrRWs
esdygyhEm+rNKofKBBDvZAlxM0mgrE9lxG4UwD0CgYB5sXEntaXlWRXwgVVepmtk
kOWmrFxPlnXe54mBN5BakcuLpO7433p4UnhjQxURik7gbuV6Pq4cpVbNRHE9NZ9m
KC7c83gRExWWspRlMrARQn+9aSG2spl0O9q1A+N/uI/o3XmI8SzYya6MVvuCTvix
I+Qdstlh/OEPyrw7XUUpTQKBgCG54NKci2bvOF63EQKMu/T6QoEqHDdmoaSp1mMu
BV7dmwdxKvf8hyP5H8Qi5DRSpTZDXilfR6Yw1lOiOZAVuVAOpv60H/yrTFuHetJT
yDq6JwmKdplQJjp9JoIeE9ChfrIzKp2fRN216SATj17SszW4vA8RM28SfHoBurj1
wLzFAoGBAMIqb5CnQsodndCxenRQbrO7g2e/LT98uUnyatfimjjm/4GpRDEU43X6
Tx6E8BHY0SL/V6wDTs3s3PjCpp/Fg7oOMck5eBPzUmP5Wgu25Kw1Yk8K+XDBYqjN
4opcJca3T5wh7VZrVu3x7BsUATBdghMHCz9V/0xYsILFYbQQFdEl
-----END RSA PRIVATE KEY-----



[root@jenkins ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAqhjRcq4btp5fmXHIXR6x5zdTP+yRoorDTC2qG/klIV1nDQC/3IP9cPCzwb4G/evh0NELCAxk0a8zNILbmYGAORCSxwSms9uP7JWA1wRYGDAwEzm+ob+4P6GCyzfY5++B1K+Niu0AN7eI0CSfgX6F1V9wnZBEOzw+YndZoJULM2GVkIvuAK/WE+0ANDVb7wORoBq+NF4C752ldz+h4wUNg6MkonK/FzSREgLDdydDx2WMMUiBBY9xYrr5A6ca8eEyejNBCh32QmUDPxpdNGMLMlzzSMfohEHHA/UiAptehxy7BF9HjzZx/pVXAgfG0+tiQTL8O7WHWg5Ebav6jZLZ root@jenkins

gitlab操作

公钥放置gitlab管理web界面

image.png
jenkins操作

私钥放置本机jenkins管理web界面

image.png

添加凭证

image.png

选择类型为ssh 登录用户为root

image.png

添加本机私钥 点击完成即可

image.png

1.2.3 jenkins —- tomcat

[root@jenkins updates]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAqhjRcq4btp5fmXHIXR6x5zdTP+yRoorDTC2qG/klIV1nDQC/3IP9cPCzwb4G/evh0NELCAxk0a8zNILbmYGAORCSxwSms9uP7JWA1wRYGDAwEzm+ob+4P6GCyzfY5++B1K+Niu0AN7eI0CSfgX6F1V9wnZBEOzw+YndZoJULM2GVkIvuAK/WE+0ANDVb7wORoBq+NF4C752ldz+h4wUNg6MkonK/FzSREgLDdydDx2WMMUiBBY9xYrr5A6ca8eEyejNBCh32QmUDPxpdNGMLMlzzSMfohEHHA/UiAptehxy7BF9HjzZx/pVXAgfG0+tiQTL8O7WHWg5Ebav6jZLZ root@jenkins

将jenkins公钥放置tomcat即可

[root@nginx ~]# vim ~/.ssh/authorized_keys
[root@nginx ~]# ssh-keygen 
Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qkQRVj1u3qdiaeA4BGQPxbP0T4QiEnhLhjPh2H2y3m4 root@nginx
The key's randomart image is:
+---[RSA 2048]----+
|++ o+..o         |
|O.Oo=.. +        |
|.@.*+=.o .       |
|  o o=. +        |
|   .o  =S.       |
|   o....o . .    |
|   .ooo. . o     |
|   .ooE = .      |
|    .o.o .       |
+----[SHA256]-----+
[root@nginx ~]# 
[root@nginx ~]# vim ~/.ssh/authorized_keys
存放jenkins公钥
[root@nginx ~]# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAqhjRcq4btp5fmXHIXR6x5zdTP+yRoorDTC2qG/klIV1nDQC/3IP9cPCzwb4G/evh0NELCAxk0a8zNILbmYGAORCSxwSms9uP7JWA1wRYGDAwEzm+ob+4P6GCyzfY5++B1K+Niu0AN7eI0CSfgX6F1V9wnZBEOzw+YndZoJULM2GVkIvuAK/WE+0ANDVb7wORoBq+NF4C752ldz+h4wUNg6MkonK/FzSREgLDdydDx2WMMUiBBY9xYrr5A6ca8eEyejNBCh32QmUDPxpdNGMLMlzzSMfohEHHA/UiAptehxy7BF9HjzZx/pVXAgfG0+tiQTL8O7WHWg5Ebav6jZLZ root@jenkins

二、环境配置

gitlab(服务器)操作

创建组、用户、项目 (用于给user1)使用

1.创建组

image.png

设置itema组 URl默认 设置为私密组

image.png
image.png

2.创建用户 并将用户分配到itema组

image.png

设置用户名为zhangsan 邮箱为zhangsan

image.png

设置权限为 只可读自己项目

image.png

点确定

image.png

为用户zhangsan增加密码

image.png
image.png

添加用户进入组

image.png

点击 管理用户成员 设置管理成员为zhangsan

image.png

设置权限为最高

image.png

点击应用 即可

image.png
image.png

3.创建项目

image.png

选择设置项目名称 为 tiema 设置描述为 这是a项目小组的项目

image.png

成功添加项目a

image.png
登录zhangsan用户 (密码 root123456)
image.png

查看用户组

image.png

查看用户组内项目

image.png

git(员工1 (开发))

# 创建git 项目路径
mkdir test
cd test/
#设置 基本主机git信息
git config --global user.name "user1"
git config --global user.email "user1@qq.com"
git init
初始化空的 Git 版本库于 /root/test/.git/
# 编写html 代码
[root@user1 test]# vim 1.html
[root@user1 test]# cat 1.html 
v1 version


# 使用的是http协议上传版本    同步上传名称origin   需要手动打密码才能上传
# 创建一个 origin 项目小组共用的同步名称 并把同步到gitlab的项目内  
[root@user1 test]# git remote add origin http://192.168.11.103:82/itema_gtoup/tiema.git
# 提交到暂存区
[root@user1 test]# git add *
# 上传到版本库
[root@user1 test]# git commit -m "Initial commit"
# 将内容提交到gitlab   账户zhangsan   密码root123456
[root@user1 test]# git push -u origin master
Username for 'http://192.168.11.103:82': zhangsan
Password for 'http://zhangsan@192.168.11.103:82': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 211 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.11.103:82/itema_gtoup/tiema.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master

# 使用的是ssh协议上传版本    同步名称上传origina   不会问你输入密码 会问你是否确认
[root@user1 test]# git remote add origina git@192.168.11.103:itema_gtoup/tiema.git
[root@user1 test]# git add *
[root@user1 test]# git commit -m "版本V2"
[master da85813] 版本V2
 1 file changed, 1 insertion(+)
[root@user1 test]# git push -u origina master
The authenticity of host '192.168.11.103 (192.168.11.103)' can't be established.
ECDSA key fingerprint is SHA256:JJSDYXSIw+FzLE5rnO8zRwMUq4h+0wgJu3hwpfeMXyg.
ECDSA key fingerprint is MD5:59:e5:6b:d1:62:fd:2f:02:c6:c6:73:a4:c2:52:dc:b5.
Are you sure you want to continue connecting (yes/no)? yes   
Warning: Permanently added '192.168.11.103' (ECDSA) to the list of known hosts.
remote: 
remote: INFO: Your SSH key is expiring soon. Please generate a new key.
remote: 
Counting objects: 5, done.
Writing objects: 100% (3/3), 257 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.11.103:itema_gtoup/tiema.git
   b521fb3..da85813  master -> master
分支 master 设置为跟踪来自 origina 的远程分支 master。

gitlab查看是否成功 #http上传

image.png
查看内容
image.png

ssh协议上传

image.png

jenkins(服务器)操作

配置支持git与java 和maven

点击全局配置 点击工具配置

image.png

[root@jenkins updates]# java -version
openjdk version "1.8.0_332"
OpenJDK Runtime Environment (build 1.8.0_332-b09)
OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)
[root@jenkins updates]# cd /usr/lib/jvm/java-1.8.0-openjdk
[root@jenkins java-1.8.0-openjdk]# pwd
/usr/lib/jvm/java-1.8.0-openjdk

设置jdk别名 设置jdk安装路径

image.png

[root@jenkins java-1.8.0-openjdk]# mvn -v
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_332, vendor: Red Hat, Inc.
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.el7.x86_64", arch: "amd64", family: "unix"

image.png
image.png
点击保存

加入全局变量

image.png

找到全局属性 添加变量是为了能使用java和maven命令

添加三个值 JAVA_HOME +路径 M2_HOME + 路径 PATH+EXTRA + $M2_HOME/bin

image.png
image.png

点击保存

[root@jenkins bin]# vim /usr/share/maven/conf/settings.xml
搜索:   :/<mirror>     
<mirror>

# 添加以下加速源
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>aliyun</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>


    # 到这结束
  </mirrors>

  :wq

测试是否环境配置成功
image.png
添加拉取的git项目
image.png
填写构建类型为shell 使用maven命令查看是否成功
image.png
保存

nginx(服务器)操作

配置网页文件存放路径
[root@nginx html]# mkdir /www
 39         listen       80;
 40         listen       192.168.11.105:80;
 42         root         /www;
 43         index        index.html;


[root@nginx html]# cd /www/
[root@nginx www]# vim index.html
[root@nginx www]# cat index.html 
hello  we
[root@nginx www]# systemctl restart nginx

image.png

三、jenkins三个项目

一、自由风格任务

创建资源风格项目

image.png

设置名称 创建一个自由风格项目

image.png

设置git路径 (需要进入gitlab)需要设置你想拉取的项目

image.png

将项目拉取到jenkins 并设立登录gitliab的用户为哪一个

image.png

下拉 找到构建 设置一个自由风格为 shell的任务

image.png

写入内容 并保存

image.png
测试

点击项目名称

image.png

构建

image.png

点击工程1 控制台输出 查看内容

image.png
成功构建
实现远程发布 安装插件
image.png
配置项目
image.png
下拉 点击构建后操作
image.png
配置需要打包war包 /var/lib/jenkins/workspace/ 工作目录
image.png
添加访问tomcat的凭证
image.png
这个账号是在tomcat上创建的一个访问用户
image.png
添加要上传的tomcat(web)服务器 url
image.png
点击保存 (并测试)
测试成功
image.png
查看效果 (新项目已经到tomcat)
image.png
image.png
完成

二、maven任务

安装maven插件

image.png

搜索maven 选择第一个 安装

image.png

下载 配置构建操作

image.png
设置拉取git代码
image.png
下拉 找到构建操作 输入mvn clean package
image.png
保存
回到项目 点击构建
image.png
查看结果 点击控制台输出

image.png
搜索插件 publish over ssh 安装用于发布网页
image.png
安装插件 publish over ssh 用于发布项目
image.png
image.png
返回首页 、点击新建项目
image.png

配置maven项目

点击maven项目 设置名称点击确定
image.png
配置自动发布项目 git拉取项目
image.png
下拉 配置构建
image.png
可以直接设置在命令
image.png
设置构建后操作

image.png
设置url
image.png
保存 测试
构建 —>任务 —>控制台输出
image.png
image.png

三、pip 流水线任务

安装 Pipeline 插件
image.png
返回首页
image.png
设置流水线
image.png
定义名称 选择流水线
image.png
下拉 可看到流水线语法
image.png
流水线语法

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

image.png

node {
    def mvnHome
    stage('Preparation') { // for display purposes
        // Get some code from a GitHub repository
        git 'https://github.com/jglick/simple-maven-project-with-tests.git'
        // Get the Maven tool.
        // ** NOTE: This 'M3' Maven tool must be configured
        // **       in the global configuration.
        mvnHome = tool 'M3'
    }
    stage('Build') {
        // Run the maven build
        withEnv(["MVN_HOME=$mvnHome"]) {
            if (isUnix()) {
                sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
            } else {
                bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
            }
        }
    }
    stage('Results') {
        junit '**/target/surefire-reports/TEST-*.xml'
        archiveArtifacts 'target/*.jar'
    }
}

使用流水线语法查看
image.png
片段生成器可以为我们做很多事情
image.png
找到 Che
image.png
选择git连接
image.png
生成流水线脚本 生成连接gitlab仓库的脚本
image.png

checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '6b0cc5b0-6779-476a-860a-80fb1081e96e', url: 'git@192.168.11.103:itmea_group/web_demo.git']]])

将内容放入
image.png
找到shell脚本 生成脚本 流水线
image.png
生成 mvn 脚本 用于打包 war包
image.png

sh 'mvn clean package'

找到deploy 用于上传到tomcat的东西
image.png
点击需要连接tomcat的用户
image.png
生成流水线
image.png

deploy adapters: [tomcat8(credentialsId: '72a156fe-d873-4831-8882-df792b1c5982', path: '', url: 'http://192.168.11.105:8080')], contextPath: null, war: 'targrt/*.war'

将内容放置流水线任务
image.png
然后保存
流水线全部内容

pipeline {
    agent any

    stages {
        stage('pull') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '6b0cc5b0-6779-476a-860a-80fb1081e96e', url: 'git@192.168.11.103:itmea_group/web_demo.git']]])
            }
        }
        stage('buit') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('push') {
            steps {
                deploy adapters: [tomcat8(credentialsId: '72a156fe-d873-4831-8882-df792b1c5982', path: '', url: 'http://192.168.11.105:8080')], contextPath: null, war: 'target/*.war'
            }
        }
    }
}

测试:
成功
image.png
image.png