• gitlab搭建


    环境说明:
    虚拟机 centos 7 64位
    内存:4GB
    存储:100GB
    CPU: CORE

    版本:
    gitlab 10.0.3 

    • 配置系统基础环境

    配置阿里巴巴 yum 源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    重建yum 的缓存

    yum clean all

    yum makecache

    配置 yum 的本地源

    mount ~/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom/

    修改本地 yum 的配置

    git clone https://gitlab.com/xhang/gitlab.git

    将 baseurl 的参数增加一个列表

    git clone https://gitlab.com/xhang/gitlab.git

    修改enabled值,改为

    enabled=1

    • 安装gitlab 环境准备

    安装 git

    yum install -y git

    创建 gitlab汉化版的源码目录,等一下使用git clone 一份新的代码

    mkdir gitlab_zh

    cd gitlab_zh

    git clone https://gitlab.com/xhang/gitlab.git

    当前作者下载汉化源码为10.0.4,但是即将安装的 gitlab 版本为 10.0.3

    • 安装gitlab

    安装 gitlab 的依赖包

    yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python –y

    yum install -y patch

    启动 postfix,并且设置为开机启动

    systemctl start postfix

    systemctl enable postfix

    设置防火墙

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

    firewall-cmd --reload

    大家从网上下载好 gitlab 的rpm 包后,就可以安装了

    rpm -i gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm

    gitlab 下载地址:

    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

    当 shell 中出现以下内容,则证明 gitlab 的程序安装完了

    继续安装提示执行配置 gitlab 的命令

    gitlab-ctl reconfigure

    修改 gitlab 的配置文件

    vi /etc/gitlab/gitlab.rb

    修改里面的 external_url 参数,例如作者的机器的IP地址为 10.211.55.10

    external_url='http://10.211.55.10'

    因为修改了配置文件,所以重新加载配置文件

    gitlab-ctl reconfigure

     

    • 汉化 gitlab

    使用汉化包来为社区版本的 gitlab 打补丁

    停止 gitlab 服务

    gitlab-ctl stop

    切换到 刚才从 github 上download 的汉化包目录

    cd /root/source/gitlab_zh/gitlab/

    找出安装的 10.0.3 版本和 汉化版本10.0.4 中的不同点

    git diff v10.0.3 v10.0.4-zh > ../10.0.3-zh.diff

    目录倒退一层

    cd ../

    将 10.0.3-zh.diff 的补丁添加到 gitlab 中

    patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.3-zh.diff

    重新启动 gitlab 服务

    gitlab-ctl start

    重新配置 gitlab

    gitlab-ctl reconfigure

    软件安装部分就完成了,以下是web 页面配置部分

    • web页面配置

    由于作者本机的IP 地址为 10.211.55.10,而且gitlab 默认的端口号为 80,所以使用浏览器访问以下地址:
    http://10.211.55.10:80

     

    用户自己在页面上输入 新的密码,该密码为 管理员密码

    未来管理员的登陆名为 root,密码为刚才修改的密码

     

    • 配置gitlab 用户注册时的邮箱通知信息

    修改 /etc/gitlab/gitlab.rb 配置文件,该邮箱地址是未来gitlab 向用户发送邮件时的推送邮箱

     

    gitlab_rails['smtp_enable'] = true

    gitlab_rails['smtp_address'] = "smtp.qq.com"           # 用户输入自己的smtp服务器地址,例如作者的时163 的企业服务地址

    gitlab_rails['smtp_port'] = 25                         # 用户smtp 的端口号

    gitlab_rails['smtp_user_name'] = "***@qq.com"          # 用户的邮箱地址

    gitlab_rails['smtp_password'] = "PASSWORD"             # 用户的邮箱密码

    gitlab_rails['smtp_domain'] = "qq.com"                 # 用户邮箱的域名

    gitlab_rails['smtp_authentication'] = "login"

    gitlab_rails['smtp_enable_starttls_auto'] = true

    gitlab_rails['smtp_tls'] = false

    gitlab_rails['gitlab_email_from'] = '***@qq.com'       # 用户的邮箱地址

    user['git_user_email'] = "***@qq.com"                  # 用户的邮箱地址

     

    作者在这里给大家一个提醒,如果大家安装gitlab 的环境为阿里云,一定要确认25 端口是否能够使用,作者就由于之后在阿里云上部署gitlab时,遇到25 端口无法使用的问题,所以一直导致在注册新用户时,邮件无法发送出去,这个时候解决方法可以选择使用打开 ssl 加密传输,这样端口就不再是 25 端口了,例如qq 的邮件配置应该变为

     

    gitlab_rails['smtp_enable'] = true

    gitlab_rails['smtp_address'] = "smtp.qq.com"           # 用户输入自己的smtp服务器地址,例如作者的时163 的企业服务地址

    gitlab_rails['smtp_port'] = 465                        # 用户smtp 的端口号

    gitlab_rails['smtp_user_name'] = "***@qq.com"          # 用户的邮箱地址

    gitlab_rails['smtp_password'] = "PASSWORD"             # 用户的邮箱密码

    gitlab_rails['smtp_domain'] = "qq.com"                 # 用户邮箱的域名

    gitlab_rails['smtp_authentication'] = "login"

    gitlab_rails['smtp_enable_starttls_auto'] = true

    gitlab_rails['smtp_tls'] = false

    gitlab_rails['gitlab_email_from'] = '***@qq.com'       # 用户的邮箱地址

    user['git_user_email'] = "***@qq.com"                  # 用户的邮箱地址

    gitlab_rails['smtp_tls'] = true                        # 打开 ssl 加密传输

     

     

    因为修改了配置文件,所以重新加载配置文件

    gitlab-ctl reconfigure

    因为有时候邮箱的密码需要不定时修改,所以未来管理员也会同步修改登录邮箱的密码,在修改了配置文件后,所以在重新加载后,可以通过以下命令查看刚才修改的内容是否生效

    gitlab-ctl show-config | grep smtp_password

     

    管理员还需要在web的管理页面上修改对应的配置,管理员的配置页面可以点击以下按钮

     

    gitlab是否打开新用户注册

     

    如果管理员需要自己手工添加新用户可以在以下页面配置

     

     

    其他的一些技术点

    • 查看gitlab 的配置

    gitlab-ctl show-config

    • 查看gitlab 的运行日志

    gitlab-ctl tail

    • 切换gitlab 仓库的数据目录

    gitlab 默认的仓库数据目录为 /var/opt/gitlab/git-data/repositories/ ,如果未来用户的数据量大了,需要更换仓库数据目录,可以通过修改 /etc/gitlab/gitlab.rb 配置进行调整。

    用户在调整gitlab 的配置之前,建议对其先停止服务。

    gitlab-ctl stop

     然后用户创建好未来要迁移的数据目录,并且将原来的数据 迁移 过去,由于作者的 gitlab 是通过 rpm 包安装的,所以gitlab 的系统用户为 git,用户组为 root,所以在拷贝数据后还需要修改新数据目录的用户归属,否者后面gitlab 无法对该目录写入新的数据。

    mkdir -p /mnt/gitlab/git-data/

    mv /var/opt/gitlab/git-data/repositories/* /mnt/gitlab/git-data/repositories/

    chown -R git:root /mnt/gitlab/git-data/*

    然后用户就可以对 /etc/gitlab/gitlab.rb 进行调整了。

    /etc/gitlab/gitlab.rb 默认对 数据目录 的配置是注释的。

     

    用户可以新增配置信息

    git_data_dirs({

      "default" => {

         "path" => "/mnt/gitlab/git-data"

      }

    })

    然后对 gitlab 重新刷新配置

    gitlab-ctl reconfigure

    重启 gitlab 服务

    gitlab-ctl restart

    •  修改gitlab 的nginx服务端口号

     首先还是需要先关闭gitlab的服务

    gitlab-ctl stop

    修改 /etc/gitlab/gitlab.rb 文件(作者是在root 用户下直接修改的)

    找到以下内容(作者对应是859行),修改为 nginx['listen_port'] = 8080

    ##! **Override only if you use a reverse proxy**

    ##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port

    # nginx['listen_port'] = nil

    同时还需要在 /etc/gitlab/gitlab.rb 文件 找到以下内容(作者对应的是 587 行),将 unicorn['port'] 设置为 8082(因为8080 端口已经被占用了)

    ### Advanced settings

    # unicorn['listen'] = '127.0.0.1'

    # unicorn['port'] = 8080

    修改后的内容变为

    ### Advanced settings

    # unicorn['listen'] = '127.0.0.1'

    unicorn['port'] = 8082

    用户还需要在 /var/opt/gitlab/gitlab-rails/etc/unicorn.rb 文件上找到以下内容(作者对应是 第7行 ),将listen 的端口设置为 8082

    # What ports/sockets to listen on, and what options for them.

    listen "127.0.0.1:8080", :tcp_nopush => true

    修改后的内容变为

    # What ports/sockets to listen on, and what options for them.

    listen "127.0.0.1:8082", :tcp_nopush => true

    更新gitlab 的配置

    gitlab-ctl reconfigure

    用户在 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件中,找到以下内容(作者对应是38行),将原来默认的的listen *:80 会被刷新为修改后的8080 (nginx 的端口就变为 8080)

     

    upstream gitlab-workhorse {

      server unix:/var/opt/gitlab/gitlab-workhorse/socket;

    }

     

     

    server {

      listen *:8080;

     

    重启 gitlab 服务

    gitlab-ctl restart

    这里用户一定要注意,如果直接修改 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件的 内容,则在执行 gitlab-ctl reconfigure 后,修改值会被覆盖

  • 相关阅读:
    actf_2019_babystack
    Exp9 Web安全基础
    Exp 8 Web基础
    Exp7 网络欺诈防范
    pwn堆总结
    基于OpenSSL的asn.1分析工具设计与实现 20175219罗乐琦 个人报告
    Exp6 MSF基础应用
    glibc free源码分析
    glibc malloc源码分析
    exp5 信息收集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/zhehan/p/10728410.html
Copyright © 2020-2023  润新知