关于自动化部署:一套基础自动化部署搭建过程

7次阅读

共计 3298 个字符,预计需要花费 9 分钟才能阅读完成。

我的公众号:MarkerHub,网站:https://markerhub.com

更多精选文章请点击:Java 笔记大全.md

  • 作者:LoyaltyLu
  • segmentfault.com/a/1190000019729005

问题背景

公司初创技术团队,没有任何基础设施的状况下,须要搭建一系列 code 治理以及自动化部署等工具…. 所以引发了上面一系列的部署过程,历时两天,两头也是碰到各种问题,但最终把根本工具全副搭建胜利,耶~,上面带大家一起看下此次搭建过程。

资源

服务器一台,CentOS 的,公司就给了一台配置较低的服务器当长期服务器,没方法了,就这么搞吧。

思考:如果我用传统的 yum 来装置,必定会被我装乌七八糟,还不不便本人治理保护,左右为难的状况下我抉择了 Dokcer,可能有些小伙伴问 Docker 是啥怎么用,不要慌这里有传送门:

https://segmentfault.com/a/11…

测试环境搭建

为了疾速搭建一套 PHP 测试环境我决定用 laradock 了,尽管文件很多,然而外面封装的货色也是比拟全的,前期开发不晓得会用到什么技术,就决定先用这个,随时能够启动用失去的服务。

laradock 官网文档给的介绍也很全面,我这里采纳的形式是部署多套我的项目形式目录构造如下:

+ laradock
+ project-1
+ project-2

开始应用:

1.git clone https://github.com/laradock/laradock

2.cp env-example .env

env 外面的配置能够批改的,能够依据本人状况进行调整

3.docker-compose up -d nginx php-fpm mysql redis

前面能够加上你要启动的程序,像 rabbitmq、mongo 等等,须要的时候追加在尾部就能够启动,首次启动工夫有点长

4.docker-compose exec --user=laradock workspace bash

像 laravel 等我的项目必定少不了 composer,执行这个命令进入工作区,就能够执行 composer 了

5.docker-compose exec nginx nginx -s reload

必定有人会问我更改了 nginx 配置是不是每次都要进入 nginx 容器去重启,或者把整个容器都重启了呀,不必的,执行这个命令就能够重启 nginx 了。nginx 站点配置文件在哪里呢:./laradock/nginx/sites/

先运行下试试吧。

GitLab

当初运行环境曾经搭建好了,我代码应该怎么寄存呢,其实有很多的抉择,要依据本人的理论状况登程,如:GitHub、码云、GitLab 等等,我抉择的是 GitLab,刚开始没有发现 laradock 其实提供了 GitLab 服务。。只能本人折腾了, 其实很简略。

docker \
run -d  \
-p 443:443 \
-p 8080:80 \
-p 222:22 \
--name gitlab \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
#参数解释:#-d:让容器后盾运行
#-p:裸露端口,把容器的 443 端口指向到宿主机 443 端口,宿主机 8080-> 容器 80,宿主机 222-> 容器 22
#宿主机端口能够依据本人的状况本人定制
#-name 给你的容器起个名,只有不和现有的反复就能够
#--restart 当容器退出时 docker 是否重启
#-v 这就是挂载磁盘了,把宿主机的目录挂载到容器中,这么做哪怕是容器坏了我的内容也不会失落。#宿主机 /home/gitlab/config 目录挂载到容器中 /etc/gitlab 目录,宿主机目录依据本人状况定
#gitlab/gitlab-ce 这个就是要启动的镜像,如果镜像不存在,docker 会主动下载最新版

容器启动胜利之后会有一段时间来启动 GitLab,看到启动胜利立马拜访是拜访不到的,略微等一下就能够了,配置文件都在你指定的宿主机目录下能够批改,须要批改的内容如下:

  gitlab_rails['gitlab_ssh_host'] = '宿主机 IP'# 宿主机的 IP 地址
  gitlab_rails['gitlab_shell_ssh_port'] = 222# 裸露给宿主机的 ssh 端口
  external_url '域名'# 调配给 gitlab 的域名,能够用 nginx 做反向代理到 8080 端口

Jenkins

实现自动化部署有很多种形式如:webhook、Jenkins、Travis CI 等等,我的抉择是 Jenkins,因为之前部署用过所以这里仍旧用了这个,laradock 仍旧提供了 Jenkins 服务,又是因为没发现自己搭建了一个。。。看来下次要先多看看在入手了。

docker run -d \
     --name myjenkins \
     -p 8181:8080 \
     -p 50000:50000 \
     -v /home/jenkins/:/var/jenkins_home \
     jenkins/jenkins
     #参数解释
     #-d:让容器后盾运行
     #-p:裸露端口,宿主机 8181-> 容器 8080,宿主机 50000-> 容器 50000
     #-v 这就是挂载磁盘了,把宿主机的目录挂载到容器中,这么做哪怕是容器坏了我的内容也不会失落。#宿主机 /home/jenkins/ 目录挂载到容器中 /var/jenkins_home 目录,宿主机目录依据本人状况定

是不是也很简略~。~,然而 Jenkins 装置胜利后会有一个初始化明码,怎么查看初始化明码呢,有两种形式:

# 第一种形式
docker logs < 你的容器名字 > #这样就能够查看容器输入的内容
#第二种形式
cat /home/jenkins/secrets/initialAdminPassword# 这里好的 /home/jenkins 须要替换成你挂载的目录

jenkins 配置

初始化

输出你下面获取到的初始化明码,下一步我抉择的是举荐装置,前面本人须要的本人能够再去插件库装置。

插件装置

初始化胜利之后返回零碎设置 -> 插件治理装置几个必要插件:

Publish Over SSH

GitLab Plugin #因为是应用的 Gitlab 所以要装置这个

NodeJS Plugin #咱们前端应用的 Vue 所以要用到 node

开始征程

一、根底配置

装置完插件之后须要配置一些根底内容如 jdk、node、ssh 等

1.ssh 装置

进入:Manage Jenkins-> Configure System

点击高级:

点击 Test Configuration 测试是否连贯胜利

2.jdk、git

进入:Manage Jenkins-> Global Tool Configuration

我这里 jdk、git 采纳主动装置,jdk 装置时候须要一个账号,去注册下就能够

3.nodejs 装置

二、创立工程

  • 新建一个工程
  • 抉择自在格调

三、配置工程

设置最多保留几个版本构建

应用 git 源码工具,输出 git 地址、增加 git 用户

if [-f "test.tar.gz"];then
rm testv.tar.gz
fi
tar -zcvf test.tar.gz ./*

这里为什么要把我的项目打包呢,因为上面要配置的 ssh 不反对文件夹传输,所以须要先将内容进行打包而后去服务器进行解包

全副保留好就能够去构建了。耶~

谢谢参观

长时间没写文章了,这个篇幅较长,谢谢急躁浏览,心愿对您有所帮忙,也心愿大家提供下不同的意见,找到更无效的形式来实现,谢谢!

举荐浏览

Java 笔记大全.md

太赞了,这个 Java 网站,什么我的项目都有!https://markerhub.com

这个 B 站的 UP 主,讲的 java 真不错!

太赞了!最新版 Java 编程思维能够在线看了!

正文完
 0