DevOps流程

DevOps学习笔记

DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

DevOps的好处:

·代码的提交直接触发:消除等待时间,快速反馈

·每个变化对应一个交付管道:使问题定位和调试变得简单

·全开发流程高效自动化:稳定,快速,交付结果可预测

·持续进行自动化回归测试:提升交付质量

·设施共享并按需提供:资源利用最大化

Git代码仓库

Gitlab,GitHub,Gitee

DevOps流程:

准备一台服务器安装git代码仓库

1、首先,开发人员每天进行代码提交,提交到Git仓库

2、然后,Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。

3、Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。

4、最后,用户可以访问到容器

服务器准备:准备4台服务器,可以使用VMWare建4台虚拟机

1、服务器1只装gitlab,专门用于存放代码

2、服务器2主要是使用jenkins进行持续集成,而向gitlab拉取代码,需要装git,向docker推送镜像,需要装docker

3、服务器3主要是用来存镜像,需要安装docker和harbor

4、服务器4主要是部署应用,由于需要向docker仓库服务器拉取镜像,所以需要装docker

一:安装gitlab

安装依赖:yum -y install policycoreutils openssh-server openssh-clients postfix

设置开机自启并启动:systemctl enable postfix && systemctl start postfix

开放ssh以及http并重新加载防火墙:

firewall-cmd --add-service=ssh --permanent

firewall-cmd --add-service=http --permanent

firewall-cmd –reload

下载安装gitlab:

wget--no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm

rpm -ivh gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm

修改gitlab访问地址以及配置端口:

vim /etc/gitlab/gitlab.rb

external_url 'http://………

nginx['listen_port'] =  …

重载配置启动gitlab:

gitlab-ctl reconfigure  #此命令花时几分钟

gitlab-ctl restart

把端口添加到防火墙:

firewall-cmd --zone=public --add-port=…/tcp --permanent

firewall-cmd –reload

gitlab的基本使用

更改密码:

gitlab14安装好后,默认账户名是root,密码存放在配置文件:/etc/gitlab/initial_root_password下,这个文件将在首次执行reconfigure后24小时自动删除,此时我们拿到密码登录后修改密码


登录gitlab http地址修改密码:

在gitlab上创建用户组,创建用户并将用户添加到用户组

Gitlab用户在组里面有5种不同权限:
Guest:可以创建issue、发表评论,不能读写版本库

Reporter:可以克隆代码,不能提交

Developer:可以克隆代码、开发、提交、push

Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目

 Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员

并在用户组里创建项目

在本地服务器创建项目并上传到gitlab仓库:

  • .将项目提交到本地
  • .配置远程仓库
  • .将代码提交到远程仓库

二、准备一台服务器安装jenkins:

安装jenkins之前先安装docker容器,在docker上安装jenkins:

1.检查内核版本,返回的值大于3.10即可:

     uname -r

2.更新yum(时间视网速而定),确保yum是最新的:

    yum updata

4.安装 Docker。从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

移除旧的版本(如果是刚安装的纯净系统可跳过此步骤):

   yum remove docker

5.安装一些必要的系统工具:

   yum install -y yum-utils device-mapper-persistent-data lvm2

6.添加软件源信息:

  yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7.更新 yum 缓存:

  yum makecache fast

8.安装 Docker-ce:

  yum -y install docker-ce

9.启动 Docker 后台服务:

   systemctl start docker --启动

   systemctl stop docker --停止

   systemctl restart docker --重启

   systemctl status docker --状态

   systemctl enable docker --开机自启

并挂载容器目录到本地服务器目录

安装jenkins之前需要的先决条件:1)安装依赖jdk

yum install java-1.8.0-openjdk* -y

设置jdk环境变量:

# 进入容器内

docker exec -it centos bash

# 编辑环境变量

vi ~/.bashrc

# 文件末尾加入

export JAVA_HOME= 挂载目录

export PATH=$PATH:$JAVA_HOME:$JAVA_HOME/bin

# 刷新配置

source ~/.bashrc

# 查看 java 版本

java –version

2)安装maven

下载解压maven:

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

tar -xzvf apache-maven-3.6.3-bin.tar.gz

配置环境变量:

vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

export MAVEN_HOME=/opt/apache-maven-3.6.3

export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

配置settings.xml

<profile>

    <id>jdk18</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

修改jenkins的配置,修改端口号以及权限

重新加载配置文件:systemctl daemon-reload

启动jenkins并查看状态:systemctl start jenkins

systemctl status Jenkins

防火墙开放http服务以及相应端口号:firewall-cmd --add-service=http --permanent

firewall-cmd --zone=public --add-port=8888/tcp --permanent

firewall-cmd –reload

获取jenkins原始密码并登录jenkins:

cat /var/lib/jenkins/secrets/initialAdminPassword

选择jenkins需要安装的插件

最后在web端jenkins全局配置上关联jdk和maven

为了能使jenkins有打包容器镜像的权限,将jenkins的 .smock文件权限改为root权限

三、jenkins构建镜像上传到镜像仓库,再由生产服务器从镜像仓库拉去镜像进行部署

需要在pom.xml文件中添加dockerfile插件

<plugin>

                <groupId>com.spotify</groupId>

                <artifactId>dockerfile-maven-plugin</artifactId>

                <version>1.4.7</version>

                <configuration>

                    <repository>${project.artifactId}</repository>

                    <buildArgs>

                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>

                    </buildArgs>

                </configuration>

            </plugin>

并且在项目根目录下编写dockerfile

FROM openjdk:8-jdk-alpine

ARG JAR_FILE

COPY ${JAR_FILE} app.jar

EXPOSE 8081

ENTRYPOINT ["java","-jar","/app.jar"]

文本说明:

from :定义了起始镜像

arg:定义了项目打包后生成的FILE参数,此参数与上面pom.xml<JAR_FILE>对应

COPY:将项目打包好的JAR文件拷贝到当前工作目录下的app.jar

EXPOSE:暴露8080端口

ENTRYPOINT:相当于执行:java -jar app.jar启动项目

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值