啊我摔倒了..有没有人扶我起来学习....
👱 个人主页: $\color{Darkorange}{《CGod的个人主页》}$交个朋友叭~
💒 个人社区: $\color{Darkorange}{《编程成神技术交流社区》}$加入我们,一起高效学习,收割好Offer叭~
🌱 刷题链接: $\color{Darkorange}{《LeetCode》}$快速成长的渠道哦~
前言
- 云原生是基于分布部署和统一运管的分布式云,以
容器
、微服务
、DevOps
等技术为基础建立的一套云技术产品体系 - 本文将详细讲解云原生全套配置过程
一、Code阶段工具
==在code
阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN
或者Git
,这里我们采用Git
作为版本控制工具,GitLab
作为远程仓库==
1.1 Git安装
1.2 GitLab安装
单独准备服务器,采用Docker安装
查看
GitLab
镜像docker search gitlab
拉取
GitLab
镜像docker pull gitlab/gitlab-ce
准备
docker-compose.yml
文件version: '3.1' services: gitlab: image: 'gitlab/gitlab-ce:latest' container_name: gitlab restart: always environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.11.11:8929' 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-compose up -d
访问
GitLab
首页首页 查看
root
用户初始密码docker exec -it gitlab cat /etc/gitlab/initial_root_password
初始密码 登录
root
用户登录成功后跳转页面 第一次登录后需要修改密码
修改密码
==搞定后,即可像Gitee
、GitHub
一样使用==
二、Build阶段工具
- 构建
Java
项目的工具一般有两种选择,一个是Maven
,一个是Gradle
- 这里我们选择
Maven
作为项目的编译工具 - 具体安装
Maven
流程不做阐述,但是需要确保配置好Maven
仓库私服以及JDK
编译版本
三、Operate阶段工具
部署过程,会采用Docker
进行部署,暂时只安装Docker
即可,后续还需安装Kubenetes
3.1 Docker安装
- 准备测试
环境&生产环境
下载
Docker
依赖组件yum -y install yum-utils device-mapper-persistent-data lvm2
设置下载
Docker
的镜像源为阿里云yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装
Docker
服务yum -y install docker-ce
安装成功后,启动
Docker
并设置开机自启# 启动Docker服务 systemctl start docker # 设置开机自动启动 systemctl enable docker
测试安装成功
docker version
效果
3.2 Docker-Compose安装
- 下载
Docker/Compose
:https://github.com/docker/compose - 将下载好的
docker-compose-Linux-x86_64
文件移动到Linux
操作系统:…… 设置
docker-compose-Linux-x86_64
文件权限,并移动到$PATH
目录中# 设置文件权限 chmod a+x docker-compose-Linux-x86_64 # 移动到/usr/bin目录下,并重命名为docker-compose mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
测试安装成功
docker-compose version
效果
四、Integrate工具
- 持续集成、持续部署的工具很多,其中
Jenkins
是一个开源的持续集成平台 Jenkins
涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务Jenkins
需要大量的插件保证工作,安装成本较高,下面会基于Docker
搭建Jenkins
4.1 Jenkins介绍
Jenkins
是一个开源软件项目,是基于Java
开发的一种持续集成工具Jenkins
应用广泛,大多数互联网公司都采用Jenkins
配合GitLab
、Docker
、K8s
作为实现DevOps
的核心工具Jenkins
最强大的就在于插件,Jenkins
官方提供了大量的插件库,来自动化CI/CD
过程中的各种琐碎功能
Jenkins
最主要的工作就是将GitLab
上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境
一般是GitLab
上的代码经过大量的测试后,确定发行版本,再发布到生产环境
CI/CD
可以理解为:
CI
过程即是通过Jenkins
将代码拉取、构建、制作镜像交给测试人员测试- 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试
CD
过程即是通过Jenkins
将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署- 持续交付:让经过持续集成的代码可以进行手动部署
- 持续部署:让可以持续交付的代码随时随地的自动化部署
CI、CD |
---|
4.2 Jenkins安装
拉取
Jenkins
镜像docker pull jenkins/jenkins
编写
docker-compose.yml
version: "3.1" services: jenkins: image: jenkins/jenkins container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/
首次启动会因为数据卷data目录没有权限导致启动失败,设置
data
目录写权限错误日志 chmod -R a+w data/
重新启动
Jenkins
容器后,由于Jenkins
需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站# 修改数据卷中的hudson.model.UpdateCenter.xml文件 <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url> </site> </sites> # 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
再次重启
Jenkins
容器,访问Jenkins
(需要稍微等会)Jenkins首页 查看密码登录
Jenkins
,并登录下载插件docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
登录并下载插件 选择需要安装的插件
选择需要安装的插件 下载完毕设置信息进入首页(可能会出现下载失败的插件)
4.3 Jenkins入门配置
由于Jenkins
需要从Git
拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker
仓库,所以Jenkins
需要配置大量内容
4.3.1 构建任务
准备好GitLab
仓库中的项目,并且通过Jenkins
配置项目的实现当前项目的DevOps
基本流程
构建
Maven
工程发布到GitLab
(Gitee
、Github
均可)GitLab查看项目 Jenkins
点击左侧导航新建任务新建任务 选择自由风格构建任务
构建任务
4.3.2 配置源码拉取地址
Jenkins
需要将Git
上存放的源码存储到Jenkins
服务所在磁盘的本地
配置任务源码拉取的地址
源码管理 Jenkins
立即构建点击任务test中的立即构建 查看构建工程的日志,点击上述$\color{Darkorange}{③}$的任务条即可
查看任务拉取Git源码日志 可以看到源码已经拉取带
Jenkins
本地,可以根据第三行日志信息,查看Jenkins
本地拉取到的源码查看
Jenkins
容器中/var/jenkins_home/workspace/test
的源码源码存放位置
4.3.3 配置Maven构建代码
代码拉取到Jenkins
本地后,需要在Jenkins
中对代码进行构建,这里需要Maven
的环境,而Maven
需要Java
的环境,接下来需要在Jenkins
中安装JDK
和Maven
,并且配置到Jenkins
服务。
准备
JDK
、Maven
压缩包通过数据卷映射到Jenkins
容器内部数据卷存放位置 解压压缩包,并配置
Maven
的settings.xml
<!-- 阿里云镜像地址 --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <!-- JDK1.8编译插件 --> <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>
Jenkins
配置JDK&Maven
并保存配置
Jenkins
任务构建代码配置Maven构建代码 立即构建测试,查看
target
下的jar
包构建源码
4.3.4 配置Publish发布&远程操作
jar
包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH
配置
Publish Over SSH
连接测试、生产环境Publish Over SSH配置 配置任务的构建后操作,发布
jar
包到目标服务配置构建后操作 立即构建任务,并去目标服务查看
立即构建
好啦,以上就讲解完毕,收获多多哦~感谢坚持看下来的铁汁,只能这么说了,你必成大器!