導航:首頁 > 配伺服器 > 阿里雲伺服器怎麼配置git

阿里雲伺服器怎麼配置git

發布時間:2025-05-07 19:33:47

Ⅰ Gitlab CICD實踐(Docker+Jenkins+Nginx)

首先,准備一台伺服器,這里使用的是阿里雲的centos系統。

在伺服器上安裝git並配置密鑰,連按enter鍵。

執行cd /root/.ssh、ls命令,可以看到生成了id_rsa(私鑰)和id_rsa.pub(公鑰)。

將公鑰復制到gitlab的SSH Keys中,驗證是否可以拉取gitlab上的代碼。

如果可以正常拉取,則表示配置成功。

接下來,安裝docker。具體安裝教程請參考:CentOS Docker 安裝。

Docker Compose是一個用於定義和運行多容器Docker應用程序的工具。它通過一個單獨的文件來配置應用程序的服務,並定義這些服務之間的關系。使用Docker Compose可以輕松地在不同的環境中部署和管理復雜的多容器應用程序。

安裝Nginx和Jenkins,並創建文件目錄。

創建配置文件docker-compose.yml和nginx.conf。

開放阿里雲埠:8080、8001、8002。

執行docker啟動命令systemctl start docker。

進入到對應目錄cd /docker/compose。

執行命令docker-compose up -d。

使用docker ps -a查看容器狀態。

在瀏覽器中輸入自己的伺服器IP:8080,可以看到jenkins頁面。

查看Jenkins密碼,可以使用docker ps查看Jenkins的CONTAINER ID。

使用docker exec -it 48575ad62348 /bin/bash進入容器內。

使用cat /var/jenkins_home/secrets/initialAdminPassword查看Jenkins密碼。

輸入密碼後進入主頁,點擊安裝推薦的插件。

安裝完成後設置用戶名密碼。

實例配置,保存,進入到Jenkins首頁。

點擊Manage Jenkins=>Plugins。

點擊Installed plugins,搜索框輸入local。

如果已經安裝,執行重啟:url輸入http://ip:埠/restart,重啟後面板變為中文。

搜索GitLab,Publish Over SSH,NodeJS,選中點擊安裝,安裝完成後重啟Jenkins。

配置Publish Over SSH連接遠程伺服器。

點擊系統管理=>系統配置,找到Publish Over SSH,點擊新增。

填寫信息,點擊高級,勾選use password,將伺服器上的id_rsa(私鑰)的內容填寫在Key裡面。

將伺服器上的id_rsa.pub(公鑰)內容放在同級目錄authorized_keys文件下。

往下滑動,點擊Test Configuration,顯示success則測試成功。

配置NodeJS。

點擊全局工具配置,找到NodeJS,點擊新增NodeJS,選擇node版本,保存。

添加憑據,方便後續使用。

輸入gitlab用戶名和密碼,保存。

創建Job。

保存後點擊立即構建,查看構建日誌。

配置gitlab的webhooks。

上面的url填寫Jenkins裡面的url,還需要填寫webhooks裡面的Secret token,secret token需要在jenkins生成。

繼續點擊jenkins的高級按鈕,往下滑,點擊Generate生成secret token,填寫到gitlab的secret token(上圖所示),最後點擊保存。

驗證webhooks,返回200表示驗證成功,打開Jenkins發現已新增一條記錄。

伺服器上也已經把源碼同步過來了。

配置構建步驟。

選擇之前配置的node版本,點擊保存。

點擊立即構建,系統會自動安裝對應的nodejs版本。

增加shell命令。

點擊立即構建,驗證環境可用。

添加yarn包管理器。

點擊立即構建,驗證yarn是否成功安裝。

安裝依賴,打包yarn install,yarn build。

伺服器也同步過來了dist和node_moles目錄。

自動把打包產物部署到對應環境的目錄。

把dist目錄壓縮成dist.tar壓縮包。

通過SSH把dist.tar壓縮包發送到伺服器上。

保存後點擊構建,運行成功。

可以看到伺服器上已經有了dist目錄。

訪問ip:8001,可以正常展示頁面。

流程:gitlab的dev分支提交代碼後會觸發webhooks,通知jenkins自動構建,jenkins會拉取gitlab的dev分支代碼,執行yarn build打包成dist,之後把dist壓縮成dist.tar,通過SSH把dist.tar包發送到dev環境的目錄,並把dist.tar包解壓成dist目錄,實現dev環境更新。

生產環境的部署可以參照dev環境再配置一個。

Ⅱ 使用Docker部署GitLab

查看是否拉取成功

編寫內容

在該文件目錄下,授予 gitlab_start.sh 執行許可權

要注意埠是否被佔用

修改 gitlab_start.sh 文件,將映射到宿主機的埠改為 8088 ,或者其它沒被佔用的埠

重新運行 ./gitlab_start.sh 文件,報錯如下

這是因為之前的容器雖然沒有運行起來,但是已經創建了,把它刪除掉

重新運行 gitlab_start.sh 文件

可以看到容器成功啟動

創建 docker-compose.yml 文件,並在該文件所在的文件夾目錄下運行 docker-compose up -d
需要事先安裝 docker-compose
安裝docker-compose

:埠和映射目錄可根據需要修改

若開放訪問埠為 80 , external_url 可不加埠號,默認80

若以 3.1 方法創建,需要修改相關配置文件

在Gitlab容器 運行狀態 時,重啟服務,並遠程訪問網站測試

*若訪問Gitlab出現502等錯誤,使用命令檢查錯誤原因

e.g.

查看上述配置文件,查找錯誤原因

[圖片上傳失敗...(image-e9789-1636370071222)]

雖然容器啟動成功,但是卻沒辦法根據 ip:port 訪問gitlab

拉取tomcat鏡像

為了測試8088埠是否可用,先把gitlab的容器暫停

啟動tomcat容器,並將tomcat容器的8080埠映射到宿主機的8088埠

一切正常,訪問ip:8088,還是和以前一樣訪問不了

因為之前系統的防火牆一直是關閉的並且其它的服務能正常訪問,所以沒有懷疑是防火牆的問題

把防火牆打開

訪問之前能正常訪問的服務,果然沒法正常訪問。

把該服務的埠開發,正常訪問。

打開8088埠

再次訪問

返回tomcat的404頁面: HTTP Status 404 – Not Found

雖然是404頁面,但是說明此時的埠是能正常訪問的

把tomcat的容器停止運行,重新運行gitlab容器

雖然沒啟動成功,但離成功更進一步了:)

嘗試把這個容器刪除掉,再創建一次後還是得到這個錯誤。

還是訪問不了,檢查一下GitLab內部是否有問題

一切正常

我再次換成tomcat容器進行測試,發現8088埠訪問不了了。

但是在宿主機內ping本機是可以的

但是,換成 ip:8088 則不行

根據以上兩篇文章,提出 阿里雲的內網eth0 網段正好跟Docker 的虛擬網卡都是 172 網段,有沖突

觀察發現我使用的雲伺服器也是阿里雲,並且通過 ifconfig 查看

並且查看阿里雲的內網ip確實也是 172 開頭。

編輯配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。

重新啟動docker服務

可以看到docker0 的地址變了。

但是要注意,使用 docker 啟動的服務會默認使用 docker0 ,如果是用 docker-compose 啟動的服務則不會。上面的 br-12aa369ee4a6 對應的是docker-compose啟動的服務,可以看到還是172的網段。

docker-compose up使用自定義的網段的兩種方式(從其根源指定)

根據該文使用方法2,即修改 daemon.json 。但並不能成功訪問,我的環境是: docker:20.10.7 , docker-compose:1.24.1

後面發現訪問不成功的原因在於 docker 與防火牆之間的關系,可以關掉防火牆,開啟 docker ,不能訪問則打開防火牆。在它們之間來回試探 = =。
後面嘗試過關閉 firewalld ,打開 iptables

在啟用 iptables 時,一般關掉 iptables 可以正常訪問,打開則不能正常訪問。
在啟用 firewalld 時,按照 docker firewalld 之間啟動關閉的順序不同,有時是開著防火牆能訪問,有時是關了防火牆能訪問。

但是容器內不能訪問外部網路,該問題現在還未解決。 有一種迂迴的解決方法就是容器使用 host 網路模式

問題 :懷疑是docker,firewalld與iptables之間的設置問題

Docker與IPtables

docker 埠映射 及外部無法訪問問題

Docker and IPtables

還有一種訪問不了GitLab的情況是埠映射和配置文件有誤。

快速的解決方法:將宿主機埠號和容器號設置相同,可參考下面的博客。

利用GitLab Docker images安裝GitLab(填坑)

[圖片上傳失敗...(image-457ad3-1636370071221)]

如果系統環境正常,安裝會十分順利,一般不會有奇怪的問題。
我在不同的伺服器安裝過
阿里雲 CentOS 7.6 : 訪問正常,但是因內存不夠出現502錯誤,容器內可正常連接外部網路
阿里雲 Alibaba Cloud Linux 2 : 可能不能正常訪問容器,容器內不能正常連接外部網路。懷疑是防火牆與docker的問題。

修改密碼:

閱讀全文

與阿里雲伺服器怎麼配置git相關的資料

熱點內容
pyodbclinux 瀏覽:582
vivo為什麼把伺服器沉到深海 瀏覽:457
程序員能為電商做什麼 瀏覽:398
騰訊直充qq號加密碼 瀏覽:137
qt搭建msvc編譯器環境 瀏覽:337
單片機晶振壞了會不會工作不穩定 瀏覽:767
天天影迷APP顯示連接伺服器失敗怎麼回事 瀏覽:958
鋼鐵命令同盟第七關怎麼過 瀏覽:4
android底部控制項彈出 瀏覽:42
為程序員而自豪 瀏覽:580
可以進行c語言編譯的文件名 瀏覽:381
如何使用網路伺服器運行程序 瀏覽:368
江西人社app什麼時候開始年審 瀏覽:498
程序員浪漫求婚 瀏覽:955
什麼是通知app 瀏覽:582
小米4文件夾怎麼清理 瀏覽:150
linuxsudo安裝 瀏覽:129
程序員培訓班幾號開班 瀏覽:264
教育官網源碼 瀏覽:781
遮擋對tof演算法的影響 瀏覽:508