呓语博客 - DevOps
type: channel
link: https://chengxuyi.top/category/DO
items: Frp内网穿透（使用自己的服务器将 本地服务 映射到外网）
items: Docker-Compose.yml 合集
items: Docker从入门到精通教程
items: Jenkins集成SonarQubeScanner
items: SonarQube代码质量检查工具
items: Jenkins教程

Frp内网穿透（使用自己的服务器将 本地服务 映射到外网）
type: item
date: 2023-12-09T10:33:00+08:00
description: Frp内网穿透frp 是什么？frp 是一个专注于内网穿透的高性能的反向代理应用，支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。前提: 具有一台公网Ip的服务器下载frp解压缩下载的压缩包，将其中的 frpc 拷贝到内网服务所在的机器上，将 frps 拷贝到具有公网 IP 的机器上，放置在任意目录。配置fprs.ini[common] # frp的连接端口 bind_port = 7000 # 开放web 8080 端口 vhost_http_port = 8080 # 服务端密钥 token = tanghaofu # frp管理后台端口，请按自己需求更改 dashboard_port = 7500 # frp管理后台用户名和密码，请改成自己的 dashboard_user = yiyu dashboard_pwd = yiyu enable_prometheus = truefrpc.ini[common] # 需要连接的公网Ip地址 server_addr = 111.230.199.117 # 公网ip的frp端口 server_port = 7000 # 客户端密钥 token = tanghaofu # 创建一个基于tcp类型的连接 [我的世界内网穿透] type = tcp # 本地需要暴露到公网的服务地址 local_ip = 127.0.0.1 # 本地需要暴露到公网的服务端口 local_port = 25565 # remote_port 表示在 frp 服务端监听的端口，访问此端口的流量将会被转发到本地服务对应的端口 remote_port = 25565 # 开放一个http类型的连接 [测试本地web应用] type = http # 映射到本地的8080端口 local_port = 8080 custom_domains = 111.230.199.117启动命令服务端: ./frps -c ./frps.ini客户端: ./frpc -c ./frpc.ini

Docker-Compose.yml 合集
type: item
date: 2023-11-17T09:28:00+08:00
description: Docker-Compose总集MYSQLdocker-compose.ymlversion: "3.8" services: mysql: image: mysql:8.1 #镜像名称以及版本 #限制docker容器的内存 deploy: resources: limits: memory: 1G restart: always #重启docker后该容器也重启 container_name: mysql8 #容器名称 environment: MYSQL_ROOT_PASSWORD: root #指定用户密码 TZ: Asia/Shanghai ports: - 3306:3306 #本地端口号与容器内部端口号 volumes: #指定挂载目录 - ./data:/var/lib/mysql - ./conf/my.cnf:/etc/mysql/my.cnfmy.cnf[mysqld] user=mysql default-storage-engine=INNODB character-set-server=utf8 max_connections=1000 bind-address = 0.0.0.0 [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 Redisdocker-compose.ymlversion: "3.8" services: redis: restart: always image: redis ports: - 6379:6379 volumes: - ./config:/opt/config - ./data:/data command: redis-server /opt/config/redis.conf container_name: redisredis.conf# 开启 AOF 持久化 appendonly yes # 指定 AOF 文件名 appendfilename "appendonly.aof" # 指定 AOF 文件保存目录 dir /data # 关闭 RDB 持久化 save "" # 开启 RDB 持久化 #save 900 1 #save 300 10 #save 60 10000 # 禁用 Redis 的保护模式，允许外部连接 protected-mode no # 允许其他服务访问 bind 0.0.0.0 # 指定 Redis 监听的端口 port 6379 # 指定日志生成的文件 #logfile /var/log/redis/redis.log Elasticsearchdocker-compose.ymlversion: "3.8" services: elasticsearch: image: elasticsearch:8.1.0 container_name: elasticsearch # restart: always ports: - 9200:9200 - 9300:9300 environment: - TZ=Asia/Shanghai - discovery.type=single-node - ES_JAVA_OPTS=-Xms1024m -Xmx1024m volumes: # - ./config:/usr/share/elasticsearch/config - ./plugins:/usr/share/elasticsearch/plugins networks: - elastic kibana: container_name: kibana image: kibana:8.1.0 ports: - 5601:5601 networks: - elastic networks: elastic: driver: bridge Jenkinsdocker-compose.ymlversion: "3.8" services: jenkins: image: jenkins/jenkins:2.401.3-lts-jdk17 container_name: jenkins restart: always ports: - 8081:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - ./java.security:…

Docker从入门到精通教程
type: item
date: 2023-07-04T20:07:00+08:00
description: 安装Docker安装帮助文档# 1. 卸载旧的版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 2. 需要的安装包 yum install -y yum-utils # 3. 设置镜像仓库 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 推荐使用阿里云镜像 # 更新软件包索引 yum makecache fast # 4. 安装docker docker-ce 社区 ee 企业版 sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 5. 启动docker systemctl start docker # 6. 查看docker是否安装成功 docker version# 7. hello-world docker run hello-world# 8. 查看一下下载的这个 hello-world镜像 [root@centos-liunx-7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 12 months ago 13.3kB了解: 卸载docker# 1. 卸载依赖 sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin # 2. 删除资源 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # /var/lib/docker docker的默认工作路径阿里云镜像加速打开阿里云,找到镜像容器服务找到镜像加速器配置使用sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://7ux125dt.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker回顾HelloWorld流程底层原理Docker是怎么工作的?Docker是一个Client - Server结构的系统,Docker的守护进程运行在主机上.通过Scoket从客户端访问!Docker为什么比VM快?Docker有着比虚拟机更少的抽象层docker利用的是宿主机的内核, vm需要Guest OS所以说,新建一个容器的时候,docker不需要向虚拟机一样重新加载一个操作系统内核,避免引导.虚拟机是加载Guest OS,分钟级别的,而docker是利用 宿主机的操作系统,省略了这个复杂的过程,秒级!Docker的常用命令帮助命令docker version # 显示docker的版本信息 docker info # docker的系统信息,包裹镜像和容器的数量 docker 命令 --help # 万能命令帮助文档的地址: https://docs.docker.com/engine/reference/commandline/docker/镜像命令docker images 查看所有本地的主机上的镜像[root@centos-liunx-7 /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 12 months ago 13.3kB # 解释 REPOSITORY 镜像的仓库源 TAG 镜像的标签 IMAGE ID 镜像的ID CREATE 镜像的创建时间 SIZE 镜像的大小 # 可选项 -a, --all 显示所有镜像 -q, --quiet 只显示镜像的IDdocker s…

Jenkins集成SonarQubeScanner
type: item
date: 2023-07-04T20:05:00+08:00
description: Jenkins集成SonarQubeScanner在构建项目时对代码进行检查Jenkins安装SonarQubeScanner插件生成密钥：打开SonarQube服务端复制令牌配置SonarQube服务端类型选择Secret text，输入复制的令牌构建项目时添加SonarQubeScanner步骤重新构建在构建成功之后执行了SonarScanner命令进行检查SonarQube服务端也新增了一个检查

SonarQube代码质量检查工具
type: item
date: 2023-07-04T20:04:30+08:00
description: SonarQubeSonarQube（前身为Sonar）是一个开源的代码质量管理平台。它提供了一个集中的平台，用于对源代码进行静态代码分析、测量代码质量、跟踪技术债务、管理代码复杂性以及监控代码规范和安全性等方面的指标。SonarQube支持多种编程语言，包括Java、C/C++、C#、Python、JavaScript等，并提供了丰富的插件生态系统，以扩展和定制功能。SonarQube还提供了直观的仪表板和报告，用于可视化和监控代码质量的变化趋势。Docker形式安装SonarQube编写docker-compose.ymlversion: '3.1' services: db: image: postgres container_name: db ports: - 5432:5432 networks: - sonarnet environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar sonarqube: image: sonarqube:9.9-community container_name: sonarqube depends_on: - db ports: - 9000:9000 networks: - sonarnet environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar networks: sonarnet: driver: bridge启动命令：docker-compose up -dWindows启动失败查看SonarQube容器日志bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]启动失败解决办法：https://blog.csdn.net/qq_38680405/article/details/126700722浏览器打开端口为9000Maven与SonarQube集成修改Maven配置文件：settings.xml在profiles标签中新增SonarQube配置信息并激活配置<profiles> <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.login>admin</sonar.login> <sonar.password>123456</sonar.password> <sonar.host.url>http://localhost:9000</sonar.host.url> </properties> </profile> </profiles> <activeProfiles> <activeProfile>sonar</activeProfile> </activeProfiles>在项目根目录运行：mvn sonar:sonar在SonarQube提供的可视化界面查看检查结果SonarScannerSonarScanner是SonarQube的命令行工具，用于将源代码发送到SonarQube服务器进行分析。它是一个独立的客户端工具，可以与SonarQube进行集成，以便在分析阶段捕获和处理代码。SonarScanner通过读取配置文件（如sonar-project.properties）或通过命令行参数传递配置信息，确定需要分析的项目和相关设置。它会扫描项目的源代码，执行静态代码分析，并将结果提交到SonarQube服务器进行处理和展示。SonarScanner支持多种构建工具和编程语言，包括Maven、Gradle、Ant、MSBuild等。它可以轻松地集成到持续集成（CI）和持续交付（CD）流程中，使开发团队能够在每次代码提交或构建时自动进行代码质量分析。下载地址：https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/下载自己对应的操作系统文件命令行方式检查代码打开SonarScanner配置文件：sonar-scanner.properties更改后的文件内容为#Configure here general information about the environment, s…

Jenkins教程
type: item
date: 2023-07-01T09:55:00+08:00
description: Jenkins教程Jenkins是一个开源的自动化服务器，用于实现软件开发过程中的持续集成和持续交付。它提供了一种灵活的方式来构建、测试和部署软件项目，以及监控项目的整个开发过程。Jenkins可以通过插件扩展其功能，支持各种编程语言和工具。它可以与版本控制系统（如Git、Subversion）、构建工具（如Apache Maven、Gradle）、测试框架（如JUnit、Selenium）以及部署工具（如Docker、Kubernetes）等集成。Jenkins的核心概念是作业（Job）。作业定义了构建过程的一系列步骤，包括代码的获取、编译、测试和部署等。通过配置作业，您可以指定何时触发构建、如何获取代码、构建步骤的顺序以及构建产物的处理方式。Jenkins还提供了一个可视化的用户界面，使用户可以方便地管理和监控作业、查看构建历史和日志，并设置触发条件和通知机制。它还支持分布式构建，可以在多台计算机上同时执行构建任务，以加快构建速度和提高效率。通过使用Jenkins，团队可以实现持续集成和持续交付的最佳实践，将软件的开发、测试和交付过程自动化，减少手动操作和人为错误，提高软件质量和交付速度。它广泛应用于各种软件开发项目和持续集成环境中。CI、CD安装JenkinsWindows安装Jenkins中文网：http://www.jenkins.org.cn/进群下载.msi文件进行安装Docker安装编写docker-compose.ymlversion: "3.1" services: jenkins: image: jenkins/jenkins:2.401.1-lts container_name: jenkins ports: - 8080:8080 volumes: - ./data/:/var/jenkins_home/ 2. 启动docker-compose docker-compose up -d ![image-20230621174121654](https://qny.chengxuyi.top//typora_img/image-20230621174121654.png) 这里看到启动失败了，查看容器日志发现是权限问题，无法进行write ![image-20230621174345882](https://qny.chengxuyi.top//typora_img/image-20230621174345882.png) 对data文件夹赋予777权限并启动再次容器 chmod -R 777 data docker start jenkins 3. 浏览器访问8080端口进入首页，密码可在容器日志中或者文件中查看 ![image-20230621175229386](https://qny.chengxuyi.top//typora_img/image-20230621175229386.png) 4. 安装插件，随便点击一个并等待插件安装完成 > 这里插件大概率会安装失败，不要紧，等下我们进去安装我们需要的插件，不用在这个地方纠结很久 ![image-20230621175504592](https://qny.chengxuyi.top//typora_img/image-20230621175504592.png) 5. 创建用户，这里随便输，记住账号密码即可 ![image-20230621175903669](https://qny.chengxuyi.top//typora_img/image-20230621175903669.png) 6. 实例配置使用默认值，点击保存并完成 ![image-20230621175954040](https://qny.chengxuyi.top//typora_img/image-20230621175954040.png) ## 安装插件 Jenkins的大部分功能都来自于它的插件，插件越多，功能越强大 进入插件页面 ![image-20230621180351804](https://qny.chengxuyi.top//typora_img/image-20230621180351804.png) 我们需要安装`Git Parameter`和`Publish Over SSH`2个插件 ![image-20230621180523507](https://qny.chengxuyi.top//typora_img/image-20230621180523507.png) 安装完并重启 ![image-20230621180544156](https://qny.chengxuyi.top//typora_img/image-2023062118…