news 2026/6/13 16:05:50

linux-cicd

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux-cicd

htop cpu什么的监控

#t查看进程 /搜索进程 k杀死进程

df -h / 查看磁盘

du -sh 查看当前目录所占磁盘大小

# -h用g m单位查看占用情况 -T

du -sh /opt 查看指定文件占用

#vi 文件斜杠快速查找/ n下一个,N上一个

#tar解压缩

解压:tar -xzvf

压缩:tar -czvf

查看内存从大到小占用ps aux --sort=-%mem | head -15

安装方式依赖版本路径卸载
tar 二进制手动自己装依赖任意自选自定义目录删文件夹
rpm 本地手动补依赖rpm 包固定版本预设路径rpm -e
yum 在线自动拉取依赖源内固定版本系统标准路径yum remov

查看日志

tail -f /var/log/... #默认显示最后十行 -n指定查看多少行

head /var/log/... #默认显示开头十行

tail -f /var/log/... | grep -i "failed"

安装rambbitmq

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

cd /etc/yum.repos.d

vi rabbitmq.repo #粘贴以下内容

[rabbitmq_rabbitmq-server]
name=rabbitmq_rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

yum install -y erlang

yum install -y rabbitmq-server

启动web插件

rabbitmq-plugins enable rabbitmq_management

创建新用户

rabbitmqctl add_user admin root

给用户设置为管理员

rabbitmqctl set_user_tags admin administrator

用户分配虚拟主机权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

安装redis

yum install -y epel-release

yum install -y redis

redis-server -v

systemctl start redis

部署jenks

#可以直接搜官网下载看官网的方法

sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/rpm-stable/jenkins.repo
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install fontconfig java-21-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload

查看版本与支持包

https://www.jenkins.io/doc/book/platform-information/support-policy-java/

下载jenkins包地址

https://get.jenkins.io/war-stable/ #2.492.3

#war包不用解压就放到对应目录就行

#下载jdk

https://adoptium.net/ #官网慢

https://mirrors.tuna.tsinghua.edu.cn/Adoptium/ #国内镜像源更快

#为kenkins安装字体依赖,创建工作目录

yum -y install fontconfig

mkdir -p /data/jenkins/{jdk17,jenkins_data}

#配置jdk17环境

tar xzvf "OpenJDK17U-jdk_x64_linux_hotspot_17.0.19_10 (1).tar.gz" -C /data/jenkins/jdk17/ --strip-components=1

#创脚本文件

touch /data/jenkins/{start.sh,stop.sh} && chmod o+x /data/jenkins/{start.sh,stop.sh}

cd /data/jenkins/

#创建脚本开机自启

vi /etc/systemd/system/jenkins.service

#写入

[Unit]
Description=Jenkins Self Startup
After=network.target

[Service]
Type=forking
User=root
WorkingDirectory=/data/jenkins
ExecStart=/data/jenkins/start.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

#start.sh-------(由于war包安装没有配置目录这个脚本文件就相当于配置文件)

#!/bin/bash
##定义主目录地址
CURDIR='/data/jenkins'
##定义jenkins工作端口号
WORKPOT='9090'
#定义环境变量,启动程序前设置避免对系统默认的jdk环境有影响
export JAVA_HOME=${CURDIR}/jdk17
export PATH=${JAVA_HOME}/bin:$PATH
##以nohup后台启用jenkins,-DJENKINS_HOME选项指定工作目录,-jar指定包路径,--httpPort指定工作端口号,指定日志输出文件路径
nohup java -DJENKINS_HOME=${CURDIR}/jenkins_data -jar ${CURDIR}/jenkins.war --httpPort=${WORKPOT} &>>${CURDIR}/jenkins_$(date +%F).log &

stop.sh

#!/bin/bash
CURDIR='/data/jenkins'
ps aux | grep ${CURDIR}/jenkins.war | grep -v grep | awk '{print $2}' | xargs kill 2>/dev/null

然后运行脚本start.sh

tail -f jenkins_2026-05-29.log -n 100

查看密码

查看密码

cat /data/jenkins/jenkins_data/secrets/initialAdminPassword

#安装推荐插件或者自己选择插件会因为网络问题比较慢多重试几次就行

#安装失败解决思路

docker部署jenkins

linux是多用户,多任务的机器

ps -ef 查看进程

cat /etc/passwd 查看用户

useradd ljh

passwd ljh

ssh ljh@ip地址

不同用户登录进去会加载不一样的观景变量 。bash_profile

[root@qfedu.com ~]# yum install git git-core gitweb -y
[root@qfedu.com ~]# useradd git
[root@qfedu.com ~]# passwd git
[root@qfedu.com ~]# mkdir /git-root/
[root@qfedu.com ~]# cd /git-root/
[root@qfedu.com git-root]# git init --bare shell.git

# 1. 给裸仓库改权限
[root@qfedu.com git-root]# chown -R git:git shell.git

# 2. 切换到git用户
[root@qfedu.com git-root]# su - git

# 3. 生成SSH密钥对
[git@qfedu.com ~]$ ssh-keygen -t rsa

# 4. 进入.ssh目录
[git@qfedu.com ~]$ cd .ssh/

# 5. 把公钥复制成授权文件
[git@qfedu.com .ssh]$ cp id_rsa.pub authorized_keys

# 6. (可选)编辑授权文件(图里笔误,应为authorized_keys)
[git@qfedu.com .ssh]$ vim authorized_key

# 7. 退出git用户,回到root
[git@qfedu.com .ssh]$ logout

# 8. 给git用户设置专用shell,限制登录
[root@qfedu.com git-root]# usermod -s /usr/bin/git-shell git

# 9. 回到root家目录
[root@qfedu.com git-root]# cd

git-client

[root@qfedu.com ~]# yum install git git-core gitweb -y

# 1. 客户端生成SSH密钥
[root@qfedu.com ~]# ssh-keygen

# 2. 把公钥上传到Git服务器
[root@qfedu.com ~]# ssh-copy-id git@192.168.1.178

# 3. 从服务器克隆裸仓库
[root@qfedu.com ~]# git clone git@192.168.1.102:/git-root/shell.git

# 4. 查看克隆下来的文件
[root@qfedu.com ~]# ls
rh shell

# 5. 进入仓库目录
[root@qfedu.com ~]# cd shell/

# 6. 创建测试文件
[root@qfedu.com shell]# vim test.sh

# 7. 把文件加入暂存区
[root@qfedu.com shell]# git add test.sh

# 8. 配置Git用户邮箱(首次提交需要)
[root@qfedu.com shell]# git config --global user.email "you@example.com"

# 9. 配置Git用户名(首次提交需要)
[root@qfedu.com shell]# git config --global user.name "Your Name"

# 10. 提交代码到本地仓库(加-m就不会打开编辑器)
[root@qfedu.com shell]# git commit -m 'first commit'

# 11. 把本地提交推送到服务器裸仓库
[root@qfedu.com shell]# git push origin master

git reflog #查看历史版本

git reset 版本号 #回退版本

安装gitlab(需要4g以上大内存)

# 关闭防火墙(生产环境不建议直接关,可按需开放端口)
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 开启邮件服务 postfix
systemctl start postfix
systemctl enable postfix

#安装gitlab依赖包

yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python

#安装gitlab官方源

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

#yum安装gitlab

yum -y install gitlab-ce

#yum安装慢可以选择直接去清华镜像源下载rpm包

Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/#然后安装

yum -y localinstall gitlab-ce-16.8.0-ce.0.el7.x86_64.rpm

#rpm包用完可删

/opt是 Linux 系统里一个专门用来放第三方、可选软件的目录,GitLab 安装后也会把核心文件放在这里。

#gitlab在opt目录下

配置文件在/etc/gitlab下

#修改配置文件

external_url 'http://192.168.255.91' 改为本机ip

#初始化gitlab

gitlab-ctl reconfigure

#启动所以服务

gitlab-ctl start

gitlab-ctl enable

#浏览器输入ip访问gitlab

cat /etc/gitlab/initial_root_password #查看root密码

然后用户:root 密码:复制的

#gitlab配置邮箱

vi /etc/gitlab/gitlab.rb

#文件末尾添加

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '276267003@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['gitlab_email_reply_to'] = '276267003@qq.com'
gitlab_rails['gitlab_email_subject_suffix'] = '[gitlab]'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "276267003@qq.com"
gitlab_rails['smtp_password'] = "kktohrvdryglbjjh"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true

#可能会报错说

gitlab_rails['smtp_enable_starttls_auto'] = true#可以把这个改成false
gitlab_rails['smtp_tls'] = true

这俩不能同时开启

#重新加载配置文件

gitlab-ctl reconfigure

gitlab-ctl stop
gitlab-ctl start

#测试邮件发送

gitlab-rails console

Notify.test_email('3423903428@qq.com', 'Message Subject', 'Message Body').deliver_now

create group可以创建项目组

create people可以创建用户,编译用户可以设置密码后续登录

进入项目组再邀请项目成员

想要合并请求要别人批准

#要切换到指定目录才可以访问git是因为只有tom用户设置了ssh公钥信任

#git pull 只能拉取所在分支的内容 (在bb分支就不能拉到master分支的)

#数据备份

vi /etc/gitlab/gitlab.rb

gitlab_rails['manage_backup_path'] = true #开启备份功能
gitlab_rails['backup_path'] = "/data/gitlab/backups" #设置备份目录
gitlab-ctl reconfig #重新加载配置

gitlab-ctl restart #重启生效

mkdir -p /data/gitlab/backups

chown -R git:git /data/gitlab/backups

#执行命令进行备份

/opt/gitlab/bin/gitlab-rake gitlab:backup:create

#制定定时任务

crontab -e

# 每日凌晨2点自动全量备份

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

#设置保留时间

vim /etc/gitlab/gitlab.rb
# 配置备份留存7天,单位:秒 7*24*3600=604800
gitlab_rails['backup_keep_time'] = 604800

#恢复数据

----------源服务器--------------------------------------------

# 1. 生成完整备份(生成 tar 包)
gitlab-rake gitlab:backup:create

# 2. 备份 2 个必须的密钥文件(非常重要!)
cp /etc/gitlab/gitlab.rb /data/gitlab/backups/
cp /etc/gitlab/gitlab-secrets.json /data/gitlab/backups/

# 3. 把所有备份文件传到新服务器(tar + 两个配置)
# 把 192.168.255.92 换成你的新服务器 IP

rsync -av /data/gitlab/backups/* root@192.168.255.92:/data/gitlab/backups/
rsync -av /etc/gitlab/gitlab.rb root@192.168.255.92:/etc/gitlab/
rsync -av /etc/gitlab/gitlab-secrets.json root@192.168.255.92:/etc/gitlab/

----------新服务器-------------------------------------------------
gitlab-ctl stop puma
gitlab-ctl stop sidekiq

chown git:git /data/gitlab/backups/*.tar

gitlab-rake gitlab:backup:restore BACKUP=1780537766_2026_06_04_16.8.0

gitlab-ctl start

#mavean和nexus3

yum install -y maven

#或者二进制包安装

#1.下载3.9.6(稳定适配JDK17)
wget https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
tar -zxvf apache-maven-3.9.6-bin.tar.gz -C /usr/local/
#2.配置/etc/profile环境变量,替换旧maven
export M2_HOME=/usr/local/apache-maven-3.9.6 #解压后的maven所在目录
export PATH=$PATH:$M2_HOME/bin
source /etc/profile
mvn -v

  • <!--注释开始
  • -->注释结束

#1、添加adoptium源
wget -O /etc/yum.repos.d/adoptium.repo https://packages.adoptium.net/artifactory/rpm/centos/7/adoptium.repo
rpm --import https://packages.adoptium.net/artifactory/api/gpg/key/public

#2、安装完整JDK17(带编译工具=devel)
yum clean all && yum makecache
yum install -y temurin-17-jdk

#安装nexus3

cd /opt

wget https://dependency-fe.oss-cn-beijing.aliyuncs.com/nexus-3.29.0-02-unix.tar.gz

#3.6x版本一下的存在高危漏洞

https://help.sonatype.com/en/download.html#官方安装网站

# 解压
tar -zxvf nexus-3.29.0-02-unix.tar.gz

#启动

/opt/nexus-3.29.0-02/bin/nexus start

#查看默认密码

cat /opt/sonatype-work/nexus3/admin.password

#官方提供的免费仓库

#仓库类型

#release(稳定版)snapshot(不稳定版)

#创建私有仓库

setting->repository->createrepository

#将私有仓库纳入maven-public

#创建本地用户

#上传jar包

#jenkins非容器化和容器化

#配置

#git同理

#下载插件

Authorize project , Role-Based Authorization-Strategy, ssh ,Maven Intergration

#jenkins添加远程机器

1.先新建域

2.再新建凭证

3.添加凭证

#harbor下载

#官方网站下载

Releases · goharbor/harbor · GitHubAn open source trusted cloud native registry project that stores, signs, and scans content. - Releases · goharbor/harborhttps://github.com/goharbor/harbor/releases#安装完后

#解压

tar -xvzf

cd harbor

cp harbor.yml.tmpl harbor.yml

vi harbor.yml

#hostname: 改成你服务器本机IP(比如192.168.x.x,不能写localhost/127.0.0.1)

#注释掉https下的所有

#在./install.sh前需要提前安装好docker-ce docker-compose才能安装成功

#默认用户名密码:admin : Harbor12345

#不对的话可以去harbor.yml查grepharbor_admin_password

#先创项目,再创用户,进入项目让用户加入项目

#json文件配置

cat > /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://ccr.ccs.tencentyun.com",
"https://hub.xdark.top",
"https://dhub.kubesre.xyz",
"https://docker.kejilion.pro",
"https://docker.xuanyuan.me",
"https://docker.hlmirror.com",
"https://run-docker.cn",
"https://docker.sunzishaokao.com",
"https://image.cloudlayer.icu",
"https://docker.tbedu.top",
"https://hub.crdz.gq",
"https://docker.melikeme.cn",
"https://xuanyuan.cloud"
],
"insecure-registries": ["192.168.255.92:80"],#要有这个才能推送
"log-opts": {
"max-size": "5m",
"max-file":"3"
},
"data-root": "/var/lib/docker",
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

#推送镜像上harbor

#先login

docker login 192.168.255.92:80 -u admin -p Harbor12345

#打标签记得要带80端口

docker tag nginx 192.168.255.92:80/jenkins/nginx:v0

docker push 192.168.255.92:80/jenkins/nginx:v0

#从harbor上拉取镜像

但也是不带端口的需要手动添加端口否则会报错,默认443端口

#业务服务器

#也要安装docker docker-compose

#还有jd

yum install -y epel-release

yum install -y jq

visudo

#添加 Defaults:root !requiretty

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 16:05:50

Π0 学习路线(更新中)

环境的配置和运行 Π环境部署&#xff08;运行 且 无理论讲解&#xff09;-CSDN博客文章浏览阅读56次&#xff0c;点赞6次&#xff0c;收藏3次。因为我是新手所以直接采用gputop。https://blog.csdn.net/qq_62260432/article/details/161925028?fromshareblogdetail&shar…

作者头像 李华
网站建设 2026/6/13 16:03:53

ARM9 MCU中断编程实战:深度解析USB与I2C中断机制与避坑指南

1. 项目概述与核心价值在嵌入式系统开发中&#xff0c;尤其是涉及复杂外设如USB和I2C通信时&#xff0c;中断机制的设计与实现往往是决定系统实时性、稳定性和效率的关键。很多开发者面对芯片手册中繁杂的寄存器描述和中断事件列表时&#xff0c;容易陷入“知其然&#xff0c;不…

作者头像 李华
网站建设 2026/6/13 16:01:35

星露谷物语模组开发终极指南:SMAPI完整安装与配置教程

星露谷物语模组开发终极指南&#xff1a;SMAPI完整安装与配置教程 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI SMAPI&#xff08;Stardew Modding API&#xff09;是星露谷物语最强大的模组加载框…

作者头像 李华
网站建设 2026/6/13 16:00:52

SIMCOM Quectel Fbcom 方便 自定义指令 检查网络状态的程序

原理&#xff1a;类似echo , 不用额外安装串口库等sudo cat /dev/ttyUSB2 & sudo echo -ne ATCUSBPIDSWITCH9011,1,1\r\n | sudo tee /dev/ttyUSB2 >/dev/null方便一次发送多个指令的程序#!/usr/bin/env python3 import os,termios,time,select,sysports["/dev/tt…

作者头像 李华
网站建设 2026/6/13 16:00:51

如何免费解锁Cursor Pro高级功能:3步解决试用限制的终极方案

如何免费解锁Cursor Pro高级功能&#xff1a;3步解决试用限制的终极方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached yo…

作者头像 李华