傻瓜式DEVOPS实践手册——Gitlab部署

GitLab是一款开放源代码的DevOps平台,用于实现从项目规划、源代码管理、CI/CD到监控和安全性的全方位集成。GitLab主要用于版本控制、协同开发、持续集成/持续部署 (CI/CD)、自动化测试、项目管理、以及安全性管理。在诸多功能中,版本控制是GitLab最为核心的功能之一,它允许多名开发人员在统一项目中进行并行开发,通过Git进行代码的合并、分支、提交和版本回退,有效提高软件开发效率和团队协作能力

GitLab Runner 是一个开源项目,用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 结合使用,GitLab CI 是 GitLab 随附的用于协调作业的开源持续集成服务。使用场景跟Jenkins类似。

准备工作

  • 外挂目录创建
mkdir -p /opt/package/test/config /opt/package/test/logs /opt/package/test/data
    • /opt/package/gitlab/config 挂载主机配置目录
    • /opt/package/gitlab/logs 挂载主机日志目录
    • /opt/package/gitlab/data 挂载主机数据目录
  • docker-compose.yml创建
services:
  gitlab:
    image: gitlab/gitlab-ce:latest #默认使用最新版,也可以指定版本号
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.56.10:8090'
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        postgresql['shared_buffers'] = "256MB"
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
      GITLAB_ROOT_PASSWORD: 'gitlab2024#' #登录账号密码,省的部署后到文件再去查找
    ports:
      - "8090:80"      # 将主机端口80映射到容器端口80
      - "8022:22"    # 将主机端口2222映射到容器端口22
    volumes:
      - /opt/package/gitlab/config:/etc/gitlab   # 挂载主机配置目录到容器
      - /opt/package/gitlab/logs:/var/log/gitlab  # 挂载主机日志目录到容器
      - /opt/package/gitlab/data:/var/opt/gitlab  # 挂载主机数据目录到容器
    networks:
      - gitlab-network

networks:
  gitlab-network:
    driver: bridge
    • external_url 登录的URL地址,记得要带上端口号,端口号要跟映射的端口号一样
    • volumes 数据卷挂载,这里的目录就是前面创建的目录,且要有写权限
  • 整体目录结构如下
./gitlab
├── config
├── data
├── docker-compose.yml
└── logs

部署执行

  • 在gitlab目录下执行如下命令
docker-compose up -d

等一会,查看容器状态,等为healthy时就可以访问了

基本设置

  • 中文设置
  • 新建项目

新建一个验证项目,需要包含dockerfile、.gitlab-ci.yml,后面做CD、CD会用到这两个文件

整个DEVOPS实践手册我已经整理成PDF文档,想要的关注我留言即可

相关文章

七个运维必备的Shell自动化脚本

Shell 脚本是自动化日常任务的有力工具。通过编写和使用 Shell 脚本,运维人员可以显著提高工作效率,减少人为错误。本文将介绍几个运维工作中必备的 Shell 自动化脚本,值得收藏。一. 检查磁...

自动化运维必备的工具-Shell脚本介绍

Shell脚本是实现Linux/Unix系统管理及自动化运维必备的重要工具,也是每一个运维工程师需要熟练掌握的知识,它可以帮我们提升工作效率,还可以减少不必要的重复性工作。但很多人对shell并不了解...

shell脚本编程进阶高效实战方法示例

hell脚本编程进阶高效实战方法示例一、Shell编程效率革命:从基础到高阶在Shell脚本的世界里,效率提升往往来自于对细节的极致优化。下面这个简单的对比展示了优化前后的差异:bash# 基础写法:...

Shell脚本高手速成:5个头条运维工程师都在用的实战秘籍

《Shell脚本高手速成:5个头条运维工程师都在用的实战秘籍》深知读者需要的是立即能用的干货。今天分享的这5个Shell脚本案例,都是从生产环境中总结的真实解决方案,包含了很多网上找不到的实用技巧。一...

高效运维:10个功能强悍的Shell监控脚本

在当今复杂多变的运维环境中,Shell脚本因其灵活性和高效性,成为运维工程师不可或缺的工具之一。本文将详细介绍10个功能强悍的Shell监控脚本,旨在帮助运维人员更好地应对各种挑战,确保系统稳定运行。...

10个Shell脚本高阶技巧,让你的开发效率提升200%!

引言Shell脚本是每个开发者的瑞士军刀,但很多人只停留在基础用法。本文将揭秘10个提升Shell脚本开发效率的"黑魔法",配合实用代码示例,助你成为团队中的Shell大神!代码复制注...