日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gitlab运维

發布時間:2024/4/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gitlab运维 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過gitlab命令進行的遷移

自建的Gitlab服務器常常會因為使用時間的增長,其空間容量等硬件需求都需要升級,或者遷移至更高配置的服務器上。備份、遷移、恢復、升級過程如下

1、gitlab備份

備份時需要保持gitlab處于正常運行狀態,執行gitlab-rake進行備份。

gitlab-rake gitlab:backup:create

備份命令會在***/var/opt/gitlab/backups***目錄下創建一個名稱類似為1530156812_2018_06_28_10.8.4_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1530156812_2018_06_28_10.8.4是備份創建的日期

/etc/gitlab/gitlab.rb 配置文件須備份

/var/opt/gitlab/nginx/conf nginx配置文件

/etc/postfix/main.cfpostfix 郵件配置備份

1.1 修改備份文件目錄

可以通過***/etc/gitlab/gitlab.rb***配置文件來修改默認存放備份文件的目錄

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

1.2 設置備份過期時間

gitlab_rails['backup_keep_time'] = 604800 #以秒為單位

1.3 gitlab自動備份

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

2、gitlab遷移

遷移的整體思路是:

1、在新服務器上安裝相同版本的gitlab

2、將備份生成的備份文件發送到新服務器的相同目錄(備份文件目錄)下

3、gitlab恢復

1、停止相關數據連接服務,修改文件權限

gitlab-ctl stop unicorn gitlab-ctl stop sidekiq #修改文件權限。 chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar

2、從備份文件恢復

#從1530156812_2018_06_28_10.8.4編號備份中恢復 gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4

3、啟動gitlab

gitlab-ctl start

在實際情況中訪問gitlab可能是用域名訪問,我們可以修改gitlab配置文件中的url再進行備份,這樣就不會影響遷移過程,恢復完成后需要進行的只是修改域名對應的dns解析ip地址

4、gitlab升級

gitlab-ctl stop #關閉gitlab服務 gitlab-rake gitlab:backup:create #備份#安裝成功后重新加載配置并啟動 gitlab-ctl reconfigure gitlab-ctl restart

5、gitlab更改默認的nginx

vim /etc/gitlab/gitlab.rb nginx['enable'] = false #不啟用nginx

檢查默認nginx配置文件,并遷移至新Nginx服務

/var/opt/gitlab/nginx/conf/nginx.conf #nginx配置文件,包含gitlab-http.conf文件/var/opt/gitlab/nginx/conf/gitlab-http.conf #gitlab核心nginx配置文件

重啟 nginx、gitlab服務

gitlab-ctl restart systemctl restart nginx.service#訪問可能出現報502。原因是nginx用戶無法訪問gitlab用戶的socket文件。 重啟gitlab需要重新授權 chmod -R o+x /var/opt/gitlab/gitlab-rails

Docker部署方式遷移

Docker部署方式一般會把gitlab的數據使用掛載目錄的方式存儲。

"Volumes": {"/etc/gitlab": {},"/var/log/gitlab": {},"/var/opt/gitlab": {}},

把對應的目錄綁定到新的服務的掛載目錄上。

遷移對應的數據文件。

"Mounts": [{"Type": "volume","Name": "gitlab_config","Source": "/var/lib/docker/volumes/gitlab_config/_data","Destination": "/etc/gitlab","Driver": "local","Mode": "rw","RW": true,"Propagation": ""},{"Type": "volume","Name": "c4475269eda4c25ce95c5c8c353f12ee9acd52e8ccd66b1fbb2cf29acd011b63","Source": "/var/lib/docker/volumes/c4475269eda4c25ce95c5c8c353f12ee9acd52e8ccd66b1fbb2cf29acd011b63/_data","Destination": "/var/log/gitlab","Driver": "local","Mode": "","RW": true,"Propagation": ""},{"Type": "volume","Name": "gitlab_data","Source": "/var/lib/docker/volumes/gitlab_data/_data","Destination": "/var/opt/gitlab","Driver": "local","Mode": "rw","RW": true,"Propagation": ""}],

注意

1、實際上docker模式上通過復制目錄方式,會導致權限問題,因此最好通過備份還原方式。

2、還原的時候,保證 external_url ‘http://192.168.1.XX’ ,參數設置正確,這個參數影響 代碼倉庫的host。

解決方法:

修改:/var/opt/gitlab/gitlab-rails/etc/gitlab.yml -> /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 文件中host屬性,然后重啟服務。

## Web server settings (note: host is the FQDN, do not include http://)
host: 192.168.1.99
port: 80
https: false

問題:

1、權限問題

日志中提到了docker exec -it gitlab update-permissions docker restart gitlab但是因為權限問題,容器啟動之后很快就會關閉,所以執行第一條命令會提示容器未運行,最好的解決辦法就是,啟動容器之后,迅速執行 docker exec -it gitlab update-permissions ,然后迅速執行docker restart gitlab,就成功了,親測有效。別等到容器掛了才執行。

docker 運行gitlab,使用NFS,會有權限問題,參考:

https://docs.gitlab.com/ee/administration/nfs.html
https://stackoverflow.com/questions/21790337/attaching-network-storage-to-a-docker-container-for-gitlab-ssh-issue
https://forum.gitlab.com/t/running-gitlab-ce-from-the-docker-image-saving-data-onto-nfs-share-acl-problems/9155/2
https://docs.gitlab.com/omnibus/docker/README.html#linux-acl-issues

2、郵件不能正常發送

我們在安裝gitlab時,會配置郵件發送信息。

docker配置方式如下:

environment:TZ: 'Asia/Shanghai'GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.1.XX'gitlab_rails['time_zone'] = 'Asia/Shanghai'# 需要配置到 gitlab.rb 中的配置可以在這里配置,每個配置一行,注意縮進。# 比如下面的電子郵件的配置:gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.263.net"gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = "XXX@jurassic.com.cn"gitlab_rails['smtp_password'] = "MMMMMM"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'YYYY@jurassic.com.cn'

但是郵件發送不出去。

定位問題:

#進入docker容器docker exec -it gitlab /bin/bash #運行測試郵件命令 #1、進入 gitlab-rails console #2、測試 Notify.test_email('tttt@jurassic.com.cn', 'Message Subject', 'Message Body').deliver_now

結果如下:

SocketError: getaddrinfo: Temporary failure in name resolutionfrom /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:539:in `initialize'from /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:539:in `open'from /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:539:in `tcp_socket'from /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:549:in `block in do_start'from /opt/gitlab/embedded/lib/ruby/2.4.0/timeout.rb:93:in `block in timeout'from /opt/gitlab/embedded/lib/ruby/2.4.0/timeout.rb:103:in `timeout'from /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:548:in `do_start'from /opt/gitlab/embedded/lib/ruby/2.4.0/net/smtp.rb:518:in `start'

定位問題:

應該是dns問題,編輯dns

vi resolv.conf

里面有:

namesever 127.0.0.11

再增加一個

namesever 192.168.1.XX

測試OK

3、Failed to parse advertise address

alertmanager down with “create memberlist: Failed to get final advertise address: Failed to parse advertise address “””

參考:https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/3705

In /opt/gitlab/sv/alertmanager/run add the option --cluster.advertise-address=127.0.0.1:9093

- /opt/gitlab/embedded/bin/alertmanager --web.listen-address=localhost:9093 --storage.path=/var/opt/gitlab/alertmanager/data --config.file=/var/opt/gitlab/alertmanager/alertmanager.yml + /opt/gitlab/embedded/bin/alertmanager --cluster.advertise-address=127.0.0.1:9093 --web.listen-address=localhost:9093 --storage.path=/var/opt/gitlab/alertmanager/data --config.file=/var/opt/gitlab/alertmanager/alertmanager.yml

總結

以上是生活随笔為你收集整理的Gitlab运维的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。