centos6.0搭建gitlab環境

剛剛完成在centos上部署gitlab,遇到了許多問題,作個備忘。html

基本介紹

  參考文檔:https://www.cnblogs.com/leeyongbard/p/9777498.htmlnode

  git,github,gitlab之間的關係

    版本控制系統linux

      集中式版本控制系統(svn,cvs):集中式版本控制系統下的歷史倉庫是存在於中央倉庫,每次對比與提交代碼都必須鏈接到中央倉庫.nginx

        

 

           分佈式版本控制系統(git):分佈式版本控制系統下的本地倉庫包含代碼庫還有歷史庫,在本地就能夠查看版本歷史。git

        

      GitHub 和  GitLab 都是基於 web 的 Git 倉庫,使用起來兩者差很少,它們都提供了分享開源項目的平臺,爲開發團隊提供了存儲、分享、發佈和合做開發項目的中心化雲存儲的場所。github

              

  github和gitlab都是基於web的git倉庫,gitlab與github的區別以下:web

    (1) gitlab容許免費設置倉庫權限;redis

    (2) gitlab容許用戶選擇分享一個 project 的部分代碼;sql

    (3) gitlab容許用戶設置 project 的獲取權限,進一步提高安全性;vim

    (4) gitlab能夠設置獲取到團隊總體的改進進度;

    (5) gitlab經過 innersourcing 讓不在權限範圍內的人訪問不到該資源.

  因此對大多數有服務器資源的公司來說,都會選擇更加安全而且免費的gitlab。

環境準備及安裝

  

1.環境依賴安裝
  [root@linux~]#yum install curl policycoreutils openssh-server openssh-clients postfix
  [root@linux ~]#systemctl start postfix
2.安裝gitlab-ce
  [root@linux ~]# vim /etc/yum.repos.d/gitlab-ce.repo
#在編輯器中輸入以下內容保存
  [gitlab-ce]
  name=gitlab-ce
  baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7注意:若是是centos6版本的,這裏改爲e16
  repo_gpgcheck=0
  gpgcheck=0
  enabled=1
  gpgkey=https://packages.gitlab.com/gpg.key

[root@linux ~]# yum makecache  #更新本地yum緩存
[root@linux ~]# yum install gitlab-ce  #自動安裝gitlab的最新社區版
3.配置並啓動gitlab-ce
  [root@linux ~]# gitlab-ctl reconfigure
安裝完成使用命令驗證一下
[root@linux ~]# gitlab-ctl status
run: alertmanager: (pid 13786) 14040s; run: log: (pid 13463) 14051s
run: gitaly: (pid 1743) 19295s; run: log: (pid 1742) 19295s
run: gitlab-monitor: (pid 13695) 14043s; run: log: (pid 12862) 14074s
run: gitlab-workhorse: (pid 13655) 14044s; run: log: (pid 12267) 14097s
run: logrotate: (pid 27759) 3287s; run: log: (pid 12564) 14086s
run: nginx: (pid 12391) 14094s; run: log: (pid 12465) 14090s
run: node-exporter: (pid 13673) 14044s; run: log: (pid 12739) 14079s
run: postgres-exporter: (pid 13816) 14040s; run: log: (pid 13633) 14045s
run: postgresql: (pid 10555) 14200s; run: log: (pid 10644) 14196s
run: prometheus: (pid 13730) 14042s; run: log: (pid 13296) 14057s
run: redis: (pid 1741) 19295s; run: log: (pid 1740) 19295s
run: redis-exporter: (pid 13703) 14043s; run: log: (pid 13027) 14068s
run: sidekiq: (pid 12030) 14108s; run: log: (pid 12072) 14105s
run: unicorn: (pid 11873) 14114s; run: log: (pid 11948) 14111s
注意:這裏都是gitlab的組件,有時候gitlab-ctl reconfigure執行完會報錯,致使的結果是組件啓動不全,我遇到的報錯內容以下:
Running handlers:
There was an error running gitlab-ctl reconfigure:

execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] (postgresql::enable line 80) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
STDOUT: The files belonging to this database system will be owned by user "gitlab-psql".
This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.GBK".
STDERR: initdb: encoding mismatch
The encoding you selected (UTF8) and the encoding that the
selected locale uses (GBK) do not match.  This would lead to
misbehavior in various character string processing functions.
Rerun initdb and either do not specify an encoding explicitly,
or choose a matching combination.
---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1
這是因爲系統編碼問題形成的,解決方法以下:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
$ source ~/.bashrc
由於我服務器的編碼格式不是UTF-8,因此致使某些組件不能正確安裝,因此要仔細看組件的啓動個數,並且執行gitlab-ctl reconfigure以後的報錯要挨個解決。

4.啓動gitlab-ce以後,修改ip地址並從新初始化配置:gitlab-ctl reconfigure
[root@linux ~]#vim /etc/gitlab/gitlab.rb
  external_url 'http://192.168.0.6:8081' #這一行有初始值,把''裏的初始域名改爲咱們要訪問的也就是服務器的ip+端口
[root@linux ~]#gitlab-ctl reconfigure
這個時候咱們訪問http://192.168.0.6:8081應該能夠看到如下界面

 若是不能訪問,就須要去查看咱們設置的端口(8081)是否開放.

lsof -i tcp:8081

若是沒有返回內容,則有兩種可能:
  1.gitlab-ctl status查看是否有組件未啓動,按照以前的步驟從新初始化
  2.8081端口沒有開放
    
    num  target     prot opt source               destination         
    1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8081 /etc/init.d/iptables status #查看iptable是否開放了8081,有這一條就證實沒問題
若是沒有開放
  
  再查看檢查一下,肯定端口沒問題。/sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT #寫入修改
  /etc/init.d/iptables save #保存修改
  service iptables restart #重啓防火牆,修改生效

gitlab經常使用命令

sudo gitlab-ctl start    # 啓動全部 gitlab 組件;
sudo gitlab-ctl stop        # 中止全部 gitlab 組件;
sudo gitlab-ctl restart        # 重啓全部 gitlab 組件;
sudo gitlab-ctl status        # 查看服務狀態;
sudo gitlab-ctl reconfigure        # 啓動服務;
sudo vim /etc/gitlab/gitlab.rb        # 修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 檢查gitlab;
sudo gitlab-ctl tail        # 查看日誌;

gitlab修改用戶密碼

對於普通用戶而言,系統能夠重置密碼,可是須要郵箱確認,若是當時的郵箱是隨便填的,就須要在服務器端修改密碼了。

官方修改密碼地址:https://docs.gitlab.com/ce/security/reset_root_password.html

gitlab-rails console productionuser = User.where(id: 1).first   #根據用戶id來查找要修改密碼的用戶或者user = User.find_by(email: 'admin@local.host')  #根據郵箱地址來查找要修改密碼的用戶user.password=12345678user.password_confirmation=12345678user.save!quit#注意,密碼那裏不能有引號
相關文章
相關標籤/搜索