CI/CD 项目
项目例图
项目主机
主机名称 | 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 |
一、基础配置
setenforce 0
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config
systemctl disable --now firewalld
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
systemctl restart sshd
systemctl restart network sshd
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum install -y vim sysstat net-tools lrzsz epel-release git
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密码 默认无密码
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 的密码填写
选择选择插件安装 官网下载插件慢
选择无 等下配置中国网络源 外网太慢
可自己创建一个管理员用户
保持默认
安装中文汉化插件
点击可选插件 搜索Chinese 选择第一个即可
安装完成 重启即可 http://192.168.11.104:8080/restart 等待重启即可
配置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/
配置清华源 进入全局管理 点插件 点高级
重启jenkins http://192.168.11.104:8080/restart 等待重启即可
安装git插件来调取gitliab内容
点击可选插件 搜索git 点击安装
安装完成 返回首页
安装凭证管理插件 Credentials Binding
点击 可选插件 搜索Credentials Binding
等待安装即可
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
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配置
添加配置
[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界面
jenkins操作
私钥放置本机jenkins管理web界面
添加凭证
选择类型为ssh 登录用户为root
添加本机私钥 点击完成即可
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.创建组
设置itema组 URl默认 设置为私密组
2.创建用户 并将用户分配到itema组
设置用户名为zhangsan 邮箱为zhangsan
设置权限为 只可读自己项目
点确定
为用户zhangsan增加密码
添加用户进入组
点击 管理用户成员 设置管理成员为zhangsan
设置权限为最高
点击应用 即可
3.创建项目
选择设置项目名称 为 tiema 设置描述为 这是a项目小组的项目
成功添加项目a
登录zhangsan用户 (密码 root123456)
查看用户组
查看用户组内项目
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上传
查看内容
ssh协议上传
jenkins(服务器)操作
配置支持git与java 和maven
点击全局配置 点击工具配置
[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安装路径
[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"
点击保存
加入全局变量
找到全局属性 添加变量是为了能使用java和maven命令
添加三个值 JAVA_HOME +路径 M2_HOME + 路径 PATH+EXTRA + $M2_HOME/bin
点击保存
[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
测试是否环境配置成功
添加拉取的git项目
填写构建类型为shell 使用maven命令查看是否成功
保存
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
三、jenkins三个项目
一、自由风格任务
创建资源风格项目
设置名称 创建一个自由风格项目
设置git路径 (需要进入gitlab)需要设置你想拉取的项目
将项目拉取到jenkins 并设立登录gitliab的用户为哪一个
下拉 找到构建 设置一个自由风格为 shell的任务
写入内容 并保存
测试
点击项目名称
构建
点击工程1 控制台输出 查看内容
成功构建
实现远程发布 安装插件
配置项目
下拉 点击构建后操作
配置需要打包war包 /var/lib/jenkins/workspace/ 工作目录
添加访问tomcat的凭证
这个账号是在tomcat上创建的一个访问用户
添加要上传的tomcat(web)服务器 url
点击保存 (并测试)
测试成功
查看效果 (新项目已经到tomcat)
完成
二、maven任务
安装maven插件
搜索maven 选择第一个 安装
下载 配置构建操作
设置拉取git代码
下拉 找到构建操作 输入mvn clean package
保存
回到项目 点击构建
查看结果 点击控制台输出
搜索插件 publish over ssh 安装用于发布网页
安装插件 publish over ssh 用于发布项目
返回首页 、点击新建项目
配置maven项目
点击maven项目 设置名称点击确定
配置自动发布项目 git拉取项目
下拉 配置构建
可以直接设置在命令
设置构建后操作
三、pip 流水线任务
安装 Pipeline 插件
返回首页
设置流水线
定义名称 选择流水线
下拉 可看到流水线语法
流水线语法
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
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'
}
}
使用流水线语法查看
片段生成器可以为我们做很多事情
找到 Che
选择git连接
生成流水线脚本 生成连接gitlab仓库的脚本
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']]])
将内容放入
找到shell脚本 生成脚本 流水线
生成 mvn 脚本 用于打包 war包
sh 'mvn clean package'
找到deploy 用于上传到tomcat的东西
点击需要连接tomcat的用户
生成流水线
deploy adapters: [tomcat8(credentialsId: '72a156fe-d873-4831-8882-df792b1c5982', path: '', url: 'http://192.168.11.105:8080')], contextPath: null, war: 'targrt/*.war'
将内容放置流水线任务
然后保存
流水线全部内容
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'
}
}
}
}