當前位置:首頁 » 雲伺服器 » 在一台伺服器上搭建git和jenkins

在一台伺服器上搭建git和jenkins

發布時間: 2022-09-28 08:50:45

『壹』 Gitlab+Jenkins通過鉤子實現自動部署web項目,圖文詳細教程

擴展參考:Jenkins+Gitlab通過腳本自動部署回滾web項目至集群

1):Gitlab伺服器:ubuntu 192.168.152.131 ---參考搭建:linux安裝gitlab,docker安裝gitlab教程

2):Jenkins伺服器:ubunu 192.168.152.130 ---參考搭建:linux安裝Jenkins,或docker安裝Jenkins教程

在伺服器上生成ssh-keygen,用於配置web伺服器和Gitlab伺服器。

3):web伺服器:centos 192.168.152.150 ---已搭建好LNMP環境

4):開發者電腦:Windows+key密鑰 (用於提交代碼)

1:在gitlab創建項目Test Project

2.1): 配置一個開發者電腦的ssh公鑰到gitlab

配置一個開發者電腦的ssh公鑰到gitlab,這樣才能模擬開發上傳代碼到gitlab。

windows生成key過程及git安裝,可參考:Windows下git和github的使用圖文詳細教程_the丶only的博客-CSDN博客_github win

在windows測試clone,和提交代碼。


註:最新版git 已經將默認分支master改為main了。所以看到main,而不是master不要太奇怪

測試成功,在gitlab也顯示有index.html文件。

2.2): 配置jenkins公鑰到gitlab

同理,同樣需要jenkins公鑰,因為jenkins也需要拉去gitlab的代碼。

jenkins伺服器 上查看公鑰並復制添加到gitlab,並命名為jekins。

1:插件管理,安裝插件

jenkins本身沒什麼功能,主要是依靠插件來實現各種強大的功能。

基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 選項搜索安裝插件即可。

安裝完成後,重啟Jenkins。

2:添加需要部署的web主機

在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 選項,點擊add ssh server。

在Jenkins伺服器上,查看私鑰,注,是私鑰,不是公鑰。

將私鑰填寫在key位置,還有添加web伺服器相關信息。

註:如果測試報錯如下

Failed to connect or change directory
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@2e54414f]

是因為默認用ssh-keygen命令,默認生成了OPENSSH 格式密鑰。而Jenkins暫時不支持這種私鑰,私鑰開頭結尾如下:

所以,需要生成rsa密鑰格式的。用開頭說的ssh-keygen加其他參數生成即可。

私鑰開頭結尾如下:

再次測試,顯示success,則成功。然後點擊save保存即可。

3:構建任務項目

首頁創建任務或者一個項目

命名為web-project,選擇為freestyle project 自由項目。然後ok確認。

3.1):源碼管理 Source Code Management

選擇源碼管理,添加gitlab的項目clone地址。

註:最後路徑選擇分支,我gitlab主分支名字為main,如果是master,則寫master,或者合並的其他分支。

在add添加用戶

添加完成後,選擇git用戶,這時沒有紅色提醒,說明已成功連接

3.2):構建觸發器 Build Triggers

現在Build Triggers,勾選build when....,其他默認,並記下鏈接 http://192.168.152.130:8080/project/web-project

點擊高級 advance 選項。

勾選filter branches regex選擇,填寫分支,生產token。其他默認

3.3):構建 Build

選擇Build 選項。選擇ssh

添加web伺服器

添加完畢,最後save保存。

1:添加鉤子webhooks.

選擇自己的項目Test Project,在設置setting里,選擇鉤子webhooks.

填寫剛才記下的http://192.168.152.130:8080/project/web-project和token值。

最後Add webhook完成:

2:如添加失敗,報錯,更改Network

註:如填寫失敗提示Url is blocked: Requests to the local network are not allowed

還需更改Network選項。

3:測試鉤子

添加完成後,下面會出現鉤子選擇。點擊test中的,push event。

出現successful,即添加成功。

在Jenkins也可以看到剛才的測試時間信息。

在開發電腦上測試提交,我這里為Windows電腦測試。

打開Git Bash,輸入以下命令:

提交成功,回到Jenkins,查看是否構建成功:

綠色顯示構建成功,無錯誤顯示。回到gitlab查看項目。

時間顯示剛才也提交成功,無錯誤。最後在瀏覽器輸入web地址測試,本人配置了web訪問埠8082。所以輸入IP加埠訪問。

內容也已經自動更新成功。

完結撒花!!!

『貳』 jenkins 和git怎麼一次構建一個組

確保jenkins服務正常工作
進入WEB界面
查看git插件是否正常安裝

"管理系統" --> "管理插件"

"可選插件" 然後找到 "Git plugin",由於我這里已經安裝了,所以可選框是灰色的

新建工程

認證方式管理,也可以在項目下配置

"Credentials" --> "System" --> "Add Credentials"

"Kind" -> "SSH Username with private key" --> "Username: root" --> " Private Key: Enter directory" --> "ok"

需要注意的是,這里私鑰對應的公鑰應該在git倉庫相應的用戶的ssh公鑰認證文件(~/.ssh/authorized)里已經添加過,且這個用戶對git倉庫有讀取的許可權

添加git倉庫

至此,項目就添加完了,至於後續需要其它的構建參數,需要的時候再設置

代碼構建
"jenkins" --> "project name: Mainweb"

"立即構建" --> "build history: #4" --> "進度條倒三角" --> "Console Output"

如果可以看到"SUCCESS"字樣,則說明構建成功

『叄』 如何使用jenkins+maven+git詳細部署設置

當時也是花費了不少時間來配置Jenkins自動打包的問題,覺得還是需要記錄一下。1.安裝Jenkins,這個很簡單,不需要多說。2.下載GitPlugin,GradlePlugin,AndroidEmulatorPlugin(這個可以配置SDK路徑,覺得這個插件挺好),EmailExtensionPlugin郵件提醒插件,自帶的郵件提醒插件確實太弱。3.配置,SDK路徑,JDK路徑,Git路徑,Gradle路徑。配置git:gitconfig–globaluser.name「name」gitconfig–globaluser.emailemail查看:cat/root/.gitconfigroot是指當前的用戶生成公鑰和私鑰:ssh-keygen-trsa-C「email」

『肆』 linux如何搭建git

1、環境准備
伺服器:CentOS 7.3 + git (1.8.3.1)
客戶端:win10 + git (2.17.0.windows.1)
2、伺服器安裝git
yum install -y git
3、創建git用戶,管理 git服務
[root@localhost home]# useradd git
[root@localhost home]# passwd git
4、伺服器創建git 倉庫
設置/home/git/repository-git 為git 伺服器倉庫,然後把 git 倉庫的 owner 修改為 git 用戶。
復制代碼
[root@localhost git]# mkdir repository-git
[root@localhost git]# git init --bare repository-git/
Initialized empty Git repository in /home/git/repository-gt/
[root@localhost git]# chown -R git:git repository-git/
5、客戶端安裝git
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用 Git Bash 作為命令行客戶端。
5.1、選擇一個目錄 F:\project\sell 作為本地倉庫,右鍵進入Git Bash 命令行模式
初始化本地倉庫:git init
5.2、嘗試克隆一個伺服器的空倉庫到本地倉庫
git clone [email protected]:/home/git/repository-gt
第一次連接到目標 Git 伺服器時會得到一個提示:
The authenticity of host '192.168.116.129(192.168.116.129)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/.
Are you sure you want to continue connecting (yes/no)?
選擇 yes:
Warning: Permanently added '192.168.116.129' (RSA) to the list of known hosts.
此時 C:\Users\用戶名\.ssh 下會多出一個文件 known_hosts,以後在這台電腦上再次連接目標 Git 伺服器時不會再提示上面的語句。

『伍』 jenkins+git詳細配置及使用方法是什麼

方法/步驟

  • 安裝jenkins

    參照官網wiki,如下圖:

    安裝後的jenkin在/var/lib/jenkins啟動關閉jenkins:

    sudo /etc/init.d/jenkins startsudo /etc/init.d/jenkins stop

    Jenkins安裝完畢後,可以通過瀏覽器,例如192.168.16.183:8080,此處IP地址為Jenkins所在機器的IP地址。

『陸』 Jenkins Gitlab 前端構建發布

流程:通常是從gitlab/github拉取項目,構建,把產出文件發到伺服器。

一、環境

創建任務之前,要先配置兩項:

問題1:jenkins credentials配置SSH

系統管理 -> Manage Credentials -> 全局憑據 (unrestricted) ->添加或者編輯

注意:這里的key是個大坑,最開始我糾結是填私鑰還是公鑰,發現粘貼進去都不對。(粘貼私鑰時我粘貼的是正文,沒有復制首尾兩行,導致一直報錯。)最後把私鑰整個粘貼進去就對了。

原因:

由於Jenkins的安全策略配置了CSRF跨站點保護。

解決方案:

進入Jenkins,系統管理-->全局安全配置,勾選匿名用戶具有可讀許可權和去掉CSRF防止跨站點請求偽造:

在 /configure 下

這個插件是jenkins連接linux系統的時候使用。
以下針對插件的每個屬性進行說明。

Name
SSH Server的Name屬性就是你希望連接的伺服器。

Source files
這里輸入的是你希望傳到伺服器的文件夾和文件。路勁是相對jenkins的workspace的項目名稱的。例如編譯打包後的路徑為dist文件夾下的jenkinszip.tar.gz,則Surce files填入dist/jenkinszip.tar.gz。

Remove prefix
如果Source files為dist/jenkinszip.tar.gz,但是不想把dist目錄創建到伺服器端,這個時候就可以在Remove prefix里填入dist

Remote directory
這里指定文件將被拷貝到伺服器的路徑。
PS:被拷貝文件在伺服器上的完整路徑=登錄伺服器賬號的默認路徑(就是全局設置的Remote Directory)+當前任務配置的Remote directory。
例如我的伺服器路徑是 /home/wwwroot/aaa
我全局配置Remote Directory 是 /home/wwwroot
當前任務配置的Remote Directory 是 /aaa/

Exec command
這里就是連接伺服器之後需要執行的命令。

注意:這里配置的Secret token和 webhook要填寫到gitlab裡面,路徑如下:

參考文章: https://blog.csdn.net/hou_ge/article/details/103507947

『柒』 搭建git伺服器需要什麼樣的配置

搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git

第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git

第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git

第五步,禁用shell登錄:
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash

改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:
現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就簡單了。

管理公鑰
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。
這里我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。

管理許可權
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持許可權控制。不過,因為Git支持鉤子(hook),所以,可以在伺服器端編寫一系列腳本來控制提交等操作,達到許可權控制的目的。Gitolite就是這個工具。

『捌』 如何搭建Gerrit+Jenkins測試環境

1. 下載Jenkins最新的war包ci.org/display/JENKINS/Starting+and+Accessing+Jenkins介紹了如何啟動Jenkins,建議先創建一個單獨的目錄,存放Jenkins的配置信息,例如在Linux的用戶目錄下創建JenkinsHome,然後設置環境變數"export JENKINS_HOME=$HOME/JenkinsHome"。默認的JenkinsHome是「$HOME/.jenkins」
2. 啟動Jenkins:java -jar jenkins.war,默認埠是8080。
3. 安裝Gerrit Plugin和Git Plugin:
訪問Jenkins主頁,如果你的環境訪問Internet需要代理,請先設置proxy!

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:626
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:356
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:71
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:296
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:787
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:337
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:202
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:798
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:355
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:582