安裝gitlab遇到的大坑!!!

原文鏈接:https://www.jianshu.com/p/808fbf9d972f

最近DevOps非常火, 而GitLab作爲其中重要一環, 也越來越受重視, 與SVN相比, GitLab同樣提供完美的用戶權限管理, 與Git相比, 除了涵蓋Git所有功能, 同時又提供方便的後臺管理, 非常適合企業使用, 下面簡單介紹下GitLab的搭建, 當然, 官方文檔有提供相應的方法, 但實際操作過程中, 並沒有那麼順利.

1. 安裝相關依賴

yum install curl policycoreutils openssh-server openssh-clients -y
# 確保sshd啓動(正常情況下, sshd是啓動的)
systemctl enable sshd
systemctl start sshd

另外如果開啓了防火牆, 注意設置防火牆的規則

2. 引入yum源, 並安裝gitlab

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce -y
# 配置並啓動
gitlab-ctl reconfigure

如果設備配置比較低, 會在啓動過程中卡死, 建議最低雙核2G內存

如果當前服務器的808080端口均未被佔用, 則直接可以通過服務器的ip或域名訪問到後臺

http://ip或域名

3. 使用主機的nginx

一般情況下, 我們希望通過自己nginx統一管理站點, 而不需要使用gitlab附帶的, 這個時候我們要停用gitlabnginx, 並配置我們自己的反向代理, 配置文件大致是這樣

server {
    listen   80;
    server_name   gitlab.yinnote.com;

    location / {
        proxy_pass  http://127.0.0.1:18080;
    }
}

之後, 我們在修改gitlab的配置文件

vi /etc/gitlab/gitlab.rb

# 依次找到修改
# 指定host地址
external_url 'http://gitlab.yinnote.com'
# 修改時區
gitlab_rails['time_zone'] = 'PRC'
# 關閉附帶的nginx
nginx['enable'] = false

如果我們的8080端口也被其他程序佔用了, 比如說我們有啓動着的tomcat, 那麼, 我們還需要修改unicorn的端口

# 同樣找到並修改
unicorn['port'] = 18080

之後就可以重新加載配置文件並重啓服務了

gitlab-ctl reconfigure
gitlab-ctl restart

正常情況下, 我們應該可以通過 http://gitlab.yinnote.com 訪問到後臺, 但實際情況會出現錯誤

坑 1

這種情況, 我們只要重新執行一下npm安裝依賴包即可

cd /opt/gitlab/embedded/service/gitlab-rails
npm install
# 重啓服務
gitlab-ctl restart

注意, npm一定要配置國內鏡像倉庫, 否則會執行很慢, 另外, 執行過程中, 可能會報一些錯, 這個可以暫不理會, 是由於nodejs版本造成的

坑 2

完成上述情況, 我們的確可以正常訪問, 但當我們打開chrome的控制檯, 去查看頁面資源加載情況, 會出現

我們看到很多422的錯誤, 這裏主要是/assets/webpack文件夾下的內容加載不了, 這個是由於rails裏面的CSP安全策略, 不加載 js, 不過我們可以通過配置nginx, 讓/assets爲靜態站點目錄, 即在nginx配置文件中加上

location /assets {
    root /opt/gitlab/embedded/service/gitlab-rails/public;
    index index.html;
}

這個時候, 我們的靜態資源文件通過nginx去訪問, rails仍然可以保留自己的安全策略



作者:殷臨風
鏈接:https://www.jianshu.com/p/808fbf9d972f
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章