1.1 基本概念
可以看到上图是一个无穷大的一个符号,Dev对应开发,Ops对应运维。 DevOps的方式可以让公司能够更快地应对更新和市场发展变化,开发可以快速交付,部署也更加稳定。 核心就在于简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。
1.2 流程 DevOps的开发过程及常用工具:
整体的软件开发流程包括:
-
PLAN:开发团队根据客户的目标制定开发计划
-
CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。
-
BUILD:编码完成后,需要将代码构建并且运行。
-
TEST:成功构建项目后,需要测试代码是否存在BUG或错误。
-
DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。
-
OPERATE:运维团队将代码部署到生产环境中。
-
MONITOR:项目部署上线后,需要持续的监控产品。
-
INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成、持续部署。
总的来说就是: Code阶段(编码):Git+GitLab Build阶段(构建):Maven或Gradle Operate(运行):Docker Integrate(集成):Jenkins CI/CD(持续集成):操作Jenkins,编写对应脚本文件 Code review(代码质量检测):Jenkins集成Sonar Qube 自定义镜像:Harbor Jenkins流水线操作 WebHook:通知操作,如:钉钉机器人通知 K8S编排:更加方便我们管理容器
一,安装gitlab
1.1:每台安装docker和compose
# 安装需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 Docker CE 的仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #刷新yum源 yum repolist # 安装 Docker CE yum makecache fast yum install -y docker-ce # 启动 Docker 服务 systemctl start docker # 设置 Docker 开机自启 systemctl enable docker #安装docker-compose yum install -y wget wget https://github.com/docker/compose/releases/tag/v2.26.1/docker-compose-linux-x86_64 #移动到指定目录 mv docker-compose-linux-x86_64 /usr/local/docker-compose #添加执行权限 chmod +x /usr/local/docker-compose #拉取镜像 docker pull gitlab/gitlab-ce
1.1.1编写yml文件
#创建存放yml文件目录 cd /usr/local/ && mkdir -p docker/docker-compose cd /usr/local/docker/docker-compose/ #编写yml文件 cat <<EOF>> compose-gitlab.yml # Docker Compose配置文件版本 version: "3.0" # 定义服务 services: # 定义名为gitlab的服务 gitlab: # 使用的Docker镜像 image: gitlab/gitlab-ce:latest # 容器名称 container_name: gitlab # 容器始终自动重启 restart: always # 设置环境变量 environment: GITLAB_OMNIBUS_CONFIG: | # 配置GitLab的外部URL external_url 'http://192.168.239.155:8929' #本机IP地址 # 设置SSH端口为2224 gitlab_rails['gitlab_shell_ssh_port'] = 2224 # 映射端口 ports: - "8929:8929" - "2224:2224" # 挂载卷 volumes: - './config:/etc/gitlab' # 挂载配置文件 - './logs:/var/log/gitlab' # 挂载日志文件 - './data:/var/opt/gitlab' # 挂载数据文件
进入容器查看密码
docker exec -it gitlab /bin/bash #查看密码 cat /etc/gitlab/initial_root_password
二:准备新机器安装JDK,Maven
上传压缩包
#解压压缩包 tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local cd /usr/local mv apache-maven-3.6.3/ maven mv jdk1.8.0_231/ jdk
2.1:添加镜像仓库
添加maven镜像仓库
vim /maven/conf/settings.xml <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
添加JDK编译插件地址
<profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles>
三:安装jenkins
使用docker安装
#拉起jenkins镜像 docker pull jenkins/jenkins:2.440.3-lts编写yml文件
创建存放目录 cd /usr/local mkdir -p docker/docker-jenkins && cd docker/docker-jenkins cat <<EOF>> docker-compose.yml version: "3.1" services: jenkins: image: jenkins/jenkins:2.440.3-lts container_name: jenkins ports: - "8080:8080" - "50000:50000" volumes: - "./data:/var/jenkins_home" EOF #给data添加权限 chmod -R 777 data #执行yam文件 docker-compose up -d
登录Jenkins: 192.168.159.128:8080
查看密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword