├── .gitignore ├── _config.yml ├── Backend ├── Csharp │ └── main.md └── Python │ ├── main.md │ └── start.md ├── 运维文档 ├── images │ ├── IP地址.png │ ├── 国内镜像.png │ ├── 打开终端.png │ ├── ssh保存密码.png │ ├── 安装Redis.png │ ├── 安装SSH服务.png │ ├── 查看容器列表.png │ ├── 选择DVD.png │ ├── Hyper安装勾选.png │ ├── Hyper管理器.png │ ├── Hyper管理工具.png │ ├── Smartty配置.png │ ├── 开始安装redis.png │ ├── Centos7安装主界面.png │ ├── Centos7安装前.png │ ├── Centos7安装步骤1.png │ ├── Hyper管理器界面.png │ ├── Smartty传输文件.png │ ├── 下载Centos按钮.png │ ├── 检查Docker镜像列表.png │ ├── 虚拟机安装向导步骤1.png │ ├── 虚拟机安装向导步骤2.png │ ├── 虚拟机安装向导步骤3.png │ ├── 虚拟机安装向导步骤4.png │ ├── 虚拟机安装向导步骤5.png │ ├── 虚拟机安装向导步骤6.png │ ├── 虚拟机安装向导步骤7.png │ ├── 虚拟机安装向导步骤8.png │ ├── 虚拟机操作界面-关机状态.png │ ├── Centos7安装-打开网络.png │ ├── Centos7安装-最小安装.png │ ├── Centos7安装-欢迎界面.png │ ├── Centos7安装-磁盘选项.png │ ├── Centos7安装-语言选择.png │ ├── Centos7安装-进系统.png │ ├── Centos7安装-Gnome桌面.png │ ├── Centos7安装-安装过度界面.png │ ├── Centos7安装-接收许可证.png │ ├── Centos7安装-配置用户界面.png │ ├── Smartty操纵centos.png │ ├── Smartty连接centos.png │ └── Centos7安装-设置root密码.png ├── termux-redis.md ├── Centos安装Docker.md ├── Ubuntu安装Git最新版.md ├── 虚悬镜像.md ├── Solr7部署.md ├── 虚拟机环境下Centos7磁盘扩容.md ├── Ubuntu安装Nodejs.md ├── 在win10操作系统下安装Hyper-v.md ├── Centos下如何使用tcpdump抓包.md ├── Centos环境下防火墙配置.md ├── SpringBoot部署.md ├── Centos物理机如何扩展硬盘.md ├── samba如何和windows共享交互.md ├── 安装Java.md ├── 安装ELK.md ├── git-two-account.md ├── 安装Maven.md ├── Elasticsearch测试.md ├── termux-mysql.md ├── Mysql导入导出.md ├── Docker日志容量限制.md ├── 通过Hyper-v安装Centos7.5.md ├── 基于Docker安装和运行常用容器.md ├── 在纯净的Centos7.5下安装常用软件和Docker.md └── Mosquitto安装使用.md ├── AI ├── AI.md └── Deepseek.md ├── 实战演练 └── 自动化部署 │ ├── images │ ├── gitlabbaidu.png │ ├── gitlablogin.png │ └── nginxconf.png │ ├── aspnetcore.md │ ├── gitlabSetup.md │ ├── CICD.md │ └── main.md ├── 编程文档 ├── 使用指定端口运行项目.md ├── EF设置查询超时.md └── git │ └── main.md ├── LICENSE ├── DevOps ├── SonarQubeUse.md └── SonarQube.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /Backend/Csharp/main.md: -------------------------------------------------------------------------------- 1 | #### Csharp 相关研究 2 | - 基础语法 3 | - 跨平台相关 4 | - 常用框架研究 5 | - 性能指标 6 | -------------------------------------------------------------------------------- /运维文档/images/IP地址.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/IP地址.png -------------------------------------------------------------------------------- /运维文档/images/国内镜像.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/国内镜像.png -------------------------------------------------------------------------------- /运维文档/images/打开终端.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/打开终端.png -------------------------------------------------------------------------------- /运维文档/images/ssh保存密码.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/ssh保存密码.png -------------------------------------------------------------------------------- /运维文档/images/安装Redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/安装Redis.png -------------------------------------------------------------------------------- /运维文档/images/安装SSH服务.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/安装SSH服务.png -------------------------------------------------------------------------------- /运维文档/images/查看容器列表.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/查看容器列表.png -------------------------------------------------------------------------------- /运维文档/images/选择DVD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/选择DVD.png -------------------------------------------------------------------------------- /运维文档/images/Hyper安装勾选.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper安装勾选.png -------------------------------------------------------------------------------- /运维文档/images/Hyper管理器.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理器.png -------------------------------------------------------------------------------- /运维文档/images/Hyper管理工具.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理工具.png -------------------------------------------------------------------------------- /运维文档/images/Smartty配置.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty配置.png -------------------------------------------------------------------------------- /运维文档/images/开始安装redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/开始安装redis.png -------------------------------------------------------------------------------- /AI/AI.md: -------------------------------------------------------------------------------- 1 | ### AI introduce 2 | 3 | ### Article list 4 | - [Run DeepSeek in laptop](/AI/Deepseek.md) 5 | 6 | -------------------------------------------------------------------------------- /运维文档/images/Centos7安装主界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装主界面.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装前.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装前.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装步骤1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装步骤1.png -------------------------------------------------------------------------------- /运维文档/images/Hyper管理器界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理器界面.png -------------------------------------------------------------------------------- /运维文档/images/Smartty传输文件.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty传输文件.png -------------------------------------------------------------------------------- /运维文档/images/下载Centos按钮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/下载Centos按钮.png -------------------------------------------------------------------------------- /运维文档/images/检查Docker镜像列表.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/检查Docker镜像列表.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤1.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤2.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤3.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤4.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤5.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤6.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤7.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机安装向导步骤8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤8.png -------------------------------------------------------------------------------- /运维文档/images/虚拟机操作界面-关机状态.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机操作界面-关机状态.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-打开网络.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-打开网络.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-最小安装.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-最小安装.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-欢迎界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-欢迎界面.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-磁盘选项.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-磁盘选项.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-语言选择.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-语言选择.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-进系统.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-进系统.png -------------------------------------------------------------------------------- /实战演练/自动化部署/images/gitlabbaidu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/gitlabbaidu.png -------------------------------------------------------------------------------- /实战演练/自动化部署/images/gitlablogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/gitlablogin.png -------------------------------------------------------------------------------- /实战演练/自动化部署/images/nginxconf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/nginxconf.png -------------------------------------------------------------------------------- /编程文档/使用指定端口运行项目.md: -------------------------------------------------------------------------------- 1 | #### .net core使用指定端口运行项目 2 | 3 | ``` 4 | dotnet xxxx.dll --server.urls="http://*:5555" 5 | 6 | ``` -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-Gnome桌面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-Gnome桌面.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-安装过度界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-安装过度界面.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-接收许可证.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-接收许可证.png -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-配置用户界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-配置用户界面.png -------------------------------------------------------------------------------- /运维文档/images/Smartty操纵centos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty操纵centos.png -------------------------------------------------------------------------------- /运维文档/images/Smartty连接centos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty连接centos.png -------------------------------------------------------------------------------- /运维文档/termux-redis.md: -------------------------------------------------------------------------------- 1 | #### 请先安装vim ,nvim等文本编辑工具 2 | 3 | 4 | #### 安装步骤 5 | - 安装软件 6 | - 启动 7 | - 故障解决 8 | - 连接测试 9 | -------------------------------------------------------------------------------- /运维文档/images/Centos7安装-设置root密码.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-设置root密码.png -------------------------------------------------------------------------------- /Backend/Python/main.md: -------------------------------------------------------------------------------- 1 | ### Python相关研究 2 | - [Python 快速入门](./start.md) 3 | - Python 基础语法 4 | - Python Web开发 5 | - Pyton 桌面开发 6 | - Python 爬虫相关 7 | - Python 性能相关 8 | -------------------------------------------------------------------------------- /运维文档/Centos安装Docker.md: -------------------------------------------------------------------------------- 1 | #### 本文档安装的是docker ce 版本,EE版本貌似要收费 2 | 3 | 根据以下这篇教程安装的 4 | 5 | 安装教程 -------------------------------------------------------------------------------- /运维文档/Ubuntu安装Git最新版.md: -------------------------------------------------------------------------------- 1 | #### Ubuntu18安装最新版本的git 2 | 3 | #### 输入如下命令即可: 4 | ``` 5 | sudo add-apt-repository ppa:git-core/ppa 6 | 7 | sudo apt-get update 8 | 9 | sudo apt-get install git 10 | 11 | ``` -------------------------------------------------------------------------------- /运维文档/虚悬镜像.md: -------------------------------------------------------------------------------- 1 | #### 本文主要是删除虚悬镜像 2 | 3 | 我们在build镜像的过程中,可能会产生一些临时的不具有名称也没有作用的镜像他们的名称一般都是 4 | ``` 5 | 6 | ``` 7 | 我们可以执行下面的命令将其清除掉: 8 | 9 | ``` 10 | docker rmi $(docker images -f "dangling=true" -q) 11 | 12 | # 或者 13 | 14 | docker image prune -a -f 15 | 16 | ``` -------------------------------------------------------------------------------- /编程文档/EF设置查询超时.md: -------------------------------------------------------------------------------- 1 | #### EntityFramework 如何配置Sql查询超时问题 2 | 3 | 只需要在DBContext中加上这句话就好了 4 | 5 | ``` 6 | 7 | public MyInfoDbContext(DbContextOptions options) 8 | : base(options) 9 | { 10 | this.Database.SetCommandTimeout(600000); 11 | } 12 | 13 | 14 | ``` -------------------------------------------------------------------------------- /Backend/Python/start.md: -------------------------------------------------------------------------------- 1 | #### 背景知识 2 | 3 | 4 | #### 如何安装 5 | 6 | 7 | 8 | 9 | ##### Windows 10 | 11 | 12 | ##### Linux 13 | 14 | 15 | ##### MacOs 16 | 17 | 18 | 19 | 20 | #### 环境的差异 21 | 几大操作系统的环境差异 22 | 23 | 24 | #### 开发工具的选择 25 | 26 | ##### Vscode 27 | 28 | ##### Pycharm 29 | 30 | 31 | #### Python能做什么? 32 | 33 | -------------------------------------------------------------------------------- /运维文档/Solr7部署.md: -------------------------------------------------------------------------------- 1 | ### Solr7.2.1在windows环境,部署在tomcat下,连接MSSQL数据库 2 | 3 | 首先根据看下面这篇文档可以解决90%的问题 4 | 5 | 6 | Solr7.2部署 7 | 8 | 但是仍然有一些问题没有说明,比如连接MSSQL应该怎么处理 9 | Sqlserver的连接方式是,如果是用JDBC,必须去下载JDBC的驱动程序,sqljdbc4.jar或者更高版本 10 | 然后复制到 tomcat/webapps/solr/WEB-INF/lib 目录下,否则就会无法连接数据库 -------------------------------------------------------------------------------- /运维文档/虚拟机环境下Centos7磁盘扩容.md: -------------------------------------------------------------------------------- 1 | #### Hyper-v虚拟机环境下的Centos7磁盘扩容 2 | 3 | 首先参考下面的文章: 4 | 5 | 6 | [Hyper-v下Centos7使用LVM实现动态扩容磁盘](http://www.apoyl.com/?p=2232) 7 | [阿里云对应教程-扩展分区和文件系统_Linux系统盘](https://help.aliyun.com/document_detail/111738.html?spm=a2c4g.11186623.4.2.6c297f67raZJ60) 8 | 9 | 其中还缺关键的一部 10 | 在磁盘创建好以后,必须运行以下命令,pvcreate /dev/sda3 才会认 11 | 12 | ``` 13 | mkfs.ext4 /dev/sdf3 14 | 15 | ``` -------------------------------------------------------------------------------- /运维文档/Ubuntu安装Nodejs.md: -------------------------------------------------------------------------------- 1 | #### Ubuntu怎么安装最新版的Nodejs、npm等 2 | 3 | 4 | #### 下载解压缩 5 | 1. 去官方网站下载最新的软件包,或者用命令wget下载 6 | 2. 解压缩:tar zxvf node-xxx.tar.gz 7 | 3. 重命名:mv node-xxx.tar.gz node 8 | 4. 移动文件到目录:mv node /usr/local 9 | 10 | #### 建立软连接 11 | ``` 12 | ln -s /usr/loca/node/bin/node /usr/bin/node 13 | ln -s /usr/loca/node/bin/npm /usr/bin/npm 14 | ln -s /usr/loca/node/bin/npx /usr/bin/npx 15 | 16 | ``` 17 | -------------------------------------------------------------------------------- /运维文档/在win10操作系统下安装Hyper-v.md: -------------------------------------------------------------------------------- 1 | #### Hyper-v介绍 2 | 3 | Hpyer-v是win10自带的虚拟机程序,和vmware一样,都能提供虚拟化环境, 4 | 不同的是hyper-v是win10附送的,而日常所见的vmware其实是需要收费的,虽然vmware破解版很容易找到 5 | 6 | Hyper-v只有在win10专业版和企业版才能安装,家庭版是不可以的 7 | 8 | 其他虚拟化软件就不多做介绍了 9 | 10 | #### 安装过程 11 | 1. 在控制面板找到-程序和功能-启用或者关闭Windows功能 12 | 13 | 2. 勾选截图中的Hyper-v,建议子项也全部勾选 14 | 15 | ![截图](images/Hyper安装勾选.png) 16 | 17 | 3. 等待win10自动下载安装包,过程需要连接网络 18 | 19 | 4. 打开控制面板-找到管理工具,会看到多出一个Hyper-v管理器,右键单击-发送-桌面快捷方式 20 | 21 | ![截图](images/Hyper管理工具.png) 22 | 23 | 5. 打开Hpyer-v管理工具,证明已经安装完毕 24 | 25 | ![截图](images/Hyper管理器界面.png) -------------------------------------------------------------------------------- /运维文档/Centos下如何使用tcpdump抓包.md: -------------------------------------------------------------------------------- 1 | #### Centos环境下,如何使用tcpdump分析网络流量 2 | 3 | #### 如何安装 4 | ``` 5 | yum install -y tcpdump 6 | ``` 7 | 8 | #### 使用: 9 | 10 | ``` 11 | 12 | tcpdump dst 192.168.0.33 -s 0 -c 100 -w /home/target.cap 13 | 14 | tcpdump src 192.168.0.33 -s 0 -c 100 -w /home/target.cap 15 | 16 | ``` 17 | 18 | #### 参考资料: 19 | - [CentOS中使用tcpdump抓包](https://www.cnblogs.com/hongdada/p/10565898.html) 20 | - [抓包总结](https://www.cnblogs.com/chenpingzhao/p/9108570.html) 21 | - [Tcpdump命令的使用与示例](https://www.iteblog.com/tcpdump_usage/) 22 | - [Linux tcpdump命令](https://www.runoob.com/linux/linux-comm-tcpdump.html) 23 | - [CentOS下使用tcpdump网络抓包-这个更简单明了一点](https://www.cnblogs.com/magic-chenyang/p/10620600.html) -------------------------------------------------------------------------------- /运维文档/Centos环境下防火墙配置.md: -------------------------------------------------------------------------------- 1 | #### CENTOS 下安装防火墙 2 | 3 | 4 | 根据以下这篇教程配置 5 | 6 | Iptables安装教程 7 | 8 | 9 | 10 | Centos关闭默认防火墙,开启Iptables 11 | 12 | Centos firewall防火墙详解 13 | 14 | #### firewalld使用简介 15 | ``` 16 | 怎么开启一个端口 17 | 添加 18 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 19 | 重新载入 20 | firewall-cmd --reload 21 | 查看 22 | firewall-cmd --zone=public --query-port=80/tcp 23 | 删除 24 | firewall-cmd --zone=public --remove-port=80/tcp --permanent 25 | 26 | ``` -------------------------------------------------------------------------------- /运维文档/SpringBoot部署.md: -------------------------------------------------------------------------------- 1 | #### SpringBoot在Docker下部署注意事项 2 | - DockerCompose如何编写 3 | 4 | 使用DockerCompose编写部署文件的时候,必须加上network_mode: "host" 这句话,否则会部署失败 5 | 这给出我目前使用的DockerCompose.yml 6 | 7 | ``` 8 | version: '3.1' 9 | 10 | services: 11 | 12 | Cex_Server: 13 | image: cex 14 | build: 15 | context: ../src/target/ 16 | ports: 17 | - "9002:80" 18 | network_mode: "host" 19 | expose: 20 | - "9002" 21 | 22 | ``` 23 | 24 | - JDK镜像的选择 25 | 26 | JDK镜像如果你通过Docker search搜索出来会看到无数结果,我们只使用以下镜像 27 | 28 | java:8 29 | 30 | - Dockerfile编写,以下给出我目前使用的 31 | 32 | ``` 33 | FROM java:8 34 | 35 | WORKDIR /home 36 | COPY MyApp.jar app.jar 37 | 38 | ENTRYPOINT ["java","-jar","app.jar"] 39 | 40 | ``` 41 | -------------------------------------------------------------------------------- /编程文档/git/main.md: -------------------------------------------------------------------------------- 1 | ### 本文档是工作中常见Git问题收集 2 | 主要内容如下: 3 | 1. git强制拉取代码 4 | 2. git从远程仓库拉取代码到本地 5 | 3. git切换远程仓库到本地 6 | 7 | 8 | 9 | #### 分类文档 10 | 1. git强制拉取远程代码,覆盖本地代码 11 | ``` 12 | git fetch --all 13 | git reset --hard origin/master 14 | git pull 15 | ``` 16 | 17 | 2. git从远程仓库拉取代码到本地 18 | ``` 19 | git clone http://UserName:Password@github.com/light2001/MyDocs.git 20 | 21 | 注意: 22 | 如果用户或者密码中有"@"符号,则需要用 "%40" 代替,否则会报密码错误 23 | ``` 24 | 25 | 3. git切换远程仓库到本地 26 | 27 | 通过 28 | ``` 29 | git checkout -b 30 | ``` 31 | 创建本地分支,同时制定远程仓库名,会自动建立链接,好处是以后可以直接用git pull拉取代码 32 | ``` 33 | git checkout -b dev origin/dev 34 | ``` 35 | 36 | 如果远程仓库无法识别,则需要麻烦一点的步骤 37 | ``` 38 | git fetch origin 远程分支名x:本地分支名x 39 | ``` 40 | 这样存在的问题是,需要自己手动 41 | ``` 42 | git checkout branch 43 | ``` 44 | 切换分支,然后用 45 | ``` 46 | git branch -u origin/远程分支 47 | ``` 48 | 建立链接 -------------------------------------------------------------------------------- /运维文档/Centos物理机如何扩展硬盘.md: -------------------------------------------------------------------------------- 1 | ### 扩充硬盘 2 | 3 | - 查看硬盘的设备名 4 | - 格式化硬盘 5 | - 挂载 6 | - 重启,查看 7 | 8 | #### 查看硬盘的设备名 9 | 10 | >两种方式都可以 11 | >fdisk -l //或者cat /proc/partitions 12 | 13 | 14 | #### 新建分区 15 | 16 | >有些人会在这里新建分区 但是由于本人的硬盘是 希捷4T SSD 17 | >所以我在这里也提供新建分区的方法 18 | >fdisk /dev/sdb //这里的sdb是新添加出来的硬盘 19 | > 20 | >n //添加新分区 21 | > 22 | >p //创建主分区 23 | > 24 | >1 分区号1 25 | > 26 | >按回车 //起始扇区选择默认 27 | > 28 | >也是回车默认 //为了不浪费空间 29 | > 30 | >p //查看创建出来的分区 31 | > 32 | >w //保存 33 | > 34 | 35 | #### 格式化硬盘 36 | 37 | >mkfs.ext4 /dev/sdb //或者mkfs -t ext4 /dev/sdb 38 | > 39 | 40 | 41 | #### 挂载硬盘 42 | 43 | >vim /etc/fstab 进入文件编辑 44 | > 45 | >File&fstab 46 | > 47 | >/dev/sdb /newdisk ext4 defaults 0 0 48 | 49 | 50 | | 硬盘 | 位置 | 格式 | 默认| 51 | |---|---|--- |----| 52 | |/dev/sdb1 | /mnt/daobin | ext4 | defaults 0 0 | 53 | 54 | #### 重启,查看 55 | >reboot 56 | > 57 | > df -h 58 | >如果有你所操作的那个硬盘则挂载成功 59 | 60 | -------------------------------------------------------------------------------- /实战演练/自动化部署/aspnetcore.md: -------------------------------------------------------------------------------- 1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二 2 | 3 | 4 | --- 5 | 背景知识: 6 | 7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可 8 | 这次选择的是.Net Core后端项目 9 | 10 | 想要实现这个目标,需要掌握以下基本知识 11 | 1. Centos基本操作,linux常用命令 12 | 2. Git代码管理知识,常用命令 13 | 3. docker基础知识,docker-compose基础 14 | 4. nginx基础理论,配置文件相关知识 15 | 5. gitlab管理知识,基础操作 16 | 17 | 18 | --- 19 | 20 | 21 | 22 | 由于篇幅较长,因此拆分为几篇文章: 23 | 24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 25 | 26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 27 | 28 | ### 步骤三.Net Core项目配置 29 | 30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) 31 | --- 32 | ### 步骤三.Net Core项目配置 33 | 34 | Asp.netcore是.net平台目前最流行的技术平台,本文将创建一个.net core项目用于实现自动化部署的测试项目 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | --- 45 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 46 | 47 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 48 | 49 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) 50 | -------------------------------------------------------------------------------- /实战演练/自动化部署/gitlabSetup.md: -------------------------------------------------------------------------------- 1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二 2 | 3 | 4 | --- 5 | 背景知识: 6 | 7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可 8 | 这次选择的是.Net Core后端项目 9 | 10 | 想要实现这个目标,需要掌握以下基本知识 11 | 1. Centos基本操作,linux常用命令 12 | 2. Git代码管理知识,常用命令 13 | 3. docker基础知识,docker-compose基础 14 | 4. nginx基础理论,配置文件相关知识 15 | 5. gitlab管理知识,基础操作 16 | 17 | 18 | --- 19 | 20 | 21 | 22 | 由于篇幅较长,因此拆分为几篇文章: 23 | 24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 25 | 26 | ### 步骤二gitlab配置 27 | 28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 29 | 30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) 31 | --- 32 | 33 | ### 步骤二gitlab配置 34 | 35 | gitlab是开源源代码管理服务器的一种实现,软件本身特色很多,除了比较耗费资源意外,各方面表现都很优秀,因此很适合拿来做源代码管理 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | --- 46 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 47 | 48 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 49 | 50 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) -------------------------------------------------------------------------------- /运维文档/samba如何和windows共享交互.md: -------------------------------------------------------------------------------- 1 | #### 本文介绍samba-client如何和windows目录交互 2 | 3 | 背景介绍: 4 | 5 | 本文基于Centos7.6环境下操作,内容是,从linux的samba客户端,连接到windows的共享目录,并实现开机自动挂载 6 | 7 | #### 先安装软件 8 | ``` 9 | # 挂载目录用的 10 | yum -y install cifs-utils 11 | 12 | # samba的客户端软件 13 | yum -y install samba-client 14 | 15 | ``` 16 | 17 | 18 | #### 然后连接目录 19 | ``` 20 | smbclient //192.168.8.20/foldername -U DomainName/username%password 21 | 22 | # 连接后可以用ls等命令查看目录下的内容,退出请输入: 23 | 24 | exit 25 | 26 | ``` 27 | 28 | #### 挂载目录到指定目录下,需要权限 29 | ``` 30 | 31 | sudo mount.cifs -o user="username",pass="password",dom="domainname" //192.168.8.20/gcs /mnt/foldername 32 | 33 | 34 | ``` 35 | 36 | #### 断开目录 37 | 38 | ``` 39 | umount /mnt/foldername 40 | 41 | ``` 42 | 43 | 44 | #### 设置开机就挂载 45 | 46 | ``` 47 | # 编辑/etc/fstab文件,在里面增加一行内容,就会实现开机就加载 48 | vim /etc/fstab 49 | 50 | mount.cifs -o user="username",pass="password",dom="domainname" //192.168.8.20/gcs /mnt/foldername 51 | 52 | ``` -------------------------------------------------------------------------------- /运维文档/安装Java.md: -------------------------------------------------------------------------------- 1 | ### JAVA介绍 2 | 3 | JAVA是目前全球占比最大的开发语言,这个就不多做介绍了 4 | 5 | #### RPM 安装操作 6 | 7 | 命令: 8 | rpm -i 需要安装的包文件名 9 | 举例如下: 10 | rpm -i example.rpm 安装 example.rpm 包; 11 | rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息; 12 | rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度; 13 | RPM 查询操作 14 | 15 | 16 | 17 | #### 安装步骤 18 | - 打开Oracle官网,找到JDK下载地址,然后复制到ssh终端里用wget下载,或者从windows上下载,传送到centos服务器下 19 | ``` 20 | wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-i586.rpm 21 | 22 | ``` 23 | 24 | - 通过RPM命令安装rpm包 25 | 26 | ``` 27 | rpm -ivh jdk-8u201-linux-i586.rpm 28 | 29 | ``` 30 | 31 | - 用java -version 命令查看是否安装成功,如果看到如下命令,则表示已经安装成功了 32 | 33 | ``` 34 | [root@localhost conf]# java -version 35 | java version "1.8.0_201" 36 | Java(TM) SE Runtime Environment (build 1.8.0_201-b09) 37 | Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode) 38 | [root@localhost conf]# 39 | 40 | ``` 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 kevin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /运维文档/安装ELK.md: -------------------------------------------------------------------------------- 1 | #### 如何安装ELK 2 | 3 | 基于Docker下安装ELK服务器 4 | 5 | #### 参考文档 6 | [CSDN连接:https://blog.csdn.net/qq1031893936/article/details/93798646](https://blog.csdn.net/qq1031893936/article/details/93798646) 7 | 8 | #### 其他说明 9 | 10 | Elasticsearch 已经更新到了7.6.0,如果用docker pull 默认版本不是最新的,必须在后面增加版本号才能下载最新版本 11 | 12 | 因此,Kibana对应版本也需要下载7.6.0版本才可以正常使用 13 | 14 | 例如: 15 | ~~~ 16 | docker pull elasticsearch:7.6.0 17 | docker pull kibana:7.6.0 18 | ~~~ 19 | 20 | 这里要特别说明下,文章里Elasticsearch的IK分词器由于墙的存在是无法安装的,必须手动下载zip文件并解压缩后,然后复制到elasrarch/plugins/ 目录下,并将目录改名为:analysis-ik,并且使用elasticsearch-plugin list能查询到即可 21 | 22 | 也可以安装 smart-cn分词器,安装方法: 23 | 24 | ~~~ 25 | cd /usr/share/elasticsearch/bin 26 | elasticsearch-plugin install smart-cn 27 | ~~~ 28 | 29 | 由于我的Dicker卷文件放在D盘,这里记录下我的Kibana运行语句 30 | 31 | ~~~ 32 | docker run -di --name=mykibana -p 5601:5601 -v /d/Hyper-v/Docker/kibana/config:/usr/share/kibana/config kibana 33 | ~~~ 34 | 35 | 下面是Logstash的运行语句 36 | 37 | ~~~ 38 | docker run -di --name=mylogstash -v /d/Hyper-v/Docker/logstash/config:/usr/share/logstash/config -v /d/Hyper-v/Docker/logstash/pipeline:/usr/share/logstash/pipeline logstash:7.6.0 39 | ~~~ -------------------------------------------------------------------------------- /运维文档/git-two-account.md: -------------------------------------------------------------------------------- 1 | #### 如果你有两个账号,怎么配置不同的目录使用不同的账号推送 2 | 3 | 4 | 首先你可以设置全局账号,比如公司的账号设置成全局的,然后某个目录,你可以使用local本地的配置,这样就能区分开不同目录使用不同的账号 5 | 6 | 7 | #### 本地设置 8 | - 怎么设置设置本地的账号密码 9 | 10 | 先设置账号相关,由于git对配置文件,分几个等级 11 | - local 最高 12 | - system 最低 13 | - global 次高 14 | 15 | ~~~ 16 | git config --local user.name = light2001 17 | git config --local user.email = 332976194@qq.com 18 | git config --local credential.helper store 19 | ~~~ 20 | 21 | 这时候可以查看一下是否配置到位: 22 | ~~~ 23 | git config --local --list 24 | ~~~ 25 | 26 | - 设置当前目录的账号密码,设置后会存在 ~/.git-credentials 文件里,以加密方式存储 27 | ~~~ 28 | git config --local credential.https://github.com.username 29 | ~~~ 30 | 31 | 参考:https://www.baeldung.com/ops/git-configure-credentials 32 | 33 | - 查看.git-credential 34 | 35 | ![image](https://github.com/light2001/MyDocs/assets/3821091/aafa77e7-1eee-47c2-bdd4-0b590eb73629) 36 | 37 | 可以看到有好不同的记录 38 | 39 | - 推送时输入账号密码 40 | ~~~ 41 | git push 42 | ~~~ 43 | 44 | 这时候会弹出git 密钥管理,可以选择打开webbrowser,之后就可以正常使用了 45 | 46 | 47 | 48 | 49 | #### 存在的问题: 50 | 51 | 目前发现如果一个账号,对同一个网站存在两个账号,在pull或者push的时候,会触发弹出 GCM 选择账号的情况,暂时还没找到解决方案 52 | 53 | 已经知道怎么解决了,只要设置了全局的默认账号,就不会再提示让你选择账号去pull/push代码了 -------------------------------------------------------------------------------- /运维文档/安装Maven.md: -------------------------------------------------------------------------------- 1 | ### Maven介绍 2 | 3 | Maven是apache的软件包管理项目,用于Java项目的 4 | 包,组件管理,类似.Net的Nuget,有人说比Nuget还要强大,暂时没有感受,不过使用起来入门还是很简单的 5 | 6 | 安装maven需要先安装jdk,本文会默认你已经安装上jdk了 7 | 8 | 9 | #### 安装步骤 10 | - 打开maven官网,找到下载地址,然后复制到ssh终端里用wget下载 11 | ``` 12 | wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz 13 | 14 | ``` 15 | 16 | - 解压缩刚才下载的文件,并修改文件夹名称 17 | 18 | ``` 19 | tar -zxvf apache-maven-3.6.0-bin.tar.gz 20 | mv apache-maven-3.6.0-bin.tar.gz maven 21 | 22 | ``` 23 | 24 | - 用vim打开/etc/profile,这个文件,在最后面增加以下几行代码(maven的目录设置为/home/maven) 25 | 26 | ``` 27 | export M2_HOME=/home/maven 28 | export PATH=$PATH:$M2_HOME/bin 29 | 30 | ``` 31 | 32 | - 用mvn -v 命令查看是否安装成功,如果看到如下命令,则表示已经安装成功了 33 | 34 | ``` 35 | [root@localhost ~]# mvn -v 36 | 37 | Apache Maven 3.6.0(1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) 38 | Maven home: /home/maven 39 | Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_201-amd64/jre 40 | Default locale: en_US, platform encoding: UTF-8 41 | OS name: "linux", version: "3.10.0-957.1.3.el7.x86_64", arch: "amd64", family: "unix" 42 | ``` 43 | 44 | 45 | - 配置maven的本地仓库地址,打开/home/maven/conf目录,找到settings.xml,找到下面这部分,修改成你要的目录 46 | 47 | ``` 48 | # 以下注释部分可以手动调整结束符 49 | 54 | /home/maven/repo 55 | 56 | ``` -------------------------------------------------------------------------------- /实战演练/自动化部署/CICD.md: -------------------------------------------------------------------------------- 1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二 2 | 3 | 4 | --- 5 | 背景知识: 6 | 7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可 8 | 这次选择的是.Net Core后端项目 9 | 10 | 想要实现这个目标,需要掌握以下基本知识 11 | 1. Centos基本操作,linux常用命令 12 | 2. Git代码管理知识,常用命令 13 | 3. docker基础知识,docker-compose基础 14 | 4. nginx基础理论,配置文件相关知识 15 | 5. gitlab管理知识,基础操作 16 | 17 | 18 | --- 19 | 20 | 21 | 22 | 由于篇幅较长,因此拆分为几篇文章: 23 | 24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 25 | 26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 27 | 28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 29 | 30 | ### 步骤四实现自动化部署 31 | --- 32 | ### 步骤四实现CICD自动化部署 33 | 34 | 1. CICD背景知识 35 | 36 | CICD的意思是持续部署,持续集成,在开发过程中,经常会合并代码,并发布,在集中开发的过程中,一天会部署N次,如果多人参与同一个项目,发布次数会更多,团队越大,同一个项目参与人数越多,持续部署就越重要 37 | 38 | 2. gitlab-runner介绍 39 | gitlab-runner可以理解为安装在被部署机器上的一个工作者软件,gitlab在目标版本合并的时候会根据当前部署的脚本,触发相应的runner去运行一系列的脚本,脚本由使用者自己定制 40 | 41 | 官网最新的文档已经全部都换成gitlab-runner,网上的资料大多都还是gitlab-mutiple-ci-runner的,这是老版本的runner,是否可用没有多做研究 42 | 43 | gitlab-runner根据需要可以分为: 44 | - 共享 45 | - 分组 46 | - 项目独有 47 | 48 | 从本质上来看并没有什么区别,只是使用上会有不同,比如共享型的就是一个runner可以给所有项目使用,而分组的runner只能给对应分组的runner使用,我只使用过项目,分组,这两种类型的runner,有兴趣的朋友可以去测试其他类型,然后来给我分享 49 | 50 | 3. gitlab-runner使用 51 | 52 | gitlab-runner需要先注册才能使用 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | --- 69 | ### [步骤一环境安装](/实战演练/自动化部署/main.md) 70 | 71 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 72 | 73 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 74 | -------------------------------------------------------------------------------- /运维文档/Elasticsearch测试.md: -------------------------------------------------------------------------------- 1 | ### Elasticsearch增删改查演练 2 | 3 | 4 | #### 下面是测试语句 5 | 6 | 以下语句运行在kibana内的devtools里执行 7 | 8 | ~~~ 9 | 10 | -- 查询所有 11 | GET /grapes/product/_search 12 | 13 | -- 新增 14 | PUT /grapes/product/2 15 | { 16 | "name" : "黑玫瑰", 17 | "desc" : "黑玫瑰", 18 | "price" : 25, 19 | "producer" : "jiajieshi producer1", 20 | "tags": [ "fangzhu1" ] 21 | } 22 | 23 | -- 新增 24 | PUT /grapes/product/3 25 | { 26 | "name" : "黑玫瑰", 27 | "desc" : "黑玫瑰", 28 | "price" : 25, 29 | "producer" : "jiajieshi producer1", 30 | "tags": [ "fangzhu1" ] 31 | } 32 | 33 | -- 更新单条数据 34 | POST /grapes/product/2/_update 35 | { 36 | "doc":{ 37 | "name" : "黑玫瑰1", 38 | "desc" : "黑玫瑰2" 39 | } 40 | } 41 | 42 | -- 查询/grapes/product下所有数据 43 | GET /grapes/product/_search 44 | { 45 | "query": { 46 | "match": { 47 | "name": "夏黑" 48 | }}, 49 | "sort": [ 50 | { 51 | "price": { 52 | "order": "asc" 53 | } 54 | } 55 | ], 56 | "_source": ["name","price"] 57 | } 58 | 59 | -- 删除数据 60 | DELETE /grapes/product/3 61 | 62 | -- 组合查询 63 | GET /grapes/product/_search 64 | { 65 | "query": { 66 | "bool": { 67 | "must": [ 68 | { 69 | "match": { 70 | "name": "夏" 71 | }} 72 | ], 73 | "filter": { 74 | "range": { 75 | "price": { 76 | "gt": 24 77 | } 78 | } 79 | } 80 | } 81 | } 82 | } 83 | 84 | -- 匹配查询 85 | GET /grapes/product/_search 86 | { 87 | "query": { 88 | "match_phrase": { 89 | "name": "夏黑" 90 | } 91 | } 92 | } 93 | 94 | ~~~ -------------------------------------------------------------------------------- /运维文档/termux-mysql.md: -------------------------------------------------------------------------------- 1 | #### 前提条件 2 | 3 | - 安装好vim等文本编辑工具 4 | - 配置好手机的SSHD,用于远程连接 5 | 6 | #### 安装步骤 7 | - 安装服务器端软件 8 | 9 | ##### 搜索数据库软件,查看是否存在 10 | 11 | ~~~ 12 | pkg search mysql 13 | ~~~ 14 | 如图所示,termux上只能看到mariadb,没有mysql,不过使用起来是一样的 15 | ![image](https://github.com/light2001/MyDocs/assets/3821091/5c2b42ec-63e4-4c27-9c3e-906fbd46c76f) 16 | 17 | 18 | ##### 安装软件 19 | ~~~ 20 | pkg install mariadb 21 | ~~~ 22 | - 调整配置文件 23 | ~~~ 24 | # 进入配置文件目录 25 | cd /data/data/com.termux/files/usr/etc 26 | nvim my.cnf 27 | 28 | # 我的配置如下: 29 | [mysqld] 30 | init-connect='SET NAMES utf8mb4' 31 | character-set-server = utf8mb4 32 | collation-server = utf8mb4_unicode_ci 33 | [client] 34 | default-character-set=utf8mb4 35 | 36 | !includedir /data/data/com.termux/files/usr/etc/my.cnf.d 37 | ~~~ 38 | 39 | - 启动数据库服务 40 | ~~~ 41 | mysqld_safe -u root & 42 | ~~~ 43 | 查看是否启动成功: 44 | ~~~ 45 | ps -ef | grep mysqld 46 | ~~~ 47 | ![image](https://github.com/light2001/MyDocs/assets/3821091/347c3e6e-396c-498d-bafe-0dca03475b4e) 48 | 49 | - 客户端连接 50 | ~~~ 51 | mysql -u root -p 52 | # 输入密码 53 | ~~~ 54 | ![image](https://github.com/light2001/MyDocs/assets/3821091/dc92ab20-3ccd-4b02-a0ed-d7672d47f024) 55 | ~~~ 56 | # 查看字符集是否utf8 57 | show variables like '%char%'; 58 | ~~~ 59 | ![image](https://github.com/light2001/MyDocs/assets/3821091/02ccf0aa-1b06-4fa3-a308-287718653948) 60 | ~~~ 61 | # 查看数据库列表 62 | show databases; 63 | # 查看表列表 64 | show tables; 65 | # 查看数据 66 | select * from user; 67 | ~~~ 68 | - 创建数据库 69 | ~~~ 70 | CREATE DATABASE `mydatabase` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci; 71 | ~~~ 72 | 73 | - 导入初始数据 74 | ~~~ 75 | mysql -u root -p 76 | use mydatabase; 77 | source ./xxx.sql; 78 | ~~~ 79 | -------------------------------------------------------------------------------- /运维文档/Mysql导入导出.md: -------------------------------------------------------------------------------- 1 | ### Mysql的导入导出操作 2 | 3 | 4 | ### window下 5 | 6 | 1. 导出整个数据库 7 | ``` 8 | mysqldump -u 用户名 -p 数据库名 > 导出的文件名 9 | mysqldump -u dbuser -p dbname > dbname.sql 10 | ``` 11 | 12 | 2. 导出一个表 13 | ``` 14 | mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 15 | mysqldump -u dbuser -p dbname users> dbname_users.sql 16 | ``` 17 | 18 | 3. 导出一个数据库结构 19 | ``` 20 | mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql 21 | -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 22 | ``` 23 | 24 | 4. 导入数据库 25 | ``` 26 | 常用source 命令 27 | 进入mysql数据库控制台,如 28 | mysql -u root -p 29 | mysql>use 数据库 30 | 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) 31 | mysql>source d:/dbname.sql 32 | ``` 33 | 34 | 35 | 36 | #### 其他操作 37 | 1. 导入数据到数据库 38 | 39 | ``` 40 | mysql -uroot -D数据库名 41 | ``` 42 | 43 | 2. 导入数据到数据库中得某个表 44 | ``` 45 | 46 | mysql -uroot -D数据库名 表名 47 | ``` 48 | 49 | 例如 50 | ``` 51 | 52 | D:\APMServ5.2.6\MySQL5.1\bin>mysqldump -u root -p erp lightinthebox_tags > ligh 53 | tinthebox.sql 54 | ``` 55 | 56 | 57 | ### linux下 58 | 59 | #### 一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 60 | 1. 导出数据和表结构: 61 | ``` 62 | mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 63 | #/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 64 | 敲回车后会提示输入密码 65 | ``` 66 | 67 | 2. 只导出表结构 68 | ``` 69 | mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql 70 | #/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql 71 | 72 | 注:/usr/local/mysql/bin/ ---> mysql的data目录 73 | ``` 74 | 75 | 76 | #### 二、导入数据库 77 | 1. 首先建空数据库 78 | ``` 79 | mysql>create database abc; 80 | ``` 81 | 82 | 2. 导入数据库 83 | ``` 84 | 方法一: 85 | (1)选择数据库 86 | mysql>use abc; 87 | (2)设置数据库编码 88 | mysql>set names utf8; 89 | (3)导入数据(注意sql文件的路径) 90 | mysql>source /home/abc/abc.sql; 91 | 方法二: 92 | mysql -u用户名 -p密码 数据库名 < 数据库名.sql 93 | #mysql -uabc_f -p abc < abc.sql 94 | ``` 95 | 96 | -------------------------------------------------------------------------------- /运维文档/Docker日志容量限制.md: -------------------------------------------------------------------------------- 1 | ### Docker日志容量限制总容量 2 | 3 | #### 背景介绍 4 | 在我们使用Docker容器启动服务时,常常会由于容器内的日志过多导致把宿主机的磁盘打满。 5 | 本文主要讲解如何解决容器日志打满磁盘的问题。 6 | 7 | #### 容器日志目录 8 | 9 | 首先,我们来讲一下容器日志的位置。如果你的磁盘已经被容器日志所打满,则需要找到对应的日志并进行删除。 10 | 11 | 默认情况下,每个容器的日志默认都会以json-file的格式存储于 12 | 13 | ``` 14 | /var/lib/docker/containers/<容器id>/<容器id>-json.log文件中。 15 | ``` 16 | 17 | 如果你的磁盘已经被日志打满,此时可以清除该文件来释放空间。需要注意的是,不建议直接使用rm命令删除日志文件,因为在某些情况下,rm命令无法直接释放磁盘空间。 18 | 19 | 一种推荐的删除方式如下: 20 | ``` 21 | echo " " > /var/lib/docker/containers/<容器id>/<容器id>-json.log 22 | ``` 23 | 24 | 上述方法总是治标不治本。为了解决该问题,我们希望能直接限制容器日志的大小。 25 | 26 | #### 限制容器日志的方式分为全局限制和单个容器限制。 27 | 28 | #### 全局限制 29 | 30 | 创建/修改/etc/docker/daemon.json该文件,在该文件中增加如下配置: 31 | ``` 32 | { 33 | "log-driver":"json-file", 34 | "log-opts":{ "max-size" :"1g","max-file":"1"} 35 | } 36 | 37 | ``` 38 | 此时,表示全局限制所有容器的默认日志配置为json-file格式且最大限制为1G。 39 | 40 | #### 单个容器限制 41 | 42 | ##### docker容器启动命令中配置日志信息 43 | 44 | 有时,我们希望仅仅针对单个容器进行限制,那么此时方式如下: 45 | 在docker run的容器启动命令中添加如下参数: 46 | ``` 47 | --log-opt max-size=1g --log-opt max-file=1 48 | ``` 49 | ##### compose文件中配置日志信息 50 | 很多时候,我们启动容器不是通过docker run进行挨个启动,而是通过compose进行统一的管理。 51 | 此时,我们同样可以在compose的配置文件中进行容器日志的限制。 52 | 53 | 一个示例如下: 54 | ``` 55 | version: "2" 56 | services: 57 | mysql: 58 | image: mysql 59 | logging: 60 | driver: "json-file" 61 | options: 62 | max-size: "1g" 63 | ``` 64 | 65 | 配置完毕必须重启动Docker服务 66 | ``` 67 | sudo systemctl restart docker 68 | 69 | ``` 70 | 71 | 72 | #### 真实案例: 73 | 日期:2019年6月24 74 | 75 | 现象描述: 76 | 77 | 周末休息完毕,周一一早来,发现放进docker的禅道无法打开了。 78 | 经过分析问题,发现是存放测试环境,gitlab,禅道的服务器磁盘空间满了。 79 | 迫于无奈,查找原因。 80 | 81 | 隐约猜到是什么情况,直觉告诉我,是gitlab导致的,因为gitlab给我的感觉就是会特别占用资源,包括内存,磁盘空间 82 | 83 | 解决步骤: 84 | - 输入命令: 85 | ``` 86 | du -h -x --max-depth=1 87 | ``` 88 | - 根据返回结果,层层查找,最终定位到 /var/lib/docker/containers/ 目录下, 这个目录是存放docker容器本身资料的地方 89 | - 在这个目录输入上面的命令,会发现某个目录容量特别大,经比对,发现就是gitlab的对应目录,进入目录后,发现json.log日志居然有33g 90 | - 删除文件后,重启docker服务,问题得到解决 91 | 92 | 经验总结: 93 | 94 | 大家在docker容器中使用gitlab的时候一定要注意限制他的日志大小,本人所使用的gitlab,总共使用时间大概9个月左右,就有33g这么大的日志,可见还是有必要限制一下的 95 | 96 | 97 | --- 98 | #### 本文引用来源地址: 99 | [Docker容器日志打满机器的解决方式](https://www.missshi.cn/api/view/blog/5c4c18a8c7e01951d5000001) 100 | 101 | -------------------------------------------------------------------------------- /运维文档/通过Hyper-v安装Centos7.5.md: -------------------------------------------------------------------------------- 1 | #### Centos介绍 2 | 3 | CentOS(Community Enterprise Operating System, 4 | 中文意思是:社区企业操作系统)是Linux发行版之一, 5 | 它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。 6 | 由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的 7 | Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。 8 | 9 | #### Centos的下载,当前最新版本为7.6 10 | 1. 去Centos的官方网站下载ISO文件 11 | 网址: 12 | [Centos官网](https://www.centos.org/) 13 | 2. 点击"Get Centos Now" 14 | 15 | ![截图](images/下载Centos按钮.png) 16 | 17 | 3. 选择DVD版本,打开[下载网址](http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso) 18 | 19 | ![截图](images/选择DVD.png) 20 | 21 | 4. 选择国内镜像下载链接 22 | 23 | ![截图](images/国内镜像.png) 24 | 25 | 5. 下面已经把镜像地址复制过来了,看这篇文档的时候,本文档未必还处于最新状态,因此,下载还是以上面的参考说明为准 26 | [阿里云镜像](http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso) 27 | 28 | [163网易镜像](http://mirrors.163.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso) 29 | 30 | 31 | #### 在Hyper-V环境下新增Centos虚拟机 32 | 1. 打开Hyper-v管理器 33 | 2. 操作——新建——虚拟机,打开虚拟机安装向导 34 | 35 | ![截图](images/虚拟机安装向导步骤1.png) 36 | 37 | 3. 直接按下一步,进入向导第二步,在这里,要选择将虚拟机存在其他位置,因为你的C盘很有可能空间不足,我的位置放在了D盘新建目录内 38 | 39 | ![截图](images/虚拟机安装向导步骤2.png) 40 | 41 | 4. 在向导第三步内,选择第一代,第二代会有问题,具体原因不深究 42 | 43 | ![截图](images/虚拟机安装向导步骤3.png) 44 | 45 | 5. 在第四步内存设置,至少给2G内存,建议给4到8G,如果你本机内存很高的话,可以给4G以上 46 | 47 | ![截图](images/虚拟机安装向导步骤4.png) 48 | 49 | 6. 在第五步选择网桥,可以选择默认网桥,或者自动建立网桥,网桥就是选择一块本机网卡,用于共享主机上网 50 | 51 | ![截图](images/虚拟机安装向导步骤5.png) 52 | 53 | 7. 第六步是选择硬盘,或者创建硬盘,一般都选择创建,硬盘至少给20g以上,有条件可以多给一点,他会按照实际占用的硬盘存储,所以不用担心硬盘给多了 54 | 55 | ![截图](images/虚拟机安装向导步骤6.png) 56 | 57 | 8. 第七步是选择一个映像文件或者光盘驱动器来安装,可以直接用刚才下载的IOS文件 58 | 59 | ![截图](images/虚拟机安装向导步骤7.png) 60 | 61 | 9. 第八步是最后一步,用于确认你的配置,以上配置在以后都可以随时调整的,不用担心内存,硬盘给少了 62 | 63 | ![截图](images/虚拟机安装向导步骤8.png) 64 | 65 | 10. 点击确认后虚拟机就建立好了,接下来是Centos安装的步骤,这里的步骤和真机安装一致 66 | 67 | 68 | #### 安装Centos 69 | 1. 在Hyper-v管理器里,可以看见上一步建立的虚拟机,右键单击选择连接,或者双击,刚才建立的Centos7.5,会打开该虚拟机操作界面 70 | 71 | ![截图](images/虚拟机操作界面-关机状态.png) 72 | 73 | 74 | 2. 点击开机,会打开对应服务器,在这个界面选择安装,如截图红圈所示 75 | 76 | ![截图](images/Centos7安装步骤1.png) 77 | 78 | 3. 选择安装后,会看到类似截图所示的界面 79 | 80 | ![截图](images/Centos7安装前.png) 81 | 82 | 4. 在语言选择界面,选择中文,简体 83 | 84 | ![截图](images/Centos7安装-语言选择.png) 85 | 86 | 5. 上一步操作完毕就会进入安装主界面,需要注意的是截图所示红圈标注的部分 87 | 88 | ![截图](images/Centos7安装主界面.png) 89 | 90 | 6. 在软件选择界面,建议选择最小安装,并且所有选项,这样装好的系统是不带桌面程序的,只能通过终端操作 91 | 92 | ![截图](images/Centos7安装-最小安装.png) 93 | 94 | 7. 也可以选择带有gnome桌面的服务器,这样对于新手会友好一点 95 | 96 | ![截图](images/Centos7安装-Gnome桌面.png) 97 | 98 | 8. 磁盘选择界面,打开,默认勾选不需要变动,点完成即可 99 | 100 | ![截图](images/Centos7安装-磁盘选项.png) 101 | 102 | 9. 选择完毕,点击开始安装按钮,就会进行安装了,会看到安装过度界面 103 | 104 | ![截图](images/Centos7安装-安装过度界面.png) 105 | 106 | 10. 在安装过度界面,必须设置root密码,否则会无法使用系统 107 | 108 | ![截图](images/Centos7安装-设置root密码.png) 109 | 110 | 11. 安装完毕后,系统会自动重启,到许可证授权页面,只有同意许可以后才能进入系统 111 | 112 | ![截图](images/Centos7安装-接收许可证.png) 113 | 114 | 12. 配置网络和主机名,打开网络即可, 他会自动获取IP地址 115 | 116 | ![截图](images/Centos7安装-打开网络.png) 117 | 118 | 13. 在欢迎界面,默认会选择汉语,可以直接进入系统 119 | 120 | ![截图](images/Centos7安装-欢迎界面.png) 121 | 122 | 14. 其他界面不再熬述,用户配置界面,必须设置用户名,和密码 123 | 124 | ![截图](images/Centos7安装-配置用户界面.png) 125 | 126 | 15. 看到如下截图所示界面,那么恭喜你,安装完毕了 127 | 128 | ![截图](images/Centos7安装-进系统.png) 129 | 130 | 131 | -------------------------------------------------------------------------------- /运维文档/基于Docker安装和运行常用容器.md: -------------------------------------------------------------------------------- 1 | #### Docker 介绍 2 | Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中, 3 | 然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 4 | 容器是完全使用沙箱机制,相互之间不会有任何接口。(来自百度百科) 5 | 6 | 简单来说,docker就是当前虚拟化技术的最佳实现方式 7 | 可以把docker理解为,一个运行在主机中的软件,因为他的完全是用进程来实现的, 8 | 可以把端口绑定到宿主机,便于访问 9 | 一个打包好的docker容器可以轻易的安装,复制,减轻了了环境安装的大量工作 10 | 11 | 12 | #### Docker使用步骤 13 | 14 | Docker的使用步骤一般为: 15 | 1. 搜索镜像 16 | 2. 下载镜像 17 | 3. 根据镜像启动容器(把镜像启动起来,就叫做容器) 18 | 4. 开启防火墙对应端口 19 | 20 | #### Docker常用操作命令 21 | 1. docker --version 查看docker版本 22 | 2. docker ps 查看docker 容器列表 23 | 3. docker run 启动docker容器 24 | 4. docker images 查看docker镜像列表 25 | 5. docker start 启动已关闭的容器 26 | 6. docker exec -it 容器id /bin/bash 进入容器的终端 27 | 28 | 更多的docker 教程,推荐看以下链接的文档 29 | 30 | [Docker从入门到实践](https://legacy.gitbook.com/book/yeasy/docker_practice/details) 31 | 32 | #### 本次安装软件列表 33 | 1. redis 34 | 2. mongodb 35 | 3. mysql 36 | 37 | 安装步骤 38 | 39 | 1. 安装redis 40 | 1. 终端中输入:docker search redis 41 | 2. 根据列表中的结果,一般是选择下载量最大的那个 42 | 3. 如图所示,这里第一个就是下载量最大的 43 | 44 | ![截图](images/安装Redis.png) 45 | 46 | 4. 输入:docker pull redis 47 | 5. 如图所示,将开始下载redis的镜像 48 | 49 | ![截图](images/开始安装redis.png) 50 | 51 | 2. 安装mongodb 52 | 53 | 和上一步一样,这里就不细说搜索部分 54 | 1. 输入:docker pull mongo就会开始安装mongodb 55 | 56 | 3. 安装mysql 57 | 58 | 1. 输入:docker pull mysql就会开始安装mysql 59 | 60 | 61 | 是不是感觉相当简单,是的,这就是docker的魅力 62 | 4. 安装完毕后,检查镜像列表,是否正确 63 | 64 | ![截图](images/检查Docker镜像列表.png) 65 | 66 | 如图所示,已经安装完毕,redis,mysq,mongod都在本地镜像列表里了 67 | 68 | #### 运行容器 69 | 1. 运行redis 70 | ``` 71 | docker run -p 6379:6379 --name redis -v /d/docker/data/redis:/data -d --restart=always redis redis-server --appendonly yes 72 | ``` 73 | 2. 运行mongodb 74 | ``` 75 | docker run --name cool-mongo -p 27017:27017 -d --restart=always mongo 76 | ``` 77 | 3. 运行mysql 78 | 79 | ``` 80 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1 81 | ``` 82 | 上面最后一句话的意思是,忽略表名大小写 83 | 84 | 如果出现时区问题,请加上参数: 85 | ``` 86 | -e TZ=Asia/Shanghai --default-time_zone='+8:00' 87 | ``` 88 | 89 | 完整的连接字符串是: 90 | ``` 91 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1 92 | ``` 93 | 94 | 可选参数,把data放在宿主机 95 | ``` 96 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1 -v D:/docker/data/mysql:/var/lib/mysql -v D:/docker/data/mysql/conf:/etc/mysql/conf.d 97 | ``` 98 | 99 | 100 | Docker启动,默认后会出现无法登陆的问题,如下面所示: 101 | ``` 102 | 2059 : Authentication plugin 'caching_sha2_password' cannot be loaded: 103 | ``` 104 | - 解决步骤: 105 | - 运行docker ps 查看容器列表,找到对应的mysql 106 | - docker exec -it 容器序列号(那串英文数字的序列) /bin/bash,例如: 107 | ``` 108 | docker exec -it 80334sdfj /bin/bash 109 | ``` 110 | - 进入容器后,输入:mysql -u root -p ,会提示输入密码,输入:123456,可以看到提示符变成了mysql> 111 | - 在这种状态下输入: 112 | ``` 113 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ‘123456’; 114 | ``` 115 | - 输入exit,退出mysql,再输入exit,退出镜像 即可 116 | 117 | 118 | 119 | 120 | 4. 运行禅道 121 | ``` 122 | mkdir -p /srv/zbox && docker run -d -p 8090:80 -p 3306:3306 \ 123 | -e USER="root" -e PASSWD="123456" \ 124 | -e BIND_ADDRESS="false" \ 125 | -e SMTP_HOST="163.177.90.125 smtp.exmail.qq.com" \ 126 | -v /srv/zbox/:/opt/zbox/ \ 127 | --privileged=true \ 128 | --name zentao-server \ 129 | idoop/zentao:latest 130 | 131 | ``` 132 | 133 | 5. 查看运行列表 134 | ``` 135 | 输入:docker ps,查看当前运行的容器 136 | ``` 137 | ![截图](images/查看容器列表.png) 138 | 139 | 140 | #### 防火墙设置 141 | 142 | 默认情况下,是有防火墙的,如果不用可以关闭,但是强烈建议开启防火墙,只开放需要的端口白名单,这样会安全一点 143 | 144 | 在终端输入以下命令完毕,最后查看结果,如截图所示 145 | ``` 146 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 147 | firewall-cmd --zone=public --add-port=8080/tcp --permanent 148 | firewall-cmd --zone=public --add-port=3306/tcp --permanent 149 | firewall-cmd --zone=public --add-port=27017/tcp --permanent 150 | firewall-cmd --zone=public --add-port=6379/tcp --permanent 151 | 处理完毕还需要重新读取配置,才可以生效 152 | firewall-cmd --reload 153 | 154 | ``` 155 | 156 | 至此,docker的安装过程就结束了,本教程写的比较仓促,如果有疏漏,尽请谅解 157 | 158 | -------------------------------------------------------------------------------- /运维文档/在纯净的Centos7.5下安装常用软件和Docker.md: -------------------------------------------------------------------------------- 1 | #### Centos基础知识 2 | 3 | Centos自带yum包管理器,可以利用yum安装卸载,更新常用软件 4 | 5 | yum安装需要一个软件来源地址,建议导入阿里的镜像地址,否则速度会很慢 6 | 7 | 常用的操作可以在gnome桌面完成,也可以用终端敲命令完成,本教程全部采用命令方式完成 8 | 9 | 建议开启虚拟机后,用windows下的ssh软件连接,而不是在虚拟机内敲命令 10 | 11 | Centos默认是有防火墙的,必须关闭或者设置规则打开对应端口,才能访问,默认会开启ssh端口(22) 12 | 13 | #### SSH软件选择 14 | 15 | SSH软件有很多,大多需要收费,免费好用的不多,这里推荐几款 16 | 1. Smartty,免费好用的ssh软件,上传,下载文件也很方便,就是界面不够美观 17 | 2. mobaxterm ,免费好用的ssh软件,免费版本不可商用,他还有收费版本,这个不考虑 18 | 3. zoc7,收费的ssh软件,异常强大好用,但是收费很贵,需要破解使用 19 | 4. xterm2,免费的ssh软件,界面很漂亮,也很简洁不多做介绍 20 | 5. xshell,putty,cywin这些很多,可以尝试下,不做说明了 21 | 6. git自带的gitbash也是一个很不错的ssh终端 22 | 23 | 由于本人只使用免费软件,不做破解,因此本教程适用于Smartty,Smartty安装过于简单,这里就不提供教程了 24 | 25 | 更新一波,最新发现win10自带的power shell也可以始用ssh,这下就不用安装任何额外的工具了 26 | 27 | 使用方式很简单: 28 | 29 | ssh username@192.168.1.16 输入密码后就连接完毕了 30 | 31 | [Smartty下载地址](http://smartty.sysprogs.com/) 32 | 33 | 34 | #### Smartty使用方法 35 | 36 | 1. 打开主界面,新增SSH连接,在alias输入别名 37 | 38 | ![截图](images/Smartty连接centos.png) 39 | 40 | 2. 菜单栏-tools-settings,设置成如截图所示 41 | 42 | ![截图](images/Smartty配置.png) 43 | 44 | 3. 在终端界面输入命令,操纵centos 45 | 46 | ![截图](images/Smartty操纵centos.png) 47 | 48 | 4. 文件传输界面,在菜单-SCP菜单,可以看到Download和Upload就是用来传输文件的,可以选择centos的路径和本地路径 49 | 50 | ![截图](images/Smartty传输文件.png) 51 | 52 | 53 | #### 常用的centos命令介绍 54 | 55 | 对于linux运维人员,必须掌握常用的命令,大部分命令都可以在百度找到,这里只列出一小部分 56 | 1. ls 查看文件夹下的文件和目录 57 | 2. cd 切换目录 58 | 3. vi,vim,编辑文件,如果没有则创建 59 | 4. cat展示文本文件的内容 60 | 5. mkdir 创建目录 61 | 6. touch 创建文件 62 | 7. rm 删除文件或者文件夹,慎用 63 | 8. copy(简写cp) 复制文件 64 | 9. move(简写mv) 移动文件 65 | 10. ping 测试本地是否能打开某个域名 66 | 11. curl url 向指定的网址发起访问 67 | 12. wget 下载文件 68 | 69 | 70 | 71 | 更详细的命令可以百度,这里给出两个链接 72 | 73 | [1. Centos7常用命令](https://blog.csdn.net/qq_40087415/article/details/79367151) 74 | 75 | [2. Centos常用命令](https://www.cnblogs.com/benbenduo/p/3864809.html) 76 | 77 | 78 | #### 导入阿里云的软件源 79 | 1. 在终端输入: 80 | 81 | ``` 82 | sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 83 | ``` 84 | 2. 如果网络能正常连接的话,就能看到提示成功的标志 85 | 86 | #### Centos服务器安装SSH服务 87 | 1. 在终端输入: 88 | ``` 89 | sudo yum install openssh* 90 | ``` 91 | 进行安装 92 | 93 | 94 | 2. 在终端输入命令,加入开机启动 95 | ``` 96 | sudo systemctl enable sshd 97 | sudo systemctl start sshd 98 | 99 | ``` 100 | 101 | #### 用ssh连接Centos 102 | 103 | 要连上Centos,首先要知道对应Centos的IP地址,获取方法是在终端输入ip address,查看到对应的ip地址,然后在Smartty里新建ssh连接,输入地址,用户密码,连接 104 | 105 | 1. 在Centos桌面,右键单击-打开终端 106 | 2. 在终端输入命令:ip address show eth0 (如果找不到eth0也可以 只输入ip address) 107 | 3. 如截图所示,IP地址为192.168.31.120 108 | 109 | ![截图](images/IP地址.png) 110 | 111 | 112 | 4. 打开Smartty,新增SSH连接,在其中IP地址输入192.168.31.120,用户密码输入对应的即可 113 | 114 | 115 | #### 安装常用软件(在终端安装,不在熬述终端的使用方法) 116 | 1. 安装vim,vim是终端操作最常用的软件,必须安装 117 | ``` 118 | sudo yum install vim -y 119 | ``` 120 | 2. 安装nginx并启动 121 | ``` 122 | # 安装基础软件 123 | sudo yum install epel-release -y 124 | # 安装nginx 125 | sudo yum install nginx -y 126 | 127 | # 启动: 128 | 129 | sudo systemctl start nginx 130 | sudo systemctl enable nginx 131 | ``` 132 | 3. 安装docker 133 | ``` 134 | # 安装基础软件: 135 | 136 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 137 | 138 | # 配置阿里的镜像仓库 139 | sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 140 | 141 | # 安装Docker 142 | 143 | sudo yum makecache fast 144 | 145 | sudo yum -y install docker-ce 146 | 147 | 148 | # 把默认用户加入docker用户组 149 | 由于默认情况下,你新建的用户不是管理员用户,因此每次始用docker命令,都需要输入sudo docker xxx 150 | 这样很不方便,因此需要这步操作 151 | 152 | # 应用用户加入docker用户组 153 | sudo usermod -aG docker ${USER} 154 | # 重启docker服务 155 | sudo systemctl restart docker 156 | # 切换或者退出当前账户再从新登入 157 | su root 切换到root用户 158 | su ${USER} 再切换到原来的应用用户以上配置才生效 159 | 配置完毕测试下就知道了 160 | 161 | ``` 162 | 163 | 4. 安装docker-compose 164 | ``` 165 | 必须切换到root用户才能安装 166 | 167 | #安装 168 | sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 169 | 170 | #授权命令 171 | sudo chmod +x /usr/local/bin/docker-compose 172 | 173 | ``` 174 | 175 | 5. 安装.Net CoreSDK 176 | ``` 177 | # 导入rpm源 178 | sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 179 | # 更新软件包 180 | sudo yum -y update 181 | # 安装SDK 182 | sudo yum -y install dotnet-sdk-2.1 183 | # 校验是否安装成功 184 | dotnet --version 185 | 186 | ``` 187 | 188 | -------------------------------------------------------------------------------- /DevOps/SonarQubeUse.md: -------------------------------------------------------------------------------- 1 | # SonarQube怎么使用 2 | 上一篇主要讲了Sonar是怎么安装运行的, 这一篇主要讲怎么使用 3 | 4 | ## 配置项目 5 | SonarQube是以项目为单位运行的,所以要先配置项目, 然后基于项目的地址去扫描并上传结果 6 | 下面以本地项目为例, 说明一下怎么配置本地的项目, 不集成git服务器 7 | 8 | ### 创建项目 9 | 点击下图所示的 创建项目图标, 就会打开创建项目界面 10 | ![image](https://github.com/user-attachments/assets/028e497d-dbd8-4435-a1a2-e4bf4610d2f9) 11 | 12 | 选择创建项目的目标 13 | ![image](https://github.com/user-attachments/assets/8558cda5-9add-4600-8edc-d2a9a3207ee4) 14 | 这张图可以看到, 其实可以直接集成git服务器的,不过这里先用本地来处理 15 | 16 | 给项目取名CoreShop 17 | ![image](https://github.com/user-attachments/assets/afc9e962-78ce-41b1-b536-a6481171593e) 18 | 19 | 这一步是问你是否要集成CI 20 | ![image](https://github.com/user-attachments/assets/6f5c1c3e-e0a9-4ed6-b409-ba99919d6dfc) 21 | 22 | 这个界面会问你怎么创建访问的project 级别的token 23 | ![image](https://github.com/user-attachments/assets/12ffb224-06a0-4301-80cf-0ceecd9a16a4) 24 | 25 | 这一步需要记录生成后的token, 这个token是项目级别的, 只能用在这个项目上,不能在其他项目使用 26 | ![image](https://github.com/user-attachments/assets/cac57cec-afae-45de-836e-15be790765f9) 27 | 28 | ``` 29 | sqp_c88167212d842c08915f951614e96cb942e95fb2 30 | ``` 31 | 32 | 这一步是选择一个开发语言, 对应你项目的语言就好 33 | ![image](https://github.com/user-attachments/assets/50422c23-c7c6-4c98-8b20-175d8413c6cc) 34 | 35 | 下面是选择了.Net后的结果, 这里会展示怎么扫描.Net项目 36 | ![image](https://github.com/user-attachments/assets/26272b1f-7ef0-42f6-856f-63e9dfbab8fe) 37 | 38 | 设置好项目以后, 在主界面就能看到有两个项目了,可以看到新创建的项目目前没有结果, 因为还没有扫描 39 | ![image](https://github.com/user-attachments/assets/bd637b2c-54a3-4026-8592-c65cf8627688) 40 | 41 | 42 | 43 | 44 | ## 扫描结果说明 45 | SonarQube扫描后会把结果上传到服务器, 会在服务器产生报表, 方便查看哪一行代码出现了哪种问题, 这部分列出来了所有代码存在的问题和缺陷 46 | 下面会展开说明 47 | 48 | ### Dashboard 49 | 在项目页面可以看到多个项目的简单预览 50 | ![image](https://github.com/user-attachments/assets/597b81d8-23cb-444b-b648-3d7d14b5fb6d) 51 | 52 | 下图可以看到一个项目的扫描结果 53 | ![image](https://github.com/user-attachments/assets/41bd16ad-f9d2-4824-b009-484e360a2152) 54 | 这里可以看到下列信息: 55 | - Bugs 56 | - Vulnerabilities 57 | - Security Hotspots 58 | - Debt 59 | - Code Smells 60 | - Unit Tests converage 61 | - Duplications 62 | 63 | 64 | 65 | ### Bugs 66 | 这个问题叫做Bugs是因为可能造成Bug,有安全隐患在 67 | 68 | 下面是bugs的详细信息 69 | ![image](https://github.com/user-attachments/assets/5492aa9d-3ce2-449e-9435-db7b1d2935ac) 70 | 71 | 如果打开第一个错误, 就能看到具体的信息: 72 | ![image](https://github.com/user-attachments/assets/1fa44f06-ee9a-42ed-b0c9-3c0ea310d34c) 73 | 这里的问题是: 划线的变量, 始终不为空,所以等式不成立 74 | 75 | 这里可以过滤不同的数据: 76 | - Bug 77 | - Vulnerability 78 | - Code Smell 79 | ![image](https://github.com/user-attachments/assets/dde0e339-3915-4950-9f39-a41bd31e0e39) 80 | 81 | 这里可以过滤语言,通过下图可以看到,其实大部分问题都是前端Web页面造成的 82 | ![image](https://github.com/user-attachments/assets/0f6340d0-23ea-47bd-ab79-2d088843ae6f) 83 | 84 | 过滤后的Bugs只有16个了 85 | ![image](https://github.com/user-attachments/assets/80e72f0a-2e2d-42de-a8c3-8e0f99776bf5) 86 | 87 | 88 | 89 | ### Vulnerabilities 90 | 这个分类可以叫做缺陷或者漏洞, 也是比较严重的问题,不过用来测试的项目目前没有问题 91 | 92 | 93 | ### Security Hotspots 94 | 这个分类叫做安全热点,可以看到都是和安全有关的问题 95 | ![image](https://github.com/user-attachments/assets/c1929b5e-ec36-40e2-bb0e-1404f5f3b43c) 96 | 97 | 比如不安全的随机数 98 | ![image](https://github.com/user-attachments/assets/7959ee62-d3e2-43dd-bd4c-36a0b3b2ea37) 99 | 100 | 101 | 102 | ### Debt 103 | 技术债务指的是在开发过程中,由于各种原因导致的代码质量,缺陷, 漏洞, 硬编码等等不好的代码,汇总起来都叫做技术债务 104 | ![image](https://github.com/user-attachments/assets/d8027a90-83b8-4986-8f5c-6ebc20663d85) 105 | 这里列出了修复当前文件,需要花费的时间, 还是比较靠谱的计算 106 | 107 | 108 | ### Code Smells 109 | 这块是SonarQube的比较重点的功能了, 这里主要包括了下面几类问题: 110 | ![image](https://github.com/user-attachments/assets/5c2b179f-8ba0-4cd1-ab4b-33c57e158e68) 111 | 具体的解说这里就不重复了, SonarQube官网有详细的说明 112 | 113 | 114 | ### Unit Test 115 | 116 | 单元测试覆盖率也是一个重要的指标, 在外企会比较看重, 国内企业不一定会在意 117 | ![image](https://github.com/user-attachments/assets/08c8e05d-cf28-46bc-a75f-542215c0c30d) 118 | 119 | 120 | ## SonarQube 其他功能说明 121 | ### Issues 122 | 这个界面就是一个查询界面, 所有的问题都汇总在这里 123 | ![image](https://github.com/user-attachments/assets/7030ba2e-895f-4b7c-bad8-72ef6c8bc8c3) 124 | 可以review问题, 标记已解决, 筛选开发语言, 等等 125 | 126 | 127 | ### Measures 128 | 这个界面主要是一些计算,指标等,可以根据多次扫描结果出分析图 129 | ![image](https://github.com/user-attachments/assets/f54a539b-e38d-40ae-9138-f2c0fa72954a) 130 | 131 | 这里可以看到大文件的管理, 如果一个文件行数过多,这里就会提示 132 | ![image](https://github.com/user-attachments/assets/d228bf66-b87f-4eb9-ab1c-b96382ab85a3) 133 | 134 | 135 | ### Code 136 | 这个界面是以代码文件角度展开的 137 | ![image](https://github.com/user-attachments/assets/797499b5-4749-4cfd-9b21-7bd3c320f657) 138 | 139 | 140 | ### Project Settings 141 | 142 | 这个界面特别说明下, 当前项目的所有扫描活动, 在这个界面都可以看到 143 | ![image](https://github.com/user-attachments/assets/20a5eac9-ad37-445e-9ad5-095ad4dbaec6) 144 | 145 | 146 | ### Activity 147 | 这个界面是活动记录, 包括所有的扫描活动 148 | ![image](https://github.com/user-attachments/assets/f3f16116-6bb2-42ea-86da-d8982ffa3502) 149 | 150 | 151 | 152 | ## 集成Git服务器 153 | SonarQube还可以集成在Git服务器上, 在每次合并代码的时候都进行扫描, 实现自动化处理, 这个本文稍后会给出说明,敬请期待 154 | -------------------------------------------------------------------------------- /DevOps/SonarQube.md: -------------------------------------------------------------------------------- 1 | ## SonarQube 2 | 3 | Sonar 主要实现的功能是检查代码质量, 比如说对于C#来说一共有260条代码规则, 会检测出有缺陷的写法 4 | 结合dotcover 扫描 Unit Test能看到代码的覆盖率. 5 | 可以设定代码质量基线, 如果不达标的代码可以拒绝合并 6 | 7 | ### 运行环境 8 | 我的Linux环境是Arch Linux, 本文所检查的语言是以C#为主, 所以以下的一些说明, 都是以Arch Linux和.Net 环境为主 9 | 10 | #### Docker 11 | Docker是什么本文不再赘述了, 当前文档的Sonar Server使用的环境就是在Docker里, 因为方便管理, 部署快速. 12 | 基于下面的Docker-Compose文档, 不到半小时就能启动一个完整的SonarQube Server环境了 13 | 14 | #### Docker-Compose 15 | Docker-Compsoe是用来编排Docker容器的, 所以必须安装以下, 下面给出安装方法 16 | 17 | ```shell 18 | sudo pacman -S docker-compose 19 | ``` 20 | 查看是否安装成功: 21 | ```shell 22 | docker-compose --version 23 | ``` 24 | 25 | 26 | #### Java环境 27 | Java环境主要是用于Sonar Scanner这个扫描工具的, 由于Arch Linux自带了OpenJDK环境,所以这里不再赘述 28 | 29 | #### .Net SDK 30 | 由于用的项目是.Net的项目, 所以这里的基础代码运行环境也是以.Net SDK为主 31 | 如何安装环境? 使用下面的代码会安装最新版的9.0 32 | 33 | ```shell 34 | sudo pacman -S dotnet-sdk 35 | ``` 36 | 查看是否安装成功: 37 | ```shell 38 | dotnet --version 39 | ``` 40 | 41 | 42 | ## SonqrQube Server 43 | 44 | SonarQube有Cloud版本,和本地化部署的版本,可以查看官网的价格页面, 查看他们的区别,对于个人开发者是免费使用的 45 | 对于小团队的话, 价格看起来还可以, 当然也可以直接使用开源版本 46 | 47 | 48 | ### 下面是docker compose ,通过这个脚本就能一键启动SonarQube的Docker容器 49 | ```YAML 50 | version: "3" 51 | 52 | services: 53 | # SonarQube Database Service 54 | db: 55 | image: postgres:15 # Use a specific stable version like 15 56 | container_name: sonarqube_db 57 | environment: 58 | # !!! IMPORTANT: Change these default values for security !!! 59 | POSTGRES_USER: sonarqube 60 | POSTGRES_PASSWORD: Abc123456 # <-- CHANGE THIS PASSWORD 61 | POSTGRES_DB: sonarqube 62 | volumes: 63 | - db_data:/var/lib/postgresql/data # Persist database data 64 | restart: unless-stopped # Auto-restart unless explicitly stopped 65 | 66 | # SonarQube Application Service 67 | sonarqube: 68 | image: sonarqube:lts # Use the Long Term Support (LTS) version 69 | container_name: sonarqube_app 70 | ports: 71 | - "9000:9000" # Map host port 9000 to SonarQube container port 9000 72 | environment: 73 | # Configure SonarQube to connect to the PostgreSQL database 74 | # jdbc:postgresql://:/ 75 | SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonarqube 76 | # !!! IMPORTANT: Use the same user and password as the database service !!! 77 | SONARQUBE_JDBC_USERNAME: sonarqube 78 | SONARQUBE_JDBC_PASSWORD: Abc123456 # <-- USE THE SAME PASSWORD 79 | # Configure Elasticsearch memory for SonarQube (adjust based on your resources) 80 | # Minimum 2GB RAM is generally recommended for SonarQube 81 | SONAR_SEARCH_JAVA_OPTS: "-Xmx1024m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError" # Example: 1GB heap 82 | volumes: 83 | - sonarqube_data:/opt/sonarqube/data # Persist SonarQube data 84 | - sonarqube_extensions:/opt/sonarqube/extensions # Persist plugins and extensions 85 | - sonarqube_logs:/opt/sonarqube/logs # Persist logs 86 | depends_on: 87 | - db # Ensure database starts before SonarQube 88 | restart: unless-stopped 89 | 90 | # Define named volumes for data persistence 91 | volumes: 92 | db_data: 93 | sonarqube_data: 94 | sonarqube_extensions: 95 | sonarqube_logs: 96 | 97 | ``` 98 | 创建一个新的目录, 把上面的文件保存为yml格式的文件, 文件名: docker-compose.yml 99 | 100 | 如下面截图所示 101 | ![image](https://github.com/user-attachments/assets/8abfd86a-9be9-44ee-869f-f8953c83bb13) 102 | 103 | 104 | ### 如何运行? 105 | 在终端敲下面的命令即可, 这个命令会自动查找当前目录的"docker-compose.yml"文件,并下载镜像和运行容器 106 | 107 | ```shell 108 | docker-compose up -d 109 | ``` 110 | 执行后会看到自动下载了docker相关的镜像 111 | ![image](https://github.com/user-attachments/assets/6dc06104-c8fe-4f23-970d-6b2726143ba8) 112 | 113 | 114 | 下面是Docker容器已经运行起来的截图 115 | ![image](https://github.com/user-attachments/assets/017e8079-af10-4240-9ded-6a82561ff6dc) 116 | 117 | 118 | ### 默认的账号密码: 119 | 运行成功后,你会发现打开了登陆界面, 但是你不知道账号和密码, 如下图所示: 120 | ![image](https://github.com/user-attachments/assets/ed223e71-e7f2-4e2f-9bb9-d42ffaa36c09) 121 | SonarQube的默认账号密码如下: 122 | 123 | ``` 124 | 账号: admin 125 | 密码: admin 126 | ``` 127 | 128 | 129 | 130 | ## Sonar Lint 131 | Sonar lint的作用是在IDE开发环境里扫描代码存在的问题,它是以IDE的插件形式存在的. 132 | 如果您购买了SonarQube的Cloud服务或者购买了企业版本地化部署, 那么就可以开启这个功能了. 133 | 这个功能其实和Rider, VisualStudio的代码提示有一些冲突, 可以用用看, 但是不推荐, 这里不多做介绍 134 | 135 | 这个插件现在现在已经改名为:SonarQube For IDE, 如下图所示 136 | ![image](https://github.com/user-attachments/assets/c159e1da-2260-4edb-b7bc-241491a40eb3) 137 | 138 | 139 | 140 | 141 | ## Sonar Scanner 142 | Sonar Scanner是用来扫描代码质量, 扫描Unit Test ,扫描结束以后, 会把报告上传到指定的SonarQube服务器上 143 | 144 | ### 安装Sonar Scanner 145 | 146 | 想要正常扫描的话,必须安装SonarScanner, 这个软件可以通过dotnet tool这个工具安装, 下面给出了安装命令, 非常简单 147 | 148 | ```shell 149 | dotnet tool install --global dotnet-sonarscanner 150 | ``` 151 | 设置dotnet tool的环境变量, 否则无法执行 152 | 153 | ```shell 154 | nano ~/.bashrc 155 | # 或者使用 vim 156 | # vim ~/.bashrc 157 | 158 | # Add dotnet tools to PATH 159 | export PATH="$PATH:$HOME/.dotnet/tools" 160 | 161 | # load env 162 | source ~/.bashrc 163 | ``` 164 | 165 | 如果你使用的是ZSH 的话, 需要修改~/.zshrc ,这里不再赘述了 166 | 167 | ### Project设置 168 | SonarQube是以目录为单位工作的, 需要在SonarQube里创建一个项目,所以这里必须先配置项目 169 | ![image](https://github.com/user-attachments/assets/2c925747-0a63-4c47-978a-64ec363d48fc) 170 | 171 | 设置完项目以后,会给到一个Project token, 不是必须用这个凭据来上传项目, 也可以使用User Token 172 | 173 | Project Token : 174 | ```shell 175 | sqp_54ece4e750e93af9b97cb293eaed254bdb81554b 176 | ``` 177 | 178 | Project Name: TestProject 179 | 180 | 181 | ### 扫描项目 182 | 183 | ```shell 184 | dotnet sonarscanner begin /k:"TestProject" /d:sonar.host.url="http://192.168.170.128:9000" /d:sonar.login="sqp_54ece4e750e93af9b97cb293eaed254bdb81554b" 185 | dotnet build 186 | dotnet sonarscanner end /d:sonar.login="sqp_54ece4e750e93af9b97cb293eaed254bdb81554b" 187 | ``` 188 |
189 |
190 |
191 |
192 |
193 | 194 | # 如何查看和分析扫描结果 195 | 196 | ## [SonarQube的结果如何分析](SonarQubeUse.md) 197 | -------------------------------------------------------------------------------- /运维文档/Mosquitto安装使用.md: -------------------------------------------------------------------------------- 1 | ## mosquitto 2 | ### 源码下载 3 | [下载](http://mosquitto.org/files/source/) 4 | 5 | ### 解压 6 | 7 | > tar -zxvf [下载的包] 8 | > 9 | 10 | 11 | ### 安装前所需要依赖的包 12 | 13 | > yum install gcc gcc-c++ libstdc++-devel 14 | > 15 | >yum install openssl-devel -y 16 | > 17 | >yum install c-ares-devel -y 18 | > 19 | >yum install uuid-devel -y 20 | > 21 | >yum install libuuid-devel -y 22 | > 23 | ### 安装 24 | 25 | 保证以上的都成功了 26 | > cd mosquitto 27 | > 28 | > make 29 | > 30 | > make install 31 | > 32 | 33 | ### 启动 34 | > 35 | > cd /etc/mosquitto 36 | > 37 | > cp mosquitto.conf.example mosquitto.conf 38 | > 39 | > //后台执行 建议第一次 去掉-d 执行 可以查看问题 40 | > 41 | > mosquitto -c /etc/mosquitto/mosquitto.conf -d 42 | > 43 | > // 生产环境启动方式 44 | > 45 | > // 上述命令放在run.sh脚本中 46 | > 47 | > nohup ./run.sh > /dev/null 2>&1 & 48 | 49 | #### 日志问题 50 | 51 | [参考](https://blog.csdn.net/houjixin/article/details/72654693) 52 | 53 | ### 启动参数设置 54 | 55 | 如果启动报错 ,可能就可以修改 端口 或者 其他的配置项 解决 56 | 57 | ```properties 58 | # ================================================================= 59 | # General configuration 60 | # ================================================================= 61 | 62 | # 客户端心跳的间隔时间 63 | #retry_interval 20 64 | 65 | # 系统状态的刷新时间 66 | #sys_interval 10 67 | 68 | # 系统资源的回收时间,0表示尽快处理 69 | #store_clean_interval 10 70 | 71 | # 服务进程的PID 72 | #pid_file /var/run/mosquitto.pid 73 | 74 | # 服务进程的系统用户 75 | #user mosquitto 76 | 77 | # 客户端心跳消息的最大并发数 78 | #max_inflight_messages 10 79 | 80 | # 客户端心跳消息缓存队列 81 | #max_queued_messages 100 82 | 83 | # 用于设置客户端长连接的过期时间,默认永不过期 84 | #persistent_client_expiration 85 | 86 | # ================================================================= 87 | # Default listener 88 | # ================================================================= 89 | 90 | # 服务绑定的IP地址 91 | #bind_address 92 | 93 | # 服务绑定的端口号 94 | #port 1883 95 | 96 | # 允许的最大连接数,-1表示没有限制 97 | #max_connections -1 98 | 99 | # cafile:CA证书文件 100 | # capath:CA证书目录 101 | # certfile:PEM证书文件 102 | # keyfile:PEM密钥文件 103 | #cafile 104 | #capath 105 | #certfile 106 | #keyfile 107 | 108 | # 必须提供证书以保证数据安全性 109 | #require_certificate false 110 | 111 | # 若require_certificate值为true,use_identity_as_username也必须为true 112 | #use_identity_as_username false 113 | 114 | # 启用PSK(Pre-shared-key)支持 115 | #psk_hint 116 | 117 | # SSL/TSL加密算法,可以使用“openssl ciphers”命令获取 118 | # as the output of that command. 119 | #ciphers 120 | 121 | # ================================================================= 122 | # Persistence 123 | # ================================================================= 124 | 125 | # 消息自动保存的间隔时间 126 | #autosave_interval 1800 127 | 128 | # 消息自动保存功能的开关 129 | #autosave_on_changes false 130 | 131 | # 持久化功能的开关 132 | persistence true 133 | 134 | # 持久化DB文件 135 | #persistence_file mosquitto.db 136 | 137 | # 持久化DB文件目录 138 | #persistence_location /var/lib/mosquitto/ 139 | 140 | # ================================================================= 141 | # Logging 142 | # ================================================================= 143 | 144 | # 4种日志模式:stdout、stderr、syslog、topic 145 | # none 则表示不记日志,此配置可以提升些许性能 146 | log_dest none 147 | 148 | # 选择日志的级别(可设置多项) 149 | #log_type error 150 | #log_type warning 151 | #log_type notice 152 | #log_type information 153 | 154 | # 是否记录客户端连接信息 155 | #connection_messages true 156 | 157 | # 是否记录日志时间 158 | #log_timestamp true 159 | 160 | # ================================================================= 161 | # Security 162 | # ================================================================= 163 | 164 | # 客户端ID的前缀限制,可用于保证安全性 165 | #clientid_prefixes 166 | 167 | # 允许匿名用户 168 | #allow_anonymous true 169 | 170 | # 用户/密码文件,默认格式:username:password 171 | #password_file 172 | 173 | # PSK格式密码文件,默认格式:identity:key 174 | #psk_file 175 | 176 | # pattern write sensor/%u/data 177 | # ACL权限配置,常用语法如下: 178 | # 用户限制:user 179 | # 话题限制:topic [read|write] 180 | # 正则限制:pattern write sensor/%u/data 181 | #acl_file 182 | 183 | # ================================================================= 184 | # Bridges 185 | # ================================================================= 186 | 187 | # 允许服务之间使用“桥接”模式(可用于分布式部署) 188 | #connection 189 | #address [:] 190 | #topic [[[out | in | both] qos-level] local-prefix remote-prefix] 191 | 192 | # 设置桥接的客户端ID 193 | #clientid 194 | 195 | # 桥接断开时,是否清除远程服务器中的消息 196 | #cleansession false 197 | 198 | # 是否发布桥接的状态信息 199 | #notifications true 200 | 201 | # 设置桥接模式下,消息将会发布到的话题地址 202 | # $SYS/broker/connection//state 203 | #notification_topic 204 | 205 | # 设置桥接的keepalive数值 206 | #keepalive_interval 60 207 | 208 | # 桥接模式,目前有三种:automatic、lazy、once 209 | #start_type automatic 210 | 211 | # 桥接模式automatic的超时时间 212 | #restart_timeout 30 213 | 214 | # 桥接模式lazy的超时时间 215 | #idle_timeout 60 216 | 217 | # 桥接客户端的用户名 218 | #username 219 | 220 | # 桥接客户端的密码 221 | #password 222 | 223 | # bridge_cafile:桥接客户端的CA证书文件 224 | # bridge_capath:桥接客户端的CA证书目录 225 | # bridge_certfile:桥接客户端的PEM证书文件 226 | # bridge_keyfile:桥接客户端的PEM密钥文件 227 | #bridge_cafile 228 | #bridge_capath 229 | #bridge_certfile 230 | #bridge_keyfile 231 | 232 | ``` 233 | 234 | 235 | 236 | ### 测试 237 | 238 | > cd ./mosquitto/client 239 | > 240 | >//订阅topic“test-topic” 241 | > 242 | >./mosquitto_sub -h 127.0.0.1 -p 1883 -t "test-topic" 243 | > 244 | >//向topic“test-topic”发送一条消息:hello jason 245 | > 246 | >./mosquitto_pub -h 127.0.0.1 -p 1883 -t "test-topic" -m "hello jason" 247 | 248 | 249 | 250 | ## 问题 251 | ### 1. Invalid user 'mosquitto' 252 | 253 | > vim mosquitto.conf 254 | > 255 | > 增加 当前用户 256 | > 257 | > user root 258 | > 259 | 260 | 261 | ### 2. ./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory 262 | 263 | > 在执行 ./mosquitto_sub 的过程会报一个错 264 | > 265 | >执行以下命令 266 | > 267 | >sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1 268 | > 269 | > 270 | >ldconfig 271 | > 272 | >再次执行 ./mosquitto_sub 就行了 273 | 274 | -------------------------------------------------------------------------------- /AI/Deepseek.md: -------------------------------------------------------------------------------- 1 | ### Introduce 2 | The purpose of writing this article is to run a large model on a laptop computer, similar to the effect of achieving online AI, such as Doubao, Baidu Wenxin Word and other AI tools 3 | 4 | The installation part of this article is only suitable for beginners with less foundation, and the master can ignore this link. 5 | 6 | For reasons you all know, many of the actions in this article require a ladder to navigate. 7 |
8 |
9 |
10 | #### Required software 11 | 12 | Below is a list of the required sofware 13 | - python 14 | - pip 15 | - ollama 16 | - open-webui 17 | 18 | 19 | 20 | ##### Python 21 | 22 | The python environment is used to run the open-webui of the client, which can be used instead of the ollama terminal 23 | pip is the package manager needed to install python 24 | 25 | 26 | 27 | 28 |
29 |
30 |
31 | 32 | ##### Ollama 33 | 34 | Ollama is a large model management platform that provides everything you need to download and run large models. 35 | 36 | It only takes very simple steps to run large models on the computer 37 | 38 | 39 | 40 | ##### Open-webui 41 | 42 | Usually, after you install ollama, you run the model and can only type text in the terminal, which is not too convenient to use, so you need an interface similar to other web version of AI tools, here it is recommended to use the open-webui program written in python 43 | 44 | 45 | 46 | 47 | #### Destination 48 | 49 | The goal of this article is to run deepseek's r1 1.5b model on a laptop, but it also applies to other models included on the ollama platform 50 | 51 |
52 |
53 |
54 | 55 | ### Installation 56 | 57 | This section explains how to install the required software 58 | Since I only have windows at hand, here is how to install windows 59 | 60 | #### Python & pip 61 | 62 | ##### Install python 63 | Go to the official python [website](https://www.python.org/) to download the installation package, and select this version here: 64 | 65 | Click Download to install 66 | ![image](https://github.com/user-attachments/assets/164a0620-be6e-42ca-bbac-82a641c7a5a2) 67 | 68 | ![image](https://github.com/user-attachments/assets/5bfb6ac7-38cb-4240-8061-ef7cd9d6c2d2) 69 | 70 | The installation method is a point-and-click next and the next step is fine. 71 | 72 | Input below command 73 | ~~~ 74 | python 75 | ~~~ 76 | If you see below screenshot, the python install is completed. 77 | ![image](https://github.com/user-attachments/assets/08ba7115-64f9-412b-a8c3-f5bfbd3ba203) 78 | 79 | 80 | ##### Install pip 81 | 82 | For windows users, you just need to set the environment variable and pip is installed. 83 | 84 |
85 |
86 | Follow the steps in the screenshot below to set the environment variables 87 | 88 | ![image](https://github.com/user-attachments/assets/8f3518d2-9c28-4f32-8923-5c67d04e81b5) 89 | 90 | ![image](https://github.com/user-attachments/assets/e6760b9e-596d-454e-a065-01bf2fb58ec1) 91 | 92 | ![image](https://github.com/user-attachments/assets/843fe858-100a-4a87-a077-f974dcbabe27) 93 | 94 | ![image](https://github.com/user-attachments/assets/5b2bff7a-170f-41d8-9567-2e96705aedaf) 95 | 96 | Below is the environment variables for Python and PIP 97 | ![image](https://github.com/user-attachments/assets/63512781-3cc1-4f1b-8a92-c302caaf1044) 98 | 99 | Input below command 100 | 101 | ~~~ 102 | pip --version 103 | ~~~ 104 | 105 | If you see below screenshot, the pip install is completed. 106 | ![image](https://github.com/user-attachments/assets/6e713f85-c06c-45c4-bf02-b51ff6680307) 107 | 108 | 109 | 110 | 111 | 112 | ##### Mirror image 113 | What is a mirror image?
114 | For some reason, foreign websites cannot be accessed in the country, so you need to set up a domestic mirror site, otherwise pip will not work properly 115 | 116 |
117 | 118 | The following uses [Tsinghua](https://mirrors.tuna.tsinghua.edu.cn/help/pypi) Source as an example to set an image 119 | 120 | Input the follwing command 121 | ~~~ 122 | pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 123 | ~~~ 124 | 125 | 126 | #### Ollama 127 | Open ollama making address: [https://github.com/ollama/ollama](https://github.com/ollama/ollama) 128 | 129 | Find the Release section on the right and click to select the latest release 130 | 131 | ![image](https://github.com/user-attachments/assets/03f297a3-77e2-4a63-ac1d-dfd056117023) 132 | 133 | Select the version below on the page that opens 134 | 135 | ![image](https://github.com/user-attachments/assets/663029a0-2f4e-4161-97f4-fce5cfd857b8) 136 | 137 | ##### Environment variable 138 | 139 | Environment variables have been described above, here will not repeat, as shown in the screenshot below to set the environment variable is good 140 | 141 | ![image](https://github.com/user-attachments/assets/2bb7a82c-5164-4332-96a7-2ea773e3f75b) 142 | 143 | 144 | #### Open-webui 145 | 146 | This step depends on pip, so the python link above is a must. 147 | 148 | Input below command to install open-web-ui 149 | ~~~ 150 | pip install open-webui 151 | ~~~ 152 | 153 | 154 |
155 |
156 |
157 | 158 | 159 | ### Run large model 160 | 161 | #### Server 162 | Input below command. 163 | ~~~ 164 | ollama serve 165 | ~~~ 166 | You will see below command line. 167 | 168 | ![image](https://github.com/user-attachments/assets/4ad72c40-a858-4456-8a2c-5f8bd107e786) 169 | 170 | 171 | #### Client 172 | Input below command. 173 | ~~~ 174 | ollama run deepseek-r1:1.5b 175 | ~~~ 176 | The first run of this command will perform the download and install steps, if it is already installed, the second run will not have it and will run the model directly 177 | 178 | ![image](https://github.com/user-attachments/assets/6e89bac0-8499-42a2-a21e-6697eef47a01) 179 | 180 | 181 | #### Web Client 182 | Input below command. 183 | ~~~ 184 | open-webui serve 185 | ~~~ 186 | 187 | The first run will download the front and back end and run, the second run will not download the step, will run directly 188 | 189 | ![image](https://github.com/user-attachments/assets/7e52566b-fa7a-4c45-b1f6-c42f3fb16cf8) 190 | 191 | The first login will require an administrator account and password, as shown in the screenshot below 192 | 193 | ![image](https://github.com/user-attachments/assets/1e08607a-17b1-491c-85b9-00ecef900519) 194 | 195 | Here you can select all models locally 196 | 197 | ![image](https://github.com/user-attachments/assets/e36e1b9d-c9de-4a7b-9d48-10b0cd96c9a9) 198 | 199 | Then you can have fun with the big models 200 |
201 |
202 |
203 |
204 | 205 | ### Other Big Model 206 | 207 | Does the current article only apply to the big Deepseek model? Of course not, this article applies to all of the large models included in the Ollama platform, and almost all of the well-known open source large models have been included. 208 | 209 | So how do you use other big models? 210 | 211 | Open [Ollama's official site](https://ollama.com/), you can see all the big models they have included, and you can choose which ones you want 212 | 213 | ![image](https://github.com/user-attachments/assets/f5d664da-5f1e-4811-ba06-03b5061e68ad) 214 | 215 | Here is the running command. 216 | 217 | ![image](https://github.com/user-attachments/assets/1b3a652f-c08a-414b-969d-6837f86ed189) 218 | 219 | 220 | Download deepseek r1 7b model 221 | ![image](https://github.com/user-attachments/assets/fd47c25c-4daa-45fb-ba84-ad031ceb6582) 222 | 223 | 224 | 225 | 226 | 227 | ### Reference 228 | 229 | - [How to install ollama](https://ollama.readthedocs.io/quickstart/) 230 | -------------------------------------------------------------------------------- /实战演练/自动化部署/main.md: -------------------------------------------------------------------------------- 1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤一 2 | --- 3 | 背景知识: 4 | 5 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可 6 | 这次选择的是.Net Core后端项目 7 | 8 | 想要实现这个目标,需要掌握以下基本知识 9 | 1. Centos基本操作,linux常用命令 10 | 2. Git代码管理知识,常用命令 11 | 3. docker基础知识,docker-compose基础 12 | 4. nginx基础理论,配置文件相关知识 13 | 5. gitlab管理知识,基础操作 14 | 15 | 16 | 17 | 18 | --- 19 | 20 | 21 | 22 | 由于篇幅较长,因此拆分为几篇文章: 23 | 24 | ### 步骤一环境安装 25 | 26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 27 | 28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 29 | 30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) 31 | 32 | 33 | --- 34 | ### 步骤一环境安装 35 | 环境主要分为硬件环境和软件环境: 36 | 一. 硬件环境 37 | 1. 内存至少8g以上,16g更好,因为虚拟机至少需要4g或者更多的内存 38 | 2. CPU在i5即可,没有更多要求 39 | 3. 硬盘至少30g空间,用于安装软件,如果觉得紧张,那15g是必不可少的了 40 | 4. 安装时会安装两台服务器,一台用于gitlab服务器,另一台作为web服务器,这台硬件要求可以放低一点,因为只是测试环境,不存在高并发情况 41 | 5. 我的两台服务器,一台给了单CPU4核心,8G内存40G硬盘,另一台单核单CPU,2G内存20G硬盘 42 | 43 | 44 | 二. 软件环境 45 | 1. Centos7.5——linux操作系统 46 | 2. Nginx——反向代理 47 | 3. Dcoker——docker容器 48 | 4. Docker-compose——容器编排 49 | 5. Vim——文本编辑器,这个安装很简单,就不单独说明了 50 | 6. Firewall——防火墙 51 | 7. Docker下的Gitlab 52 | 8. Gitlab-Runner——自动化部署的客户端软件 53 | 9. .Net CoreSDK的安装 54 | 55 | 虚拟机我采用的是Vmware,Centos的ISO我是从官网下载的最新版1804,安装后显示centos为7.5版本 56 | 57 | #### 安装步骤 58 | 1. Centos安装 59 | 60 | 虚拟机安装过程比较简单,这里就不展开描述了,只说几个注意点 61 | 1. 安装过程中,软件安装的选项,选择最小安装,所有额外的软件都不安装,这样可以节省资源不说,而且装太多,会占用大量磁盘空间 62 | 2. 安装过程中记得把网卡打开,如果没有打开,可以在装完后,用终端,vi编辑 /etc/sysconfig/network-scripts/ifcfg-ns33 类似这个文件,最后的尾数可能不相同。设置:“ONBOOT=yes”,保存后重启,就会连上网络 63 | 3. 查看当前IP地址 ,centos7.5默认没有ifconfig命令,只能用ip addr查看 64 | 65 | 2. Windows下SSH软件的选择 66 | 67 | 推荐几款终端软件 68 | 1. gitbash,安装好git就会出现,这个终端出奇的好用,就是没有多终端管理之类的强化功能,这个软件是免费的 69 | 2. 如果你的操作系统是win10 ,可以在应用市场安装Ubuntu这个APP,这是一个完整的Linux子系统,可以直接在Power shell里使用它的终端界面 70 | 3. SecureCRT ,老牌终端程序了,不过这个是收费的 71 | 4. Zoc7,本来是Mac下的终端,超好用,目前发现Windows下同样提供了,比以上所的所有终端都好用,也是收费软件 72 | 5. SmarTTY,最近才发现的完全免费的ssh,出奇的好用,还免费试用,强烈建议试用 73 | 6. Putty 完全开源免费的,使用起来类似gitbash 74 | 7. Cygwin,这个东东能提供win下的整个linux环境,非常强大,他不仅仅是一个ssh 75 | 76 | 3. Docker的安装 77 | 78 | 由于有那堵墙在,所以国内的Linux软件下载速度都奇慢无比,所以,需要配置国内的镜像源,这里选择的是阿里的源 79 | 1. 先安装基础软件 80 | ``` 81 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 82 | ``` 83 | 2. 配置阿里的镜像 84 | ``` 85 | sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 86 | ``` 87 | 3. 安装docker 88 | ``` 89 | sudo yum makecache fast 90 | 91 | sudo yum -y install docker-ce 92 | ``` 93 | 4. 启动docker并设置开机启动 94 | ``` 95 | sudo systemctl enable docker 96 | sudo systemctl start docker 97 | ``` 98 | 5. 测试是否安装完毕,执行如下命令,正常会看到结果 99 | ``` 100 | [root@localhost sysconfig]# docker images 101 | REPOSITORY TAG IMAGE ID CREATED SIZE 102 | gitlab/gitlab-ce latest b199bc7f269f 39 hours ago 1.47GB 103 | [root@localhost sysconfig]# 104 | ``` 105 | 6. 把当前用户加入Docker用户组,这样每次使用docker就不用输入sudo docker了,只需要输入docker 106 | ``` 107 | sudo gpasswd -a ${USER} docker 108 | # 重启docker服务 109 | sudo systemctl restart docker 110 | # 切换用户,或者注销登录 111 | su root 切换到root用户 112 | su ${USER} 再切换到原来的应用用户以上配置才生效 113 | 114 | ``` 115 | 116 | 4. 安装docker-compose 117 | docker-compose安装比较简单,官方提供了curl地址 118 | ``` 119 | #安装 120 | sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 121 | 122 | #授权命令 123 | sudo chmod +x /usr/local/bin/docker-compose 124 | ``` 125 | 安装完毕后检验结果: 126 | ``` 127 | [root@localhost sysconfig]# docker-compose --version 128 | docker-compose version 1.17.1, build 6d101fb 129 | [root@localhost sysconfig]# 130 | 131 | ``` 132 | 133 | 5. 安装基于docker的gitlab 134 | 135 | 1. 编写docker-compose.yml文件 136 | 137 | 为什么要编写docker-compose文件? 138 | 139 | 这里简单说一下,docker-compose是docker官方提供的容器编排工具,上手比较简单,主要功能就是操作容器,包括容器的下载,运行,关闭,查看状态,等等,容器运行的一些参数,可以直接用docker-compose操作,不用每次都敲docker run xxx命令,docker-compose.yml是docker-compose的模板文件,会根据这个文件,执行一系列的命令,命令结果,默认在docker本地仓库内,和当前所处的目录无关 140 | 141 | 先创建目录和文件 142 | ``` 143 | cd /home 144 | mkdir gitlab 145 | cd gitlab 146 | mkdir docker-compose.yml 147 | vim docker-compose.yml 148 | 149 | ``` 150 | 文件内容: 151 | ``` 152 | version: '3' 153 | 154 | services: 155 | gitlab: 156 | image: gitlab/gitlab-ce 157 | container_name: "gitlab" 158 | restart: always 159 | ports: 160 | - "8080:80" 161 | - "443:443" 162 | - "10022:22" 163 | environment: 164 | GITLAB_OMNIBUS_CONFIG: | 165 | external_url 'http://gitlab.baidu.com' 166 | gitlab_rails['gitlab_shell_ssh_port'] = 10022 167 | volumes: 168 | - '/srv/gitlab/config:/etc/gitlab' 169 | - '/srv/gitlab/logs:/var/log/gitlab' 170 | - '/srv/gitlab/data:/var/opt/gitlab' 171 | networks: 172 | default: 173 | driver: bridge 174 | ``` 175 | 文件内容不多做解释,简单来说就是下载gitlab/gitlab-ce并运行,映射到主机的端口,注意这一句中的域名,下面的步骤会用到 176 | ``` 177 | external_url 'http://gitlab.baidu.com 178 | ``` 179 | 2. 运行docker-compose.yml文件 180 | 181 | 可以直接敲命令,不过为了不重复劳动,建议创建一个.sh文件,用于执行 182 | ``` 183 | cd /home/gitlab/docker-compose 184 | mkdir run.sh 185 | vim run.sh 186 | # 文件内容: 187 | docker-compose up -d --build --force-recreate 188 | # 使用 189 | sh run.sh 190 | ``` 191 | #正常会执行下载gitlab-ce的操作,大概1.6g左右 192 | 193 | 至此,一个在docker下运行的gitlab环境就安装完毕了,在环境跟本文一致的情况下,亲测有效,如有意外,自行解决 194 | 195 | 196 | *注意:以上所有操作,均在root用户下进行,下面也不再重复* 197 | 198 | 6. 配置防火墙 199 | 200 | 默认情况下,和以往不同,centos7安装了firewalld,而不是iptables,这个新防火墙我还不清楚好坏,但是操作起来简单多了,所以本次就不换成iptables了 201 | 1. 配置开放80,8080端口 202 | ``` 203 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 204 | firewall-cmd --zone=public --add-port=8080/tcp --permanent 205 | ``` 206 | 2. 重新载入 207 | ``` 208 | firewall-cmd --reload 209 | ``` 210 | 3. 查看是否生效 211 | ``` 212 | [root@localhost sysconfig]# firewall-cmd --zone=public --query-port=80/tcp 213 | yes 214 | [root@localhost sysconfig]# 215 | ``` 216 | 4. 测试gitlab,看是否已经可用 217 | 218 | 在宿主电脑,打开浏览器,输入:http://192.168.1.xxx:8080 (需要输入你虚拟机的IP地址) 如下截图所示就表示已经正常了 219 | 220 | ![图片](/实战演练/自动化部署/images/gitlablogin.png) 221 | 222 | 如果这样,是不是就证明你的gitlab可以用了,不,还不行,因为你的域名是IP地址,并且带有端口,无法正常使用,我们还需要引入Nginx 223 | 224 | 7. 安装nginx并配置生效 225 | 226 | nginx的作用是端口,域名,路由,等等转发,也非常使用用于静态文件的web服务器,这里只用作域名转发 227 | 228 | 1. 安装Nginx 229 | ``` 230 | # 安装基础软件 231 | sudo yum install epel-release 232 | # 安装nginx 233 | sudo yum install nginx 234 | ``` 235 | 2. 启动nginx 236 | ``` 237 | sudo systemctl start nginx 238 | sudo systemctl enable nginx 239 | ``` 240 | 241 | 3. 修改nginx的配置文件 242 | 243 | nginx的配置文件分几种,一种是/etc/nginx/nginx.conf,核心配置文件,还有一种属于客户配置的文件,放在/etc/nginx/conf.d/ 这个目录下 244 | 245 | 修改nginx.conf,将其中的用户修改为root,这里是为了方便,正常应该建立nginx用户并授权,如截图所示 246 | 247 | ![图片](/实战演练/自动化部署/images/nginxconf.png) 248 | 249 | 在/etc/nginx/conf.d下添加一个配置文件 250 | ``` 251 | [root@localhost nginx]# cd /etc/nginx/conf.d 252 | [root@localhost conf.d]# ls 253 | gitlab.conf 254 | [root@localhost conf.d]# vim gitlab.conf 255 | # 文件内容: 256 | 257 | server { 258 | listen 80; 259 | server_name gitlab.baidu.com; 260 | access_log /var/log/nginxhost.access.log main; 261 | location / { 262 | proxy_pass http://127.0.0.1:8080; 263 | } 264 | } 265 | 266 | ``` 267 | 4. 重新读取nginx配置 268 | 269 | 输入命令,让新配置的配置文件生效 270 | ``` 271 | [root@localhost conf.d]# nginx -s reload 272 | [root@localhost conf.d]# 273 | 274 | ``` 275 | 276 | 5. 修改selinux,允许nginx通过 277 | 278 | 为什么要做这一步? 279 | 280 | 因为selinux默认会审核所有的安全策略,nginx默认是不给通过的,需要配置,否则就算nginx是正常运作的,但是还是会看到nginx502错误 281 | 282 | 配置命令: 283 | ``` 284 | yum install policycoreutils-python 285 | sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx 286 | semodule -i mynginx.pp 287 | ``` 288 | 网上有很多种解决办法,但是最多的一种办法就是关闭selinux,为了安全,我不认为关闭是个好办法 289 | 6. 测试nginx是否生效 290 | 291 | 配置本地hosts文件,增加规则 292 | ``` 293 | 192.168.20.139 gitlab.baidu.com 294 | ``` 295 | 296 | 打开浏览器,输入地址:http://gitlab.baidu.com 看到下图所示,就表示已经全部成功了 297 | 298 | ![图片](/实战演练/自动化部署/images/gitlabbaidu.png) 299 | 300 | 301 | 8. DotNet2.1 SDK环境安装 302 | 303 | 1. 导入rpm源 304 | ``` 305 | sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 306 | ``` 307 | 2. 更新软件包 308 | ``` 309 | sudo yum -y update 310 | ``` 311 | 3. 安装SDK 312 | ``` 313 | sudo yum -y install dotnet-sdk-2.1 314 | ``` 315 | 4. 校验是否安装成功 316 | ``` 317 | dotnet --version 318 | ``` 319 | 9. gitlab-runner的安装 320 | 321 | gitlab-runner是一个工作者程序,用于接受gitlab上版本更新小心,并触发本地自动化部署脚本的执行 322 | 323 | 安装步骤来自于[gitlab的官方网站](https://docs.gitlab.com/ee/README.html) 324 | 325 | 1. 安装软件 326 | ``` 327 | # Linux x86-64 328 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 329 | 330 | # Linux x86 331 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386 332 | 333 | # Linux arm 334 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm 335 | 336 | 337 | ``` 338 | 2. 授权 339 | ``` 340 | sudo chmod +x /usr/local/bin/gitlab-runner 341 | ``` 342 | 343 | 344 | 3. 验证是否安装成功 345 | ``` 346 | 输入:gitlab-runner list 347 | 348 | ``` 349 | 350 | 由于实际操作需要安装两台centos,1台作为gitlab服务器,另一台作为web服务器用于发布,安装过成大致一样,就不多做赘述了 351 | 352 | 至此,环境安装就已经全部结束了,由于篇幅较长,因此拆分成几个步骤了,下面提供了链接 353 | --- 354 | 355 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md) 356 | 357 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md) 358 | 359 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md) 360 | 361 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 文档项目 2 | 3 | ### 文档导航 4 | ~~~ 5 | 根据工作需要,本文档主要包括以下几类文档: 6 | ~~~ 7 | - 实战演练 8 | - 运维类 9 | - AI相关 10 | - 研发类 11 | - 项目管理 12 | - 其他 13 | 14 | ~~~ 15 | 根据我工作的变化,以后还会增加 16 | 17 | 可以看出我的工作多而且杂,穿插了运维,研发(前端,后端),没办法,劳碌命 18 | ~~~ 19 | --- 20 | 21 | #### 实战演练 22 | - [在centos7.5环境下配置实现.net core项目的自动化部署](/实战演练/自动化部署/main.md) 23 | 24 | 25 | #### 运维相关 26 | - Centos 27 | - [安装Docker ce](/运维文档/Centos安装Docker.md) 28 | - [防火墙配置教程](/运维文档/Centos环境下防火墙配置.md) 29 | - [如何安装Docker下的禅道](https://blog.csdn.net/qq_28039297/article/details/78650552) 30 | - [如何安装Docker下的gitlab](https://www.cnblogs.com/xuezhigu/p/6555895.html) 31 | - [安装Docker下的Mysql,并启动](https://www.linuxidc.com/Linux/2017-09/146659.htm) 32 | - [安装Nodejs最靠谱的方式](https://www.cnblogs.com/betx/p/10347797.html) 33 | - [安装nginx](https://blog.csdn.net/oldguncm/article/details/78855000) 34 | - [安装Chrome浏览器](https://www.cnblogs.com/ianduin/p/8727333.html) 35 | - [安装Maven](/运维文档/安装Maven.md) 36 | - [安装JDK8](/运维文档/安装Java.md) 37 | - [Hyper-v环境下,磁盘空间满,扩容处理](/运维文档/虚拟机环境下Centos7磁盘扩容.md) 38 | - [如何分析网络流量,使用tcpdump](./运维文档/Centos下如何使用tcpdump抓包.md) 39 | - [Samba连接widnows](https://blog.csdn.net/yexiangcsdn/article/details/82867469) 40 | - [Samba挂载windows目录](/运维文档/samba如何和windows共享交互.md) 41 | - [Npm部署前端项目,权限问题解决](https://www.cnblogs.com/dunke/p/10224770.html) 42 | - [物理机扩充硬盘](/运维文档/Centos物理机如何扩展硬盘.md) 43 | 44 | - Ubuntu 45 | - [怎么安装最新的NodeJs(采用安装方式)](https://blog.csdn.net/chenyao1994/article/details/82495163) 46 | - [怎么安装Chrome](https://www.cnblogs.com/cainiaoaixuexi/p/9033350.html) 47 | - [分辨率高以后,解决缩放问题](http://tieba.baidu.com/p/5670339451) 48 | - [怎么安装Nodejs最新版(采用解压缩方式)](/运维文档/Ubuntu安装Nodejs.md) 49 | - [怎么安装最新版的git](/运维文档/Ubuntu安装Git最新版.md) 50 | - [更换软件源](https://blog.csdn.net/zhangjiahao14/article/details/80554616) 51 | - [安装搜狗输入法](https://blog.csdn.net/lupengCSDN/article/details/80279177) 52 | - [安装.NetCore](https://www.cnblogs.com/xyfy/p/9881855.html) 53 | - [安装Deepin,Wine软件](https://www.lulinux.com/archives/1319) 54 | - Manjaro & Arch 55 | - [新系统折腾](https://blog.csdn.net/github_39457740/article/details/84551304) 56 | - [精品教程,安装后要做的事](https://www.cnblogs.com/elinuxboy/p/10123877.html) 57 | - [搜狗输入法](https://www.jianshu.com/p/1cde4b7ec3c2) 58 | - [谷歌浏览器](https://blog.51cto.com/aurogon/2321871) 59 | - [Docker](https://blog.csdn.net/albertjone/article/details/80266700) 60 | 61 | - Docker 62 | - [连接到已经打开的容器](https://www.cnblogs.com/zhuxiaojie/p/5947270.html) 63 | - [删除Docker镜像](https://www.cnblogs.com/q4486233/p/6482711.html) 64 | - [如果国内无法安装docker-ce,可以使用阿里的镜像仓库](https://blog.csdn.net/yohoph/article/details/80079078) 65 | - [部署Spring Boot项目注意事项](/运维文档/SpringBoot部署.md) 66 | - [删除多余的虚悬镜像](/运维文档/虚悬镜像.md) 67 | - [Portainer.io介绍(Docker图形化管理工具)](https://www.cnblogs.com/river2005/p/8283700.html) 68 | - [限制Docker容器的日志容量-过大会导致磁盘空间满](/运维文档/Docker日志容量限制.md) 69 | - [容器导出迁移到其他机器](https://www.jianshu.com/p/4e862a2a2d03) 70 | - [给容器打标签-tag](https://www.cnblogs.com/weifeng1463/p/11190567.html) 71 | - [修改已经运行的容器参数](https://www.cnblogs.com/ExMan/p/11613148.html) 72 | - 镜像加速 73 | - [Docker阿里云加速器链接地址](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors) 74 | - [如何配置加速器](https://blog.csdn.net/bwlab/article/details/50542261) 75 | - [阿里云Docker加速服务,DockerForWindows](https://www.cnblogs.com/zhxshseu/p/5970a5a763c8fe2b01cd2eb63a8622b2.html) 76 | - [如何安装ELK](/运维文档/安装ELK.md) 77 | - [Elastic-Plugin插件安装教程](https://my.oschina.net/u/2342969/blog/2252364) 78 | - [安装Kafka](https://www.jianshu.com/p/9552871bb40a) 79 | - [安装RabbitMq](https://www.cnblogs.com/angelyan/p/11218260.html) 80 | - [安装RocketMq](https://zhuanlan.zhihu.com/p/133792711) 81 | - [安装Memcached](https://blog.csdn.net/zhi_ai_yaya/article/details/90510936) 82 | 83 | - Nginx 84 | - [nginx端口转发因为selinx无法运行,不关闭selinux的解决办法](https://blog.csdn.net/babys/article/details/54135438) 85 | - Windows 86 | - [安装DockerForWindows](https://baijiahao.baidu.com/s?id=1570288005533351&wfr=spider&for=pc) 87 | - [部署将Solr7.2.1部署在Tomcat9下](/运维文档/Solr7部署.md) 88 | - 通用Linux 89 | - [在Linux下生成SSH Key,然后免key登陆GitLab](https://blog.csdn.net/y1574406771/article/details/72676980) 90 | - Git相关 91 | - [工作中常见git问题汇总](/编程文档/git/main.md) 92 | - [gitlab迁移,备份恢复](https://www.cnblogs.com/breakering/p/9712040.html) 93 | - 自动化部署(CICD 94 | - Gogs 95 | - [Gogs安装注意事项](https://www.cnblogs.com/phpisbest/p/7000255.html) 96 | - [超详细教程](http://www.mdslq.cn/archives/1a623683.html) 97 | - Drone 98 | - [Drone安装调试简单教程](https://cloud.tencent.com/developer/article/1379546) 99 | - [Drone+gogs简化教程](https://www.jianshu.com/p/fe2521afddcf) 100 | - Rancher 101 | - Mysql 102 | - [Mysql导入导出](/运维文档/Mysql导入导出.md) 103 | - Tidb 104 | - [官网文档](https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb) 105 | - [Tidb介绍](https://www.jianshu.com/p/f076eab48a3a) 106 | - CockroachDB 107 | - [CockroachDB](http://www.cockroachchina.cn/) 108 | - MQTT 109 | - [mosquitto安装](/运维文档/Mosquitto安装使用.md) 110 | - ELK 111 | - [Elasticsearch RestFul使用教程](https://blog.csdn.net/gwd1154978352/article/details/82804942) 112 | - [Elasticsearch增删改查演练](/运维文档/Elasticsearch测试.md) 113 | - 堡垒机 114 | - [正在使用的堡垒机](https://www.jumpserver.org/#) 115 | --- 116 | #### 开发相关 117 | - Git 118 | - [同一台机器多个Git账号](/运维文档/git-two-account.md) 119 | - 后端语言 120 | - [Python](/Backend/Python/main.md) 121 | - [Python 快速入门](/Backend/Python/start.md) 122 | - Python 基础语法 123 | - Python 性能相关 124 | - Python 桌面程序 125 | - 相关文章收集 126 | - [Python包管理pip如何用上国内镜像](https://www.cnblogs.com/wqpkita/p/7248525.html) 127 | - [Python pip 国内镜像大全及使用办法](https://blog.csdn.net/madrabbit1987/article/details/81677114) 128 | - [Python新利器之pipenv](https://www.jianshu.com/p/00af447f0005) 129 | - [python实现opencv学习一:安装、环境配置、工具](https://blog.csdn.net/u011321546/article/details/79499598) 130 | - .NetCore 131 | - [使用VSCode开发.NetCore](https://www.cnblogs.com/yilezhu/p/9926078.html) 132 | - [千星项目OpenAuth.Net基于.Net Core 2.1的快速开发框架,核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选](https://github.com/yubaolee/OpenAuth.Core?tdsourcetag=s_pctim_aiomsg) 133 | - [NET, .NET CORE Open Source Workflow Engine 开源工作流引擎slickflow.com](https://github.com/besley/Slickflow?tdsourcetag=s_pctim_aiomsg) 134 | - [使用Identity Server 4建立Authorization Server (2)](https://www.cnblogs.com/cgzl/p/7788636.html) 135 | - [IdentityServer4实现Token认证登录以及权限控制](https://www.cnblogs.com/jaycewu/p/7791102.html) 136 | - [ASP.NET Core 认证与授权[4]:JwtBearer认证 ](https://www.cnblogs.com/RainingNight/p/jwtbearer-authentication-in-asp-net-core.html) 137 | - [IdentityServer4-从数据库获取User登录并对Claims授权验证(五)](http://www.imooc.com/article/270521?block_id=tuijian_wz) 138 | - [读取配置文件](https://www.cnblogs.com/Leo_wl/p/5709762.html) 139 | - [Nuget配置第三方源,缓存目录](https://cloud.tencent.com/developer/article/1342253) 140 | - [如何用指定端口运行项目](/编程文档/使用指定端口运行项目.md) 141 | - [EntityFreamework如何设置查询超时](/编程文档/EF设置查询超时.md) 142 | - [Jetbrains家出的良心产品,免费的反编译软件dotPeek](https://www.jetbrains.com/decompiler/) 143 | - ABP 144 | - [Abp官网](https://aspnetboilerplate.com/) 145 | - Java 146 | - IDEA部分 147 | - [IDEA使用教程](https://www.jianshu.com/p/9c65b7613c30) 148 | - [IDEA下Devtools配置](https://www.cnblogs.com/gmq-sh/p/7727367.html) 149 | - [IDEA下Maven安装配置](https://www.cnblogs.com/sigm/p/6035155.html) 150 | - Maven部分 151 | - [Windows下Maven配置](https://www.cnblogs.com/haimishasha/p/8504421.html) 152 | - SpringBoot 153 | - [纯洁的微笑官网](http://www.ityouknow.com) 154 | - [SpringBoot系列教程](https://www.cnblogs.com/ityouknow/p/5662753.html) 155 | - [SpringBoot官网-项目创建(类似ABP)](https://start.spring.io) 156 | - [springboot项目启动后,自动打开默认浏览器](https://blog.csdn.net/superlover_/article/details/88418934) 157 | - [整合Jpa范例](https://www.cnblogs.com/sam-uncle/p/8819478.html) 158 | - [Jpa多数据源范例](https://blog.csdn.net/abcwanglinyong/article/details/85924615) 159 | - 开源项目 160 | - [Spring平台整合activiti工作流引擎实例](https://github.com/shenzhanwang/Spring-activiti) 161 | - Activity 162 | - [手把手教你如何玩转Activiti工作流](https://blog.csdn.net/cs_hnu_scw/article/details/79059965) 163 | - [如何学习Activit-官网](https://www.activiti.org/userguide/) 164 | - [在线API文档](https://www.activiti.org/javadocs/index.html) 165 | - [Activiti进阶(一)--工作流(流程框架)](https://blog.csdn.net/qq_42112846/article/details/81106814) 166 | - ORM部分 167 | - [mybatis常用方法](https://blog.csdn.net/mr_chenjie_c/article/details/80068510) 168 | - [mybatis官网](https://mybatis.org/mybatis-3/zh/index.html) 169 | - [MybatisPlus官方文档](https://mp.baomidou.com/guide/) 170 | - [Jfinal文档](http://www.jfinal.com/) 171 | - 大数据 172 | - [ClickHouse深度揭秘](https://zhuanlan.zhihu.com/p/98135840) 173 | - [官网文档](https://clickhouse.tech/docs/zh/development/architecture/) 174 | - [携程用ClickHouse轻松玩转每天十亿级数据更新](https://www.sohu.com/a/332065480_411876) 175 | - [druid和clickhouse得比较](https://www.cnblogs.com/029zz010buct/p/12674287.html) 176 | - [Spark与Flink对比](https://www.cnblogs.com/tesla-turing/p/12509254.html) 177 | - JDK 178 | - [AwsCorretto-免费JDK](https://aws.amazon.com/cn/corretto/) 179 | 180 | - Go 181 | - [Go的gui库Walk简单使用](https://blog.csdn.net/bw761813/article/details/89673030) 182 | - [Walk库仓库](https://github.com/lxn/walk) 183 | - [go语言环境配置](https://blog.csdn.net/u013295518/article/details/78766086) 184 | - Nodejs 185 | - [koa2环境搭建](https://blog.csdn.net/weixin_42795831/article/details/82765912) 186 | - [Koa2开源项目] 187 | - Lua 188 | - [API网关Kong和KongA](https://segmentfault.com/a/1190000020375323?utm_source=tag-newest) 189 | - [开源API网关系统(Kong教程)入门到精通](https://www.jianshu.com/p/a68e45bcadb6) 190 | 191 | - 前端相关 192 | - Vue 193 | - Vue管理框架收集 194 | - [Vue-Element-Admin](https://panjiachen.gitee.io/vue-element-admin-site/zh/) 195 | - [D2Admin](https://d2admin.fairyever.com/#/index) 196 | - [飞冰](https://ice.work) 197 | - [基于Vue+Vuex+iView的电子商城网站](https://github.com/PowerDos) 198 | - [Vue资源汇总](https://www.cnblogs.com/zxyzm/p/10651124.html) 199 | - 其他前端框架 200 | - [MintUi](https://mint-ui.github.io/docs/#/) 201 | - [Vant](https://youzan.github.io/vant/#/zh-CN/list) 202 | - Angular 203 | - [Ng-alain](https://ng-alain.com/zh) 204 | - [Ng-zorro-antd](https://ng.ant.design/docs/introduce/zh) 205 | - React 206 | - Electron 207 | - [解决install.js卡死的问题](https://www.jianshu.com/p/eac8f37d6992) 208 | - 代码审查 209 | - [如何在团队中使用代码审查机制](https://www.cnblogs.com/kentalk/p/gitlab-code-review-tutorial.html) 210 | - 手机玩法 211 | - IOS 212 | - Android 213 | - termux 214 | - 安装后的配置(必做) 215 | - 如何安装常用软件 216 | - [安装Mysql](/运维文档/termux-mysql.md) 217 | - 安装Redis 218 | - 安装Java环境 219 | - 安装Nodejs 220 | - 在手机端运行ruoyi-vue这个开源项目 221 | --- 222 | #### 项目管理 223 | 224 | --- 225 | 226 | #### 其他 227 | --- 228 | 229 | ##### BI分析 230 | - [轻量级BI工具Superset的搭建与使用](https://www.jianshu.com/p/b02fcea7eb5b) 231 | - PowerBI 232 | - [powerbi官网](https://app.powerbi.cn/) 233 | - [Dax函数大全](https://www.powerbigeek.com/dax-functions-previousday/?f=1) 234 | --- 235 | ##### 免费软件推荐 236 | - [Mysql查询分析器MysqlWorkBench](https://dev.mysql.com/downloads/workbench/) 237 | - [免费的数据库查询工具HeidiSql](https://www.heidisql.com/download.php) 238 | - [连接Redis的开源客户端软件](https://github.com/qishibo/AnotherRedisDesktopManager/) 239 | - [MongoDb可视化工具Robo3T](https://robomongo.org/download) 240 | 241 | 242 | --- 243 | ##### 专项课题(图文教学) 244 | - Win10环境在Hyper-v下安装Centos并运行Docker 245 | - [win10环境安装Hyper-v虚拟机](/运维文档/在win10操作系统下安装Hyper-v.md) 246 | - [基于Hyper-v安装Centos7.5](/运维文档/通过Hyper-v安装Centos7.5.md) 247 | - [Centos7.5常用软件以及Docker的安装](/运维文档/在纯净的Centos7.5下安装常用软件和Docker.md) 248 | - [Docker常用操作以及容器安装运行](/运维文档/基于Docker安装和运行常用容器.md) 249 | --- 250 | ##### 技术教程 251 | - 在线教程 252 | - [Docker在线教程](https://yeasy.gitbooks.io/docker_practice/content/) 253 | - [阮一峰的Docker入门教程](http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html) 254 | - 完整版教材 255 | - [Docker入门到实践,这个强推](https://www.gitbook.com/book/yeasy/docker_practice/details) 256 | 257 | --- 258 | ##### 其他内容(未分类) 259 | ###### 优秀在线工具分享 260 | - [蓝湖APP——在线产品,设计图,分享标注](https://lanhuapp.com/?home) 261 | - [在线流程图,脑图,设计稿,文件数有上限](https://www.processon.com/) 262 | - draw.io 263 | - [在线网站](https://www.draw.io/) 264 | - [开源地址](https://github.com/jgraph/drawio) 265 | --------------------------------------------------------------------------------