一、Jenkins+gitlab+nginx实现cicd--环境搭建

一、搭建gitlab

1.1 主机信息

gitlab-server:192.168.17.130	4核4G(内存太小的话web端卡顿)

1.2 环境搭建

#配置yum源
[root@gitlab ~]# cd /etc/yum.repos.d/

[root@gitlab yum.repos.d]# cat <<EOF >gitlab-ce.repo 
[gitlab-ce]
name=Gitlab CE Repository			#指定仓库的名称
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7	#指定仓库的基本URL,即软件包存储库的地址。这里使用了清华大学开源软件镜像站的GitLab CE镜像地址
gpgcheck=0				#用于指定是否进行GPG签名检查。这里设置为0,表示不进行检查。
enabled=1				#指定是否启用该仓库。这里设置为1,表示启用该仓库。
EOF

#安装依赖
[root@gitlab yum.repos.d]# yum install -y curl policycoreutils-python openssh-server postfix
#postfix:邮件传输服务用来发邮件的
[root@gitlab yum.repos.d]# systemctl enable --now postfix && systemctl status postfix.service 
#配置开启自启

1.3 安装gitlab-ce

1.通过清华源安装gitlab
[root@gitlab yum.repos.d]# yum install -y gitlab-ce

1.4 配置gitlab服务

1.修改配置文件
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.17.130'			#gitlab访问的方式
gitlab_rails['time_zone'] = 'Asia/Shanghai'		#时区
git_data_dirs({									#指定 GitLab 存储仓库数据的位置的配置项。
   "default" => {
     "path" => "/data/git/git-data"
    }
})

gitlab_rails['gitlab_shell_ssh_port'] = 22		#开启ssh服务。允许通过ssh拉代码


2.smtp配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "123@163.com"
gitlab_rails['smtp_password'] = "pop授权的密码"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = '123@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Admin'
gitlab_rails['gitlab_email_from'] = "123@163.com"
user["git_user_email"] = "123@163.com"

3.gitlab备份配置
gitlab_rails['manage_backup_path'] = true						
gitlab_rails['backup_path'] = "/data/gitlab-backups"
gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800

4.创建文件中需要的目录
[root@gitlab ~]# mkdir -p /data/gitlab/git-data					#数据目录
[root@gitlab ~]# mkdir -p /data/gitlab/gitlab-backups			#备份目录

在这里插入图片描述

在这里插入图片描述

1.5 启动gitlab

1、应用配置文件
[root@gitlab ~]# gitlab-ctl reconfigure      			#应用配置文件
#gitlab_rails['smtp_tls'] and gitlab_rails['smtp_enable_starttls_auto'] are mutually exclusive. Set one of them to false. SMTP providers usually use port 465 for TLS and port 587 for STARTTLS.
gitlab_rails['smtp_tls'] 和 gitlab_rails['smtp_enable_starttls_auto'] 是互斥的配置项,只能设置其中一个为 false。SMTP 提供商通常使用端口 465 进行 TLS 加密,而使用端口 587 进行 STARTTLS 加密。
解决:
选择smtp其中这俩的某一个配置注释掉即可!!
#一般都是注释tls关闭
gitlab_rails['smtp_tls']false 是可行的,并且你仍然可以发送邮件。

2、拉起gitlab服务
[root@gitlab ~]# gitlab-ctl restart						#允许服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgMu6OWe-1689072411133)(E:\教学资料\※笔记※\复习\assets\image-20230630161338655.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RCo94qph-1689072411133)(E:\教学资料\※笔记※\复习\assets\image-20230630161221950.png)]

1.6 登录gitlab

1、登录信息
[root@gitlab gitlab-workhorse]# cat /etc/gitlab/initial_root_password			#查看默认的登录密码
user:root
密码:默认生成的

2、默认gitlab内置了nginx.可以查看nginx的登录日志(后面可以自己进行反向代理)
[root@gitlab gitlab-workhorse]# tailf /var/log/gitlab/nginx/gitlab_access.log 

3、配置中文
#在头像处点击.preferences偏好设置最下面可以切换中文!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oPrtKscT-1689072411133)(E:\教学资料\※笔记※\复习\assets\image-20230630161853390.png)]

二、搭建Jenkins

1.1 主机信息

jenkins:192.168.222.128		4核4G
#官方推荐
https://www.jenkins.io/doc/book/installing/linux/
小型团队的推荐硬件配置:
4 GB+ of RAM
50 GB+ of drive space
50 GB+ 驱动器空间

1.2 环境搭建

#根据官方文档进行搭建
https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos
#LTS(长期支持)版本每 12 周从常规版本流中选择一次,作为该时间段的稳定版本。它可以从 redhat-stable yum 存储库安装。

#不建议根据官方的安装。会踩坑!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLzsBzX3-1689072411134)(E:\教学资料\※笔记※\复习\assets\image-20230705172538212.png)]

1.3 安装Jenkins

1、通过华为云的ftp获取Jenkins的rpm包
[root@jenkins ~]# wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm
2、通过rpm包安装Jenkins 
[root@jenkins ~]# rpm -ivh jenkins-2.346.3-1.1.noarch.rpm
3、安装jdk
[root@jenkins ~]# yum provides java
[root@jenkins ~]# yum -y install java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64
[root@jenkins ~]# java -version
openjdk version "1.8.0_372"
4、修改Jenkins配置
[root@jenkins ~]# vim /etc/init.d/jenkins 				#修改java的位置

#tps:
建议一开始就配置成root用户启动。否则后面配置私钥访问其他东西会比较麻烦
1、修改Jenkins的启动用户为root
[root@jenkins ~]# vim /etc/sysconfig/jenkins
JENKINS_USER="root"
[root@jenkins ~]# vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root			#修改用户和组
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl restart jenkins.service				#重启Jenkins服务
[root@jenkins ~]# ps -ef | grep "jenkins" | grep -v grep
root       2593      1 59 20:16 ?        00:00:18 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
#解决报错。一开始搭建的时候还是直接用root用户启动较好!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lc88leJk-1689072411134)(E:\教学资料\※笔记※\复习\assets\image-20230706154312071.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zqf3Admz-1689072411134)(E:\教学资料\※笔记※\复习\assets\image-20230706154435230.png)]

1.4 启动Jenkins

[root@jenkins ~]# /etc/init.d/jenkins start				#通过rpm安装的绝对路径进行启动
[root@jenkins ~]# ps -ef | grep "jenkins"  | grep -v grep
jenkins    1921      1 64 23:45 ?        00:00:39 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
或者
[root@jenkins ~]# systemctl enable --now jenkins			#rpm的安装的服务默认在/usr/lib/systemd/system下
Created symlink from /etc/systemd/system/multi-user.target.wants/jenkins.service to /usr/lib/systemd/system/jenkins.service.
[root@jenkins ~]# systemctl status jenkins
[root@jenkins ~]# netstat -tnlp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      2070/java  
#访问8080查看是否正常进入Jenkins
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
0e3ddfc3804f449abdd43de81accf47e			#查看密码
#安装社区推荐的插件即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8gYEc2O-1689072411135)(E:\教学资料\※笔记※\复习\assets\image-20230706155012585.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Y7DBmFW-1689072411135)(E:\教学资料\※笔记※\复习\assets\image-20230706160041802.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q5AMGSBE-1689072411135)(E:\教学资料\※笔记※\复习\assets\image-20230706161722508.png)]

1.5 配置Jenkinsweb端

1.安装必要的插件
Deploy to container    ---支持自动化代码部署到tomcat等web容器
Git Plugin: 允许Jenkins与Git版本控制系统进行集成,以便从代码库中拉取源代码(默认安装)
Maven Integration   :jenkins利用Maven编译,打包所需插件
Publish Over SSH Plugin: 该插件允许通过SSH协议将文件或目录复制到远程服务器
SSH Agent Plugin: 如果需要在构建过程中使用SSH密钥进行身份验证,可以安装此插件。它允许您在Jenkins构建环境中注入SSH密钥,
安装过程:
#系统管理(manager-Jenkins)--->插件管理(manager plugins)---->可选插件--->搜索过滤--->勾选--->直接安装(download now and install after restart )
#会跳转至更新中心。勾选更新后重启Jenkins

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBRinXwT-1689072411136)(C:\Users\xxq\AppData\Roaming\Typora\typora-user-images\image-20230706170028299.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6SFqLBA-1689072411136)(E:\教学资料\※笔记※\复习\assets\image-20230706170138684.png)]

三、搭建配置nginx

1.1 搭建nginx服务器

#不想再开机器了。直接gitlab服务器上进行nginx的配置
gitlab-server:192.168.17.130	4核4G
[root@gitlab-server ~]# yum -y install nginx
[root@gitlab-server nginx]# cp nginx.conf nginx.conf.bak	#备份nginx配置文件

1.2 配置nginx服务器

1、配置nginx文件
[root@gitlab-server nginx]# mkdir -p /data/log/nginx/		#创建日志目录
[root@gitlab-server nginx]# cat nginx.conf
user root;
worker_processes  4; #启动进程,通常设置成和cpu的数量相等
worker_rlimit_nofile  65535;  #与ulimit -n保持一致
error_log  /data/log/nginx/error.log;
pid        /var/run/nginx.pid;
env TZ=Asia/Shanghai;

events {
    use epoll;
    worker_connections  1024;
}


http {
    include http.conf;					#HTTP模块外部文件。方便管理
    include proxy_webhp;				#引入server模块处理的内容
}

2、配置HTTP.conf文件
[root@gitlab-server nginx]# cat http.conf 
    include       mime.types;
    default_type  application/octet-stream;
    charset  utf-8;

    server_tokens off;
    underscores_in_headers on;
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    limit_req_zone $binary_remote_addr zone=three:10m rate=3r/s;
    limit_req_zone $binary_remote_addr zone=five:10m rate=5r/s;
    limit_req_zone $binary_remote_addr zone=ten:10m rate=10r/s;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'; 
    access_log  /data/log/nginx/access.log  main;
    error_log  /data/log/nginx/error.log;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 2k;
    large_client_header_buffers 4 4k;
    client_max_body_size 8m;

    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay     on;

    keepalive_timeout  60;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss;
    gzip_vary on;

    proxy_connect_timeout 10;
    proxy_read_timeout 60;
    proxy_send_timeout 10;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_temp_path /data/www/proxy_temp_dir;				#需要先创建
    #设置Web缓存区名称为cache_one,内存缓存空间大小为50MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为2GB
    proxy_cache_path  /data/www/proxy_cache_dir  levels=1:2   keys_zone=cache_one:50m inactive=1d max_size=2g;

    proxy_next_upstream error timeout http_500 http_502 http_504;
    
   
3、配置proxy_webhp
[root@gitlab-server nginx]# mkdir -p /data/www/proxy_temp_dir				#配置缓存目录
[root@gitlab-server nginx]# cat proxy_webhp 							#默认的配置
 server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
}

4、启动nginx[root@gitlab-server nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5、解决报错
Jul 07 02:19:27 gitlab-server nginx[6448]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
#因为这个机器上面有gitlab的内置nginx导致端口被占用。需要改个端口了。修改为监听8000端口!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cuBxWB9v-1689072411137)(E:\教学资料\※笔记※\复习\assets\image-20230706185353836.png)]

1.3 自定义webhp

1、上传自己写好的html项目
[root@gitlab-server ~]# mkdir webhp
2、上传文件
[root@gitlab-server ~]# tree webhp/
webhp/
├── HCIP.jpg
├── index.html
├── static
│   ├── bootstrap.bundle.js
│   ├── bootstrap.bundle.min.js
│   ├── bootstrap.min.css
│   ├── jquery.slim.js
│   └── jquery.slim.min.js
├── \345\255\246\344\271\240css.html
├── \345\255\246\344\271\240html.html
├── \345\255\246\344\271\240\350\241\250\346\240\274\345\222\214\350\241\250\345\215\225.html
└── \346\250\241\346\235\277css.css
3、配置nginx
[root@gitlab-server nginx]# cp proxy_webhp proxy_webhp.bak
[root@gitlab-server nginx]# cat proxy_webhp
 [root@gitlab-server nginx]# cat proxy_webhp
 server {
        listen       8000;				#监听的端口
        listen       [::]:8000;			#同时支持IPv4和IPv6。
        server_name  _;					
#这里的下划线(_)是一个通配符,表示匹配任何请求的域名。这个配置将作为默认的服务器块,处理无法与其他服务器块的server_name匹配的请求。
#无法匹配的其他server块的域名都走这里
        root         /root/webhp/;			#指定网页的根目录为/root/webhp/
        index     index.html;				
        #指定默认的索引文件为index.html。当访问的是一个目录时,Nginx将尝试查找并返回该目录下的index.html文件。
        access_log    /data/log/nginx/www_access.log;		#访问成功的日志
        error_log     /data/log/nginx/www_error.log;		#访问失败的日志。
        location / {									#默认匹配块。空域名走这里
            try_files $uri $uri/ /index.html;
            #try_files指令用于尝试查找请求的文件,如果找不到则按照顺序尝试查找以斜杠结尾的URI和返回index.html文件。
        }
        location = /HCIP.jpg {						#精确匹配返回jpg文件!
        # 空的配置块,表示直接返回该文件
    }
}
#如果要日志轮转需要修改/etc/logrotate.d的nginx配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmWKXNdX-1689072411138)(E:\教学资料\※笔记※\复习\assets\image-20230707180747938.png)]

四、webhp项目接入gitlab

目的:
通过gitlab管理webhp.更新代码的同时更新nginx.上线新的前端代码!!!

1.1 安装git服务

#安装在gitlab服务器上。懒得开机器。
git-server:192.168.17.130	4核4G
1、安装git服务
[root@gitlab-server ~]# yum -y install git			
[root@gitlab-server ~]# git --version
git version 1.8.3.1
准备:
    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
2、设置上传代码的用户和email
[root@gitlab-server ~]# git config --global user.email "xxq_ops@gmail.com"		#用户邮箱
[root@gitlab-server ~]# git config --global user.name "运维神经科主任"			  #用户名
[root@gitlab-server ~]# git config --list									#列出配置的用户信息
user.email=xxq_ops@gmail.com
user.name=运维神经科主任
#正常用户名啥的都是配置gitlab中已存在的用户。这边配置是因为拉取代码的时候配置的是gitlab中的用户

3、上传项目代码
[root@gitlab-server ~]# tree webhp/							#采用了nginx的前端页面的项目
webhp/
├── HCIP.jpg
├── index.html
├── static
│   ├── bootstrap.bundle.js
│   ├── bootstrap.bundle.min.js
│   ├── bootstrap.min.css
│   ├── jquery.slim.js
│   └── jquery.slim.min.js
├── \345\255\246\344\271\240css.html
├── \345\255\246\344\271\240html.html
├── \345\255\246\344\271\240\350\241\250\346\240\274\345\222\214\350\241\250\345\215\225.html
└── \346\250\241\346\235\277css.css

1 directory, 11 files

1.2 gitlab创建项目

1、gitlab创建了个群组
2、在对应的群组下新建项目
3、本地克隆并推送本地webhp项目至gitlab中
#推送现有的文件夹
[root@gitlab-server ~]# cd /root/webhp/
[root@gitlab-server webhp]# git init					#在此目录下建立git仓库
Initialized empty Git repository in /root/webhp/.git/
[root@gitlab-server webhp]# git remote add origin http://192.168.222.133/devops/webhp.git		#连接远端仓库
[root@gitlab-server webhp]# git remote -v						#查看当前 Git 仓库的远程仓库配置信息
origin  http://192.168.222.133/devops/webhp.git (fetch)				#表示可以提取代码
origin  http://192.168.222.133/devops/webhp.git (push)				#表示可以推送代码
[root@gitlab-server webhp]# git add *							#添加到本地暂存区
[root@gitlab-server webhp]# git commit -m "提交v1代码"			  #提交到本地仓库分支
[master (root-commit) e7c371b] 提交v1代码
 11 files changed, 16156 insertions(+)
 create mode 100755 HCIP.jpg
 create mode 100755 index.html
 create mode 100755 static/bootstrap.bundle.js
 create mode 100755 static/bootstrap.bundle.min.js
 create mode 100755 static/bootstrap.min.css
 create mode 100755 static/jquery.slim.js
 create mode 100755 static/jquery.slim.min.js
 create mode 100755 "\345\255\246\344\271\240css.html"
 create mode 100755 "\345\255\246\344\271\240html.html"
 create mode 100755 "\345\255\246\344\271\240\350\241\250\346\240\274\345\222\214\350\241\250\345\215\225.html"
 create mode 100755 "\346\250\241\346\235\277css.css"
[root@gitlab-server webhp]# git push origin master					#提交代码至master分支
Username for 'http://192.168.222.133': xuexiaoqiang
Password for 'http://xuexiaoqiang@192.168.222.133': 
Counting objects: 14, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 351.81 KiB | 0 bytes/s, done.
Total 14 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for master, visit:
remote:   http://192.168.222.133/devops/webhp/-/merge_requests/new?merge_request%5Bsource_branch%5D=master
remote: 
To http://192.168.222.133/devops/webhp.git
 * [new branch]      master -> master
 
3、分支管理
#默认因为不是clone的分支。所以需要进行合并。gitlab页面操作即可
#合并后可以重新clone新版。取消分支管理!!

4[root@gitlab-server ~]# rm -rf webhp/				#删除旧的代码
[root@gitlab-server ~]# git clone http://192.168.222.133/devops/webhp.git			#clone合并后的代码
Cloning into 'webhp'...
Username for 'http://192.168.222.133': xuexiaoqiang					#账户用户名(需要拥有项目权限)
Password for 'http://xuexiaoqiang@192.168.222.133': 				#密码
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 19 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (19/19), done.
[root@gitlab-server ~]# ls
1.sh  anaconda-ks.cfg  webhp
[root@gitlab-server ~]# cd webhp/
[root@gitlab-server webhp]# git branch
* main											#分支和gitlab一致
#其实一开始可以。先clone然后在进行add等其他操作。不需要remote链接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pntnPWH-1689072411138)(E:\教学资料\※笔记※\复习\assets\image-20230707182543913.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CNGQzYRc-1689072411138)(E:\教学资料\※笔记※\复习\assets\image-20230707182645611.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gQxvEMd3-1689072411139)(E:\教学资料\※笔记※\复习\assets\image-20230707183140563.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sv1y6Ubm-1689072411139)(E:\教学资料\※笔记※\复习\assets\image-20230707184138144.png)]

1.3 验证gitlab和nginx的联动

1、修改新的index索引代码并提交
#查看nginx的首页是否随着代码的变动而调整
2、git服务器更新代码查看前端页面是否更新
#查看当前git的状态
[root@gitlab-server webhp]# git status
# On branch main
# Your branch is ahead of 'origin/main' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean			#确保本地没有改动或要提交的内容。否则会冲突

#查看分支
[root@gitlab-server webhp]# git branch
* main

#获取最新的代码!!!
[root@gitlab-server webhp]# git pull origin main
Username for 'http://192.168.222.133': xuexiaoqiang 			#可以通过ssh进行拉取代码。需要把公钥放到gitlab中
Password for 'http://xuexiaoqiang@192.168.222.133': 
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From http://192.168.222.133/devops/webhp
 * branch            main       -> FETCH_HEAD
Updating f8dddbb..ac6973c
Fast-forward
 index.html | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
[root@gitlab-server webhp]# 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6gwPOhAT-1689072411139)(E:\教学资料\※笔记※\复习\assets\image-20230707185226362.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vz3dmaAw-1689072411140)(E:\教学资料\※笔记※\复习\assets\image-20230707185855148.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pNb73n7s-1689072411140)(E:\教学资料\※笔记※\复习\assets\image-20230707191050310.png)]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维神经科主任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值