博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gitlab环境快速部署(RPM包方式安装)
阅读量:6038 次
发布时间:2019-06-20

本文共 9575 字,大约阅读时间需要 31 分钟。

 

之前梳理了一篇,但是这是bitnami一键安装的,版本比较老。下面介绍使用rpm包安装Gitlab,下载地址:,针对centos6和centos7的各版本Gitlab下载。如果下载不下来或者下载巨慢,可以尝试:

一、下面记录centos6.9系统下的Gitlab安装过程(最好找一台环境比较干净的机器):

1)配置系统防火墙,把HTTP和SSH端口开放(关闭iptables或者开放ssh).[root@gitlab ~]# /etc/init.d/iptables stop [root@gitlab ~]# yum install curl openssh-server postfix cronie[root@gitlab ~]# service postfix start[root@gitlab ~]# chkconfig postfix on[root@gitlab ~]# lokkit -s http -s ssh        //如果iptables关闭了,这条命令就无需执行了。这条命令是用来设置防火墙的,开放http和ssh访问端口2)下载gitlab的rpm安装包已提前下载放到百度云里:http://pan.baidu.com/s/1c2EPRLQ提前密码:qys2[root@gitlab ~]# rpm -ivh gitlab-ce-9.4.5-ce.0.el6.x86_64.rpm --force安装后的gitlab默认路径是/opt/gitlab(程序路径)、 /var/opt/gitlab(配置文件路径)。3) 接着进行配置[root@gitlab ~]# gitlab-ctl reconfigure上面配置命令执行后,如没有报错,就说明gitlab配置成功。配置后会生成各应用服务配置文件,放在/opt/gitlab/etc下,日志路径为/var/log/gitlab/4)然后启动gitlab[root@gitlab ~]# gitlab-ctl start[root@gitlab ~]# gitlab-ctl status5)最后就可以使用http://localhost顺利访问Gitlab了。整个安装过程大概10分钟搞定(rpm包下载比较费时间)

将ip访问修改为域名访问的更改方法:

1)首先将/etc/gitlab/gitlab.rb文件中的192.168.1.24全部替换为gitlab.kevin.com[root@code-server gitlab]# vim /etc/gitlab/gitlab.rbexternal_url 'http://192.168.1.24'改为:external_url 'http://gitlab.kevin.com' 2)其次将下面两文件中的192.168.1.24全部替换为gitlab.kevin.com/var/opt/gitlab/gitlab-shell/config.yml/var/opt/gitlab/gitlab-rails/etc/gitlab.yml 下面两文件都是上面两文件的软链接,修改上面两个文件即可[root@code-server gitlab]# ll /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.ymllrwxrwxrwx 1 root root 43 Nov  9 18:00 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml[root@code-server gitlab]# ll /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.ymllrwxrwxrwx 1 root root 43 Nov  9 18:00 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml 3)然后将下面文件中的192.168.1.24全部替换为gitlab.kevin.com/var/opt/gitlab/nginx/conf/gitlab-http.conf 4)最后执行"gitlab-ctl reconfigure"命令使之配置生效(注意最好不要执行"gitlab-ctl restart",只执行本命令即可)

二、Gitlba安装后的几个细节的配置

Gitlab如果是编译安装的默认管理员账号密码是:admin@local.host|5iveL!fe,如果是 rpm包安装则管理员账号密码是root|5iveL!fe

Gitlab安装后,http://localhost访问,首次访问的时候,如果不知道管理员账号和密码,尽管可以注册用户,但注册的用户都不是管理员。这个时候,可以重置管理员的密码,管理员默认是root。

重置管理员密码(密码要是8位)的方法如下:

[root@gitlab ~]# gitlab-rails console productionLoading production environment (Rails 4.1.1)irb(main):001:0> user = User.where(id:1).firstirb(main):002:0> user.password='12345678'irb(main):003:0> user.save!这样,Gitlab管理员的登录权限就是:root/12345678,管理员的默认邮箱是部署机的本机邮箱,也是从本机发的邮件。这也就是为什么在开头要安装postfix。修改下面几处,否则邮件发出后,点击会报错。下面的192.168.1.24是部署机ip。[root@gitlab ~]# cd /opt/gitlab/[root@gitlab gitlab]# cat embedded/service/gitlab-rails/config/gitlab.yml|grep 192.168.1.24    host: 192.168.1.24    email_from: gitlab@192.168.1.24[root@gitlab gitlab]# cd /var/opt/gitlab/[root@gitlab gitlab]# cat ./gitlab-rails/etc/gitlab.yml|grep 192.168.1.24    host: 192.168.1.24    email_from: gitlab@192.168.1.24最后重启gitlab-ctl生效[root@gitlab gitlab]# gitlab-ctl restart

在管理员账号(root)登录后,先把"注册"功能关了,这样就只能在管理员账号下创建用户。关闭注册功能方法

访问http://192.168.1.24/admin/application_settings,如下:

关闭"Sign-up enabled"功能(特别注意:Sign-in enabled登录功能不要关闭了,看清楚!)

 三、Gitlab批量添加账号

[root@gitlab ~]# cat gitlab.sh #!/bin/bash#批量创建gitlab用户userinfo="userinfo.text"while read line do    password=`echo $line | awk '{print $1}'`    mail=`echo $line | awk '{print $2}'`    username=`echo $line | awk '{print $3}'`    name=`echo $line | awk '{print $4}'`    curl -d "reset_password=$password&email=$mail&username=$username&name=$name&private_token=ucUctguWU6-2qrvRnGiB" "http://192.168.1.24/api/v4/users"done <$userinfo[root@gitlab ~]# cat userinfo.text1  zhanjiang.feng@wang.com zhanjiang.feng zhanjiang.feng1  hongkang.yan@wang.com hongkang.yan hongkang.yan1  yansong.wang@wang.com yansong.wang yansong.wang1  bo.xue@wang.com bo.xue bo.xue1  junlong.li@wang.com junlong.li junlong.li1  luyu.cao@wang.com luyu.cao luyu.cao1  xueqing.wang@wang.com xueqing.wang xueqing.wang1  xu.guo@wang.com xu.guo xu.guo1  bing.xing@wang.com bing.xing bing.xing1  mengmeng.li@wang.com linan linan

注意:上面userinfo.text文件里的四行分别表示密码,邮箱,用户名,别名。上面命令执行后,就可以批量创建用户了!

其中密码用1表示重置密码,也就是用户创建之后,会给用户邮箱发送两封邮件:
-> 一封确认绑定邮箱的邮件,一定要点击这个邮件里的confirm确认地址(否则登录无效);
-> 另一封是重置用户密码的邮件。重置后就可以使用邮箱或用户名登陆了。

 注意上面脚本中的private_token(这个很重要,否则批量创建不了用户)的值是从gitlab的管理员账号登录后的"settings-Account"界面里找到的,如下:

 访问脚本中gitlab的用户接口地址http://192.168.1.24/api/v4/users,试试能否访问!

===================Email的smtp设置=======================

上面默认是用部署机本地的postfix发邮件。如果要想使用第三方邮箱发邮件,这就需要修改/var/opt/gitlab/gitlab-rails/etc/unicorn.rb文件:[root@gitlab ~]# # cat /etc/gitlab/gitlab.rb|grep -v "^#"|grep -v "^$"external_url 'http://192.168.1.24'gitlab_rails['gitlab_email_from'] = 'wangshibohaha@163.com'gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.163.com"gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = "wangshibohaha@163.com"gitlab_rails['smtp_password'] = "*******"gitlab_rails['smtp_domain'] = "163.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = trueuser['git_user_email'] = "wangshibohaha@163.com"由于该文件会影响gitlab-ctl指令,如果改动了则需要重新运行配置。注意这个重新配置的动作要在上面细节配置之前,否则上面的配置在reconfigure之后就会被覆盖到默认状态![root@gitlab ~]#  gitlab-ctl reconfigure--------------------------------------------------------------------------------------------上面使用的是163邮箱,下面再贴下公司企业邮箱(用的是Coremail论客邮件系统,注意邮箱的smtp地址要正确)的配置:[root@gitlab ~]# cat /etc/gitlab/gitlab.rb|grep -v "^#"|grep -v "^$"external_url 'http://192.168.1.24'gitlab_rails['gitlab_email_from'] = 'notice@vdholdhaha.com'gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.icoremail.net"gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = "notice@vdholdhaha.com"gitlab_rails['smtp_password'] = "notice@123"gitlab_rails['smtp_domain'] = "icoremail.net"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = trueuser['git_user_email'] = "notice@vdholdhaha.com"

gitlab-ctl的常用命令:

//启动
gitlab-ctl start
//查看运行状态
gitlab-ctl status
//停止
gitlab-ctl stop
//查看错误信息
gitlab-ctl tail
//保存配置
gitlab-ctl reconfigure

====================修改Gitlab登录界面======================

选择gitlab新的主题风格,新主题会在左边栏展示选择项

经过上面修改后,看下新的登录界面

==================Gitlab整合Ldap(或AD域)==================

如上已经顺利部署了Gitlab环境,又在一台空闲的Windows server 2008上安装了AD域。现在需要在Gitlab上整合AD域,实现Gitlab只能使用AD域里面的账号登录。配置记录如下:AD域的信息:主机地址:192.168.10.141端口:389配置如下:[root@gitlab ~]# vim /etc/gitlab/gitlab.rb......gitlab_rails['ldap_enabled'] = truegitlab_rails['ldap_servers'] = YAML.load <<-EOS # remember to close this block with 'EOS' belowmain: # 'main' is the GitLab 'provider ID' of this LDAP server  label: '哈哈集团-Gitlab登录入口'  host: '192.168.10.141'  port: 389  uid: 'userPrincipalName'  method: 'plain' # "tls" or "ssl" or "plain"  allow_username_or_email_login: false  bind_dn: 'cn=王一,ou=技术运维部,dc=kevin,dc=com'  password: '9oGlYkgDzhp5k6JZ'  active_directory: true  base: 'ou=技术运维部,dc=kevin,dc=com'  user_filter: ''EOS接着执行下面命令,使上面配置生效:[root@gitlab ~]# gitlab-ctl reconfigure        //这里最好使用该命令,表示重载配置。不要使用"gitlab-ctl restart"重启服务,否则可能出现500报错!然后执行下面命令,检查LDAP信息是否成功同步过来[root@gitlab ~]# gitlab-rake gitlab:ldap:checkChecking LDAP ...Server: ldapmainLDAP authentication... SuccessLDAP users with access to your GitLab server (only showing the first 100 results)  DN: CN=李某某,OU=技术运维部,DC=kevin,DC=com  userPrincipalName: limoumou@kevin.com  DN: CN=李二,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: lier@kevin.com  DN: CN=lier1,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: lier1@kevin.com  DN: CN=test,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: test@kevin.com  DN: CN=王一,OU=技术运维部,DC=kevin,DC=com  userPrincipalName: wangyi@kevin.com  DN: CN=张三,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: zhangsan@kevin.com  DN: CN=张三,OU=网络,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: zhangsan02@kevin.com  DN: CN=赵四,OU=网络,OU=技术运维部,DC=kevin,DC=com   userPrincipalName: zhaosi@kevin.comChecking LDAP ... Finished=========================================================================================注意:如上配置中,随便使用AD域中的一个有读权限的账号和其密码进行配置就行了,即将其他账号读出来!AD域或Openldap搭建的时候,域名最好用邮箱域名。uid表示属性uid: 'uid'                       //默认配置是这个,如果不改,上面check ldap就不会成功,即不能成功同步ldap账号信息。uid: 'cn'                        //这个表示可以使用cn名称登录,比如王一,如果cn名称是英文名(比如test),则还可以使用带域名形式登录(比如test@kevin.com)uid: 'Samaccountname'            //这个表示可以使用wangyi或wangyi@kevin.com登录如果uid配置成上面的cn和Samaccountname,那么下面的allow_username_or_email_login: truelabel: '哈哈集团-Gitlab登录入口'      该配置表示使用LDAP账号登录时显示的界面提示信息。==========================================================================================

 

取消Gitlab默认的登录窗口,访问http://192.168.1.24/admin/application_settings (注意不要勾选下面的"Sign-in enabled"选择)

===============浏览器里访问Gitlab出现"Forbidden"问题===============

出现的可能原因:
较多的并发导致的访问被拒绝, Gitlab使用rack_attack做了并发访问的限制!

解决办法:

打开/etc/gitlab/gitlab.rb文件,查找gitlab_rails['rack_attack_git_basic_auth']关键词,取消注释,
修改ip_whitelist白名单属性,加入Gitlab部署的IP地址。

修改如下(192.168.1.24):

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb...... gitlab_rails['rack_attack_git_basic_auth'] = {   'enabled' => true,   'ip_whitelist' => ["127.0.0.1","192.168.1.24"],   'maxretry' => 10,   'findtime' => 60,   'bantime' => 3600 }

然后重载配置

[root@gitlab ~]# gitlab-ctl reconfigure

最后再在浏览器里访问gitlab就OK了!

=======================gitlab访问出现502=========================

Whoops, GitLab is taking too much time to respond.

产生原因:1)unicorn原8080默认端口被容器中别的进程已经占用,必须调整为没用过的2)gitlab的timeout设置过小,默认为60解决办法:1)关闭gitlab服务# gitlab-ctl stop2)选择一个没有被系统占用的端口作为unicorn端口,比如8877端口(lsof -i:8877 确认此端口没有被占用)# vim /etc/gitlab/gitlab.rbunicorn['port'] = 8877gitlab_workhorse['auth_backend'] = "http://localhost:8877"3)重新生成配置# gitlab-ctl reconfigure4)重启gitlab服务# gitlab-ctl restart

转载地址:http://cprhx.baihongyu.com/

你可能感兴趣的文章
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>
SERVLET容器简介与JSP的关系
查看>>
《服务器SSH Public Key认证指南》-补充
查看>>
我的友情链接
查看>>
Java break continue return 的区别
查看>>
算法(Algorithms)第4版 练习 1.3.4
查看>>