Jenkins+Ansible+Gitlab自动化部署三剑客(一)--gitlab

gitlab介绍

  gitlab适合安装在自己的私有服务器上,避免核心代码暴露在网络上。

  集成度很高,能够集成绝大多数的开发工具

  支持内置HA,保证在高并发下仍旧实现高可用性

gitlab主要服务构成

  Nginx静态Web服务器

  Gitlab-workhorse轻量级的反向代理服务器

  Gitlab-shell用于处理Git命令和修改authhorized keys列表

  Logrotate日志文件管理工具

  Postgresql数据库

  Redis缓存服务器

gitlab工作流程

  创建并克隆项目

  创建项目某Feature分支

  编写代码并提交至分支

  推送该项目分支至远程Gitlab服务器

  进行代码检查并提交Master主分支合并申请

  项目领导审查代码并确认合并申请

gitlab安装配置管理

利用虚拟机创建测试服务器--Centos7

    准备工作

    1.关闭firewalld防火墙

      #systemctl stop firewalld

      #systemctl disable firewalld

    2.关闭SELINUX并重启系统

      # vi /etc/sysconfig/selinux

      ...

      SELINUX=disabled

      ...

      # reboot

    3.安装Omnibus Gitlab-ce package

      3.1安装Gitlab组件

      # yum -y install curl policycoreutils openssh-server openssh-clients postfix

      3.2配置YUM仓库

      # curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

      3.3启动postfix邮件服务

      # systemctl start postfix && systemctl enable postfix

      3.4安装Gitlab-ce社区版本

      # yum -y install gitlab-ce

    4.Omnibus Gitlab等相关配置初始化并完成安装

      4.1证书创建与配置加载

      # mkdir -p /etc/gitlab/ssl

      #openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key"  2048

      #openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"

      # ll

      #openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"

      # ll

      #openssl dhparam -out /etc/gitlab/ssl/dhparams.pem  2048

      # chmod 600 *

      #vi /etc/gitlab/gitlab.rb

      ...external_url 'https://gitlab.example.com'

      /redirect_http_to_https 参数改为true

      nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"

      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

      nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem

      # gitlab-ctl reconfigure

      4.2Nginx SSL代理服务配置

      # vi /var/opt/gitlab/nginx/conf/gitlab-http.conf

      /server_name

      添加 

      rewrite ^(.*)$ https://$host$1 permanent;

      4.3初始化Gitlab相关服务并完成安装

      # gitlab-ctl restart

gitlab的应用

安装完成,修改hosts文件,登录gitlab.example.com访问如下:

1.首次登录修改root密码

 2.登录成功显示如下界面:

 3.新建项目

 4.克隆仓库到本地

http.sslverify = false # 避免证书失效

 5.创建文件提交分支

5.1  进入test-repo,创建一个test.py文件并保存

5.2  $ git add .     将工作区中所有未跟踪或者修改的文件添加到暂存区,不处理删除文件

5.3  git commit -m "First commit"   #  First commit为提交信息

上图中因为没有创建全局用户及邮箱,提示   fatal: unable to auto-detect email address (got 'zhangw@DESKTOP-K1U9H6G.(none)')

5.4  创建全局用户和邮箱,重新提交

5.5  本地master分支同步到远程gitlab服务器

6.返回gitlab服务器,查看

end

原文地址:https://www.cnblogs.com/bk770466199/p/12259002.html