0%

DevOps搭建,实现快速迭代,减少项目周期中重复的过程

DevOps

  • 随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

  • 敏捷开发,自动化测试,自动化部署才是软件开发的正确姿势。

  • What is DevOps

安装 Docker

  • Docker 提供了服务器版本和桌面版本的 Docker 容器
  • 这里我们使用桌面版本的 Docker, 服务器上安装 Docker 请使用服务器版 Docker
  1. 桌面版下载地址: Docker Desktop
  2. 下载完直接双击安装

Docker 中安装 GitLab

1
2
3
4
5
$ # 检索Docker Hub中的GitLab
$ docker search gitlab

# 我们选择gitlab/gitlab-ce版本安装,ce是社区版本,是Community Edition的缩写
$ docker pull gitlab/gitlab-ce

启动 GitLab 容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 请在宿主机上创建对应的config、logs、data文件夹
# 2. 配置说明:
# --hostname 设置主机名或域名
# --publish 本地端口的映射
# --name gitlab-ce 的镜像运行成为一个容器,这里是对容器的命名
# --volume 将gitlab的配置文件目录映射到宿主机的目录中
$ docker run --detach \
--hostname gitlab.liu.com \
--publish 50000:443 --publish 50002:80 --publish 50003:22 \
--name gitlab \
--volume /Users/Shared/gitlab/config:/etc/gitlab \
--volume /Users/Shared/gitlab/logs:/var/log/gitlab \
--volume /Users/Shared/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
  • 可能会出现权限错误 2770

解决办法

  • 在上面创建的 config 目录下找到 gitlab.rb,搜索 git_data_dirs,并修改成下面一样
1
2
3
4
5
6
7
###!   path that doesn't contain symlinks.**
git_data_dirs({
"default" => {
# "path" => "/mnt/nfs-01/git-data"
"path" => "/data/gitlab"
}
})

可以使用下面的命令列出所有的容器

1
$ docker container ls

如下图所示
docker container ls

配置域名和端口

配置域名

  1. 修改/Users/Shared/gitlab/config/gitlab.rb
1
2
# 在gitlab.rb文件中找到external_url配置项,并改成以下配置
external_url 'http://gitlab.liu.com'
  1. 修改 host 映射
1
2
3
# sudo vim /etc/hosts
# 在hosts(本人使用的MacOS)末尾添加下面内容
127.0.0.1 gitlab.liu.com

配置端口

  1. 执行以下命令进入 gitlab 容器
1
2
# 如果不知道gitlab容器id,那么执行(查看正在运行的gitlab容器id): docker container ls
$ docker exec -it 容器id /bin/bash
  1. 编辑 gitlab.yml 文件
1
2
# 进入到容器后执行
$ vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
  1. 修改端口为: 50002
1
2
3
4
5
6
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: gitlab.liu.com
port: 50002
https: false
  • ==配置完域名和端口后在容器内部执行下面命令重启 GitLab 服务==
1
$ gitlab-ctl restart

到此 GitLab 安装完成.

登录 GitLab

  1. 第一次访问会让你重置 root 账号的密码,按照提示的规则填写就好了
  2. 重置完成密码后在 Sign In 输入 root 账号和刚才重置的密码进行登录

GitLab登录

GitLab 主页

GitLab主页

创建组织

创建组织

完成创建组织

创建账号

  • 请按照下图标注的序号进行点击进入

创建账号1

或按照下图步骤

创建账号2

填写用户信息

  • 请按照下面步骤进行创建用户
  1. 填写 Name,Username,Email
  2. 点击 Create user 按钮
  3. 其他选项可按自己意愿填写

填写过程如下图所示

填写账号信息

设置用户密码

  • 请依照下图的序号进行点击进入设置密码界面

去往设置密码

  • 填写用户密码

设置密码

  • 填写完成,拉到底部点击 Save changes 按钮。执行完这一步就完成了用户创建

创建项目

  1. 点击 GitLab Logo 转到主页

GitLab主页

  1. 点击 Create a project

  2. 按照下面图片标的序号进行操作,填写项目信息

项目信息填写

  1. 项目创建完成,可以按照下图的提示进行下一步操作

项目创建完成

克隆项目

1
$ git clone http://gitlab.liu.com:50002/ai/hello.git
  • 执行git clone可能会发生fatal: unable to access 'http://gitlab.liu.com:50002/ai/hello.git/': Failed to connect to gitlab.liu.com port 80: Operation timed out错误

解决办法

  • 去掉代理设置
  1. 查看代理情况
1
2
3
$ env|grep -i proxy
PATH=/usr/local/bin:/usr/bin:/bin
GOPROXY=https://goproxy.cn,direct
  1. 取消代理设置
1
$ unset GOPROXY

CI/CD 搭建

  • 暂时没内容

CI/CD 配置

  • 暂时没内容