DevOps

Docker:

## 安装Docker
yum remove docker docker-client docker-client-latest docker-common docker-latest \
                  docker-latest-logrotate docker-logrotate docker-engine && \
yum install -y yum-utils && \
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \
yum install -y docker-ce docker-ce-cli containerd.io

Docker-Compose:

官方文档

  1. 安装
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装不同版本的 Compose,请将 1.29.2 替换为您要使用的 Compose 版本

  1. 授权
## 对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose
## 查看是否安装完成
docker-compose --version
  1. 配置软链(可选)
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Nexus3:

Dockerfile
FROM sonatype/nexus3:3.33.0
VOLUME /home/nexus-data:/nexus-data
EXPOSE 8081

mkdir /home/nexus-data  docker run
mkdir /home/nexus-data && \
chmod -R 777 /home/nexus-data && \
docker run -d -p 8081:8081 -v /home/nexus-data:/nexus-data  --name nexus sonatype/nexus3:3.33.0

Jenkins:

Dockerfile
FROM jenkins/jenkins:lts-jdk11
VOLUME /home/jenkins_home:/var/jenkins_home
EXPOSE 8080 50000

mkdir /home/jenkins_home  docker run
mkdir /home/jenkins_home && chmod -R 777 /home/jenkins_home && \
docker run -p 8080:8080 -p 50000:50000 -v /home/jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins:lts-jdk11

SonarQube:

#Dockerfile
FROM sonarqube:lts-enterprise
VOLUME /home/sonarqube/data:/opt/sonarqube/data
VOLUME /home/sonarqube/logs:/opt/sonarqube/logs
VOLUME /home/sonarqube/extensions:/opt/sonarqube/extensions

## Docker Host Requirements(Docker的宿主机需要的一些配置)
## 宿主机的内存至少2G或以上,不然会出现连接不上ES的错误
## 查看
sysctl vm.max_map_count && sysctl fs.file-max && ulimit -n && ulimit -u
## 修改
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192

mkdir -p /home/sonarqube/{data,logs,extensions} && chmod -R 777 /home/sonarqube
 mkdir -p /home/sonarqube/{data,logs,extensions} && chmod -R 777 /home/sonarqube && \
 docker run -it -p 9000:9000 -v /home/sonarqube/data:/opt/sonarqube/data -v /home/sonarqube/logs:/opt/sonarqube/logs -v /home/sonarqube/extensions:/opt/sonarqube/extensions --name sonarQube sonarqube:lts-enterprise

建议为以下目录创建卷:

  • /opt/sonarqube/data: 数据文件,例如嵌入式 H2 数据库和 Elasticsearch 索引
  • /opt/sonarqube/logs: 包含有关访问、Web 进程、CE 进程、Elasticsearch 日志的 SonarQube 日志
  • /opt/sonarqube/extensions: 第 3 方插件

Docker-Compose:

使用docker-compose部署jenkins,nexus3,sonarqube,postgreSql.

  1. docker-compose.yml
version: "3"
services:
   sonarqube:
      image: sonarqube:8.9.2-community
      depends_on:
         - db
      environment:
         SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
         SONAR_JDBC_USERNAME: sonar
         SONAR_JDBC_PASSWORD: sonar
      volumes:
         - sonarqube_data:/opt/sonarqube/data
         - sonarqube_extensions:/opt/sonarqube/extensions
         - sonarqube_logs:/opt/sonarqube/logs
      ports:
         - "9000:9000"
   db:
      image: postgres:12
      environment:
         POSTGRES_USER: sonar
         POSTGRES_PASSWORD: sonar
      volumes:
         - postgresql:/var/lib/postgresql
         - postgresql_data:/var/lib/postgresql/data
      ports:
         - "5432:5432"
   jenkins:
      image: jenkins/jenkins:lts-jdk11
      volumes:
         - jenkins_home:/var/jenkins_home
      ports:
         - "8088:8080"
         - "50000:50000"
      extra_hosts:
         - "gitlab-dev.jinkosolar.com:172.18.2.170"
   nexus:
      image: sonatype/nexus3:3.32.0
      volumes:
         - nexus_data:/nexus-data
      ports:
         - "8081:8081"
         # 这个端口给docker私有仓库使用,在创建仓库时指定,并且在Dockers中需要添加配置 "insecure-registries":["172.18.2.170:5000"]
      - "5000:5000"
volumes:
   sonarqube_data:
   sonarqube_extensions:
   sonarqube_logs:
   postgresql:
   postgresql_data:
   jenkins_home:
   nexus_data:
  1. 启动这些服务
## 启动
docker-compose -f devops/docker-compose.yml  up -d

配置Jenkins:

  1. 登录jenkins,

默认的密码位置在 /var/lib/docker/volumes/devops_jenkins_home/_data/secrets/initialAdminPassword 文件中
/var/lib/docker/volumes/devops_jenkins_home/_data是jenkins容器卷在宿主机的挂载位置

  1. 安装默认插件和其他常用插件

搜索关键字:roles,git,gitlab,sonar,pipeline,chinese等

DevOps

DevOps
  1. 配置全局凭证

DevOps
  1. 新建项目

DevOps

DevOps
2. 全局工具配置
DevOps
DevOps
DevOps
3. 其他

Gitlab+Jenkins

DevOps
DevOps

Sonarqube+Jenkins

DevOps
2. 配置sonarqube(需要插件 SonarQube Scanner支持)

以下配置都可以参考这个官方文档
1. 使用 Maven 或 Gradle 分析 Java 项目

DevOps
2. 使用Pipeline的方式集成sonarqube
DevOps
+ 配置SonarQube Scanner(这种方式很麻烦,推荐使用Maven) DevOps
+ Jenkinsfile
node {
  stage("check out"){
//   credentialsId: jenkins配置的凭证Id  url: 仓库地址
    git  credentialsId: 'xuyuansheng', url: 'http://gitlab-dev.jinkosolar.com/xuyuansheng/jenkins-test.git'
  }

  stage('SCM') {
    checkout scm
  }

// 使用Maven的方式 (推荐)
   stage('SonarQube Analysis') {
     def mvn = tool 'apache-maven-3.5.4';
     withSonarQubeEnv(credentialsId: 'sonarqube', installationName: 'sonarqube') {
 //     sonar.projectKey 如果不指定这个 默认为: groupId:artifactId
       sh "${mvn}/bin/mvn package sonar:sonar -Dsonar.projectKey=jinko-test1"
     }
   }

//   使用Jenkins配置SonarQube Scanner全局工具方式,project.settings
//   配置文件默认为sonar-project.properties
//   这种方式需要提供.class文件目录,太麻烦了 不推荐使用
//   官方文档:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/  https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
//    stage('SonarQube analysis') {
//        def scannerHome = tool 'SonarQube Scanner';
//        withSonarQubeEnv(credentialsId: 'sonarqube', installationName: 'sonarqube') {
//        // credentialsId:jenkins配置的凭证Id ,
//        //installationName:全局配置的SonarQube server 的名称,如果有多个,需要选择其中一个
//          sh "${scannerHome}/bin/sonar-scanner -Dproject.settings=./sonar-setting.properties"
//        }
//    }
}
  1. end

配置nexus3:

  1. 登录nexus

默认的密码位置在 /var/lib/docker/volumes/devops_nexus_data/_data/nexus-data/admin.password 文件中
/var/lib/docker/volumes/devops_nexus_data/_data 是nexus容器卷在宿主机的挂载位置

  1. 创建自己的仓库文件存储位置

DevOps
  1. 创建私有仓库,用于上传自己的Jar包

DevOps
  1. 把自己新建的仓库关联到maven-pulic,之后maven的mirror都配置这个地址即可

DevOps

Mysql启动和配置:

  1. docker-compose.yml
version: "3"
services:
  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - mysql_logs:/var/log/mysql
      - mysql_data:/var/lib/mysql
      - mysql_config:/etc/mysql
      - D:/Linux/docker-desktop-data/mysql:/home
volumes:
  mysql_config:
  mysql_logs:
  mysql_data:
  1. 配置,进入容器,复制/etc/mysql/my.cnf文件到/home中,方便在宿主机中修改,因为容器中默认没有vi命令
my.cnf文件中需要加上 [mysqld]
  • 修改表名大小写敏感配置,lower_case_table_names=1
  • 把修改后的配置文件复制回到/etc/mysql/目录,然后重启Mysql容器

SqlServer:

官方文档

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=" \
   -p 1433:1433 --name sql1 -h sql1 \
   -d mcr.microsoft.com/mssql/server:2019-latest

Original: https://www.cnblogs.com/xysgo/p/16352341.html
Author: 菜阿
Title: DevOps

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590919/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Css3入门详解

    一、Css基本语法 1.Html和Css没分开 点击查看代码 <!DOCTYPE html> <html lang="en"> <…

    数据库 2023年6月16日
    084
  • Linux 的基本操作 -权限

    Linux 的基本操作 -权限 权限:文件的属性: d:表示目录-:表示文件 l:连接文件 b:设备文件,提供存储的接口设备 c:设备文件,提供串行的接口设备–键盘,鼠…

    数据库 2023年6月16日
    093
  • AutoMySQLBackup 3.0的一个小Bug

    $ more daily_kkkk_2021-09-22_16h47m_Wednesday.sql — MySQL dump 10.13 Distrib 5.7.34, for …

    数据库 2023年5月24日
    065
  • MySQL 的日志:binlog

    前言:binlog 用于记录数据库执行 写入性操作的日志信息,以二进制的形式保留在磁盘中。它是由 Server 层进行记录的,使用任何存储引擎都会产生 binlog。 实验准备 我…

    数据库 2023年5月24日
    087
  • 通过Python收集MySQL MHA 部署及运行状态信息的功能实现

    一. 背景介绍 当集团的MySQL数据库实例数达到2000+、MHA集群规模数百个时,对MHA的及时、高效管理是DBA必须面对的一个挑战。MHA 集群 节点信息 和 运行状态 是管…

    数据库 2023年6月16日
    0116
  • MySQL事务提交流程详解

    一. 事务的提交流程。 获取 MDL_key::COMMIT 锁: FTWRL会阻塞 commit 操作。 XID_Event生成并写入binlog cache中。会首先将事务中的…

    数据库 2023年5月24日
    094
  • 一,Flink快速上手

    1.依赖配置 1.1 pom文件 8 8 1.13.0 1.8 2.12 1.7.30 org.apache.flink flink-java ${flink.version} o…

    数据库 2023年6月6日
    094
  • LeetCode 35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 …

    数据库 2023年6月11日
    068
  • MYSQL–>索引

    概述 索引是帮助MYSQL 高效获取数据的 有序数据结构 数据库维护着满足特定查找算法的数据结构,这种数据结构以某种方式指向数据。 这样就可以在数据结构上实现高级查找方法,这种数据…

    数据库 2023年6月14日
    087
  • Redis——数据操作(3)

    2022-09-22 (4)set操作 ①添加操作(sadd): 例: ②查看操作(smembers):例: ③移除操作(srem):例: (5)zset(有序集合而且里面的元素是…

    数据库 2023年6月14日
    0131
  • 新的开始

    今天,我正式开始我的博客分享,java人加油 posted @2022-03-05 21:25 小小羊儿 阅读(10 ) 评论() 编辑 Original: https://www…

    数据库 2023年6月11日
    095
  • Redis小秘密

    Redis小秘密 临渊羡鱼,不如退而织网。 一、Redis基本数据类型 想必很多人都能脱口而出String、List、Hash、Sorted Set和Set五种基本数据类型。 以及…

    数据库 2023年6月14日
    070
  • 索引

    一种数据结构,帮助我们快速的定位元素 主键索引 唯一索引 普通索引 联合索引(最左匹配原则) 对某字段进行范围会使索引失效 全文索引 如何让性能优秀 减少I/O次数 避免回旋 根据…

    数据库 2023年6月11日
    068
  • idea 导入项目MAVEN报错,jdk与jms问题,以及@override报错

    一: Plugins报错: compiler Failed to execute goal org.apache.maven.plugins:maven-compiler-plug…

    数据库 2023年6月11日
    0104
  • mysql5.7初始化密码报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before

    mysql初始化密码常见报错问题1,mysql5.6是密码为空直接进入数据库的,但是mysql5.7就需要初始密码 cat /var/log/mysqld.log | grep p…

    数据库 2023年6月16日
    063
  • python基础(待补充)

    第一篇:计算机的基础知识 编程语言的介绍 计算机介绍和五大组成 平台与软件跨平台介绍 CS、BS架构和网络通信协议 操作系统的介绍 cpu详解 存储器详解 操作系统启动流程和BIO…

    数据库 2023年6月14日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球