Gitlab环境快速部署(RPM包方式安装)
?
之前梳理了一篇Gitlab的安裝CI持續集成系統環境---部署Gitlab環境完整記錄,但是這是bitnami一鍵安裝的,版本比較老。下面介紹使用rpm包安裝Gitlab,下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/,針對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.rb external_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.yml lrwxrwxrwx 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.yml lrwxrwxrwx 1 root root 43 Nov 9 18:00 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml3)然后將下面文件中的192.168.1.24全部替換為gitlab.kevin.com /var/opt/gitlab/nginx/conf/gitlab-http.conf4)最后執行"gitlab-ctl reconfigure"命令使之配置生效(注意最好不要執行"gitlab-ctl restart",只執行本命令即可)二、Gitlba安裝后的幾個細節的配置
Gitlab如果是編譯安裝的默認管理員賬號密碼是:admin@local.host|5iveL!fe,如果是 rpm包安裝則管理員賬號密碼是root|5iveL!feGitlab安裝后,http://localhost訪問,首次訪問的時候,如果不知道管理員賬號和密碼,盡管可以注冊用戶,但注冊的用戶都不是管理員。這個時候,可以重置管理員的密碼,管理員默認是root。
重置管理員密碼(密碼要是8位)的方法如下:
在管理員賬號(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 dopassword=`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.text 1 zhanjiang.feng@wang.com zhanjiang.feng zhanjiang.feng 1 hongkang.yan@wang.com hongkang.yan hongkang.yan 1 yansong.wang@wang.com yansong.wang yansong.wang 1 bo.xue@wang.com bo.xue bo.xue 1 junlong.li@wang.com junlong.li junlong.li 1 luyu.cao@wang.com luyu.cao luyu.cao 1 xueqing.wang@wang.com xueqing.wang xueqing.wang 1 xu.guo@wang.com xu.guo xu.guo 1 bing.xing@wang.com bing.xing bing.xing 1 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'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 25 gitlab_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'] = true user['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'] = true gitlab_rails['smtp_address'] = "smtp.icoremail.net" gitlab_rails['smtp_port'] = 25 gitlab_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'] = true user['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'] = true gitlab_rails['ldap_servers'] = YAML.load <<-EOS # remember to close this block with 'EOS' below main: # 'main' is the GitLab 'provider ID' of this LDAP serverlabel: '哈哈集團-Gitlab登錄入口'host: '192.168.10.141'port: 389uid: 'userPrincipalName'method: 'plain' # "tls" or "ssl" or "plain"allow_username_or_email_login: falsebind_dn: 'cn=王一,ou=技術運維部,dc=kevin,dc=com'password: '9oGlYkgDzhp5k6JZ'active_directory: truebase: 'ou=技術運維部,dc=kevin,dc=com'user_filter: '' EOS接著執行下面命令,使上面配置生效: [root@gitlab ~]# gitlab-ctl reconfigure //這里最好使用該命令,表示重載配置。不要使用"gitlab-ctl restart"重啟服務,否則可能出現500報錯!然后執行下面命令,檢查LDAP信息是否成功同步過來 [root@gitlab ~]# gitlab-rake gitlab:ldap:check Checking LDAP ...Server: ldapmain LDAP authentication... Success LDAP users with access to your GitLab server (only showing the first 100 results)DN: CN=李某某,OU=技術運維部,DC=kevin,DC=com userPrincipalName: limoumou@kevin.comDN: CN=李二,OU=技術運維部,DC=kevin,DC=com userPrincipalName: lier@kevin.comDN: CN=lier1,OU=技術運維部,DC=kevin,DC=com userPrincipalName: lier1@kevin.comDN: CN=test,OU=技術運維部,DC=kevin,DC=com userPrincipalName: test@kevin.comDN: CN=王一,OU=技術運維部,DC=kevin,DC=com userPrincipalName: wangyi@kevin.comDN: CN=張三,OU=技術運維部,DC=kevin,DC=com userPrincipalName: zhangsan@kevin.comDN: CN=張三,OU=網絡,OU=技術運維部,DC=kevin,DC=com userPrincipalName: zhangsan02@kevin.comDN: 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.
====================gitlab啟動失敗,或安裝時卡住====================
在卸載gitlab然后再次安裝執行sudo gitlab-ctl reconfigure的時候往往會出現:ruby_block[supervise_redis_sleep] action run,會一直卡無法往下進行!
這時候的解決辦法:
1)按ctrl + c 強制結束
2)執行"systemctl restart gitlab-runsvdir" 命令
3)接著再執行"gitlab-ctl reconfigure"
如果機器重啟后,啟動"gitlab-ctl start"失敗,解決辦法:
# systemctl restart gitlab-runsvdir
# gitlab-ctl reconfigure
# gitlab-ctl start
轉載于:https://www.cnblogs.com/kevingrace/p/5985918.html
總結
以上是生活随笔為你收集整理的Gitlab环境快速部署(RPM包方式安装)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2010静态编译生成.exe可执行文
- 下一篇: 转:TestLink1.9.3测试用例: