搭建httpsgit伺服器搭建
『壹』 在Linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
『貳』 手把手教你在 CentOS8 搭建 Gitlab 伺服器
寫在前面的話很多 IT 人從業 多年也許都還沒有親自搭過一次 Gitlab 伺服器,我就是其中之一!通常都是入職後,拿到上面給的 Git 地址把項目 clone 下來!然後日復一日的 crud 搬磚,直到離職。也許用了幾百年 Git 了,但是從來沒有親自部署過 Gitlab 伺服器!雖然現在社會分工越來越細,部署 Gitlab 伺服器通常都是運維的兄弟去做了,但如果你去一家創業公司,很可能就要你來部署的!所以該走的路我們還是得走一下!
現在來正式從 「零」 開始搭建 Gitlab 伺服器: 首先來看看Gitlab 和 Github 的區別,一句話來概括就是:
Gitlab 是給企業私有化部署的 Git 伺服器; Github 是互聯網在線版的 Git 伺服器!
Github 對於開源項目建倉是免費使用的,那麼 Gitlab 收不收費呢?分布式版本控制方面的功能 Gitlab 也是免費使用的,提供了社區版 (Gitlab CE) 給大家!Gitlab 現在可強大了,已經有自己成套的 DevOps 落地解決方案 (提高生產力的利器),但是這部分功能是在收費的旗艦版 / 企業版 (Gitlab EE) 上提供的!就像 Github 建私有化倉庫的功能也是收費的一樣,很正常!
不啰嗦了,快速開始吧:進入官網如下圖,按箭頭依次點擊:官方建議使用至少 4GB 的可用內存來運行 Gitlab,我們選用伺服器時就要注意了,至少要 4GB 以上。點擊CentOS 8 一直往下滑
在安裝步驟的最後,有一個短短的鏈接,寫著 "CE or EE",似乎有個 CE 版的入口,點進去如下圖:新頁面前面的好幾段依然在講使用旗艦版 (企業版 Gitlab EE) 有多少好處.... 直到最後才放了一個免費社區版 (Gitlab CE) 的鏈接 「Install GitLab Community Edition」,藏得這么深,這是怕別人知道啊!續繼點進去:繼續點:伺服器准備好後,按著官方 Gitlab CE 版的安裝說明進行安裝即可,其實很簡單,認真算起來只有三步 (由於我是 root 身份,所以不用 sudo):
第一步安裝和啟用 policycoreutils、openssh-server 和 openssh-clients 組件,並將它們開放防火牆 (不要忘了 reload 防火牆):
dnf install -y curl policycoreutils openssh-server openssh-clients# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshdsystemctl enable sshdsystemctl start sshd# Check if opening the firewall is needed with: sudo systemctl status firewalld firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https systemctl reload firewal與郵件通知相關的 Postfix 組件其實可以暫時不用安裝和配置,這個可以放到後面再來配置一個外部的 SMTP 伺服器:
dnf install postfix systemctl enable postfix systemctl start postfix第二步使用 curl 工具下載並配置 Gitlab CE 版 RPM 安裝包的倉庫配置腳本 (請確認你的伺服器網路通暢,注意這只是 RPM 安裝包的倉庫配置腳本,並不是真正的安裝包)
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash第三步安裝 Gitlab CE 版並指定外部訪問的 URL 地址,這里注意一下:外部訪問 URL 地址使用一個自定義的域名,即使該域名實際上沒有也沒關系!另外如果你的伺服器沒有 https 相關的證書,那就不要用 https,直接用 http 協議!客戶端使用時你可以在 HOST 里做一下映射的,當然,有真實可以的域名就最好了!為什麼要用域名來指定外部訪問 URL 地址呢?因為後面你使用 Gitlab 時會發現這是一個明智的選擇!
EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ce到這里你會發現要從第二步中配置的國外站下載多達 700M 的 gitlab-ce 包是有多麼的艱難,預計耗時估計要 10 幾個鍾,如果沒有科學上網的話還是要採用別的方法!
蝸牛速度是無法忍受的,Ctrl+C 掐斷下載過程吧,換其它方法:
自己先從其他地方下載到 gitlab-ce 的 rmp 包,再上傳到伺服器進行安裝;
使用一個國內鏡像地址進行在線安裝;
這里我們講一下第二種辦法,使用國內鏡像地址進行在線安裝,這里我們選擇清華大學提供的鏡像伺服器,因為它提供了比較全面的使用說明 ( https://mirror.tuna.tsinghua.e.cn/help/gitlab-ce/),現在我們按說明來安裝一下 Gitlab CE 版 (以下步驟是從承接上面的第二步開始的):
新的第二步使用 vi 或 vim 新建並編輯 yum 源配置文件 /etc/yum.repos.d/gitlab-ce.repo
# vim /etc/yum.repos.d/gitlab-ce.repo填入以下 yum 源配置信息:
[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.e.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1新的第三步使用 yum 包管理器安裝 Gitlab CE 版
# yum makecache# yum -y install gitlab-ce在 「新的第三步」 里比原來的第三步少了個東西,啥東西呢?細心的同學肯定發現了,沒有配置 Gitlab 伺服器的外部訪問地址 ( EXTERNAL_URL)!不要急,等待 Gitlab 裝完後我們再去配一下就好了!國內鏡像還是比較快的,幾分鍾就下載並裝好!
好了,現在該來補上 「新的第三步」 里缺失的 Gitlab 伺服器的外部訪問地址 (EXTERNAL_URL),在哪裡配置呢?熟悉 Linux 伺服器各目錄作的人應該都能猜到:Gitlab 這么全球通用的版本控制軟體,配置文件應該會也按照 Linux 約定放在 /etc 目錄中吧!使用 cd 到 /etc 目錄看一看或用 ls /etc/gitl 再 tab 一下就知道了!
# ls /etc/gitlab/gitlab.rb果然是有一個 Gitlab 的配置文件!使用 cat 命令查看一下發現內容不是一般的多,眼睛都會看瞎!那麼我們用 grep 命令先過濾出包含外部訪問地址 (EXTERNAL_URL) 配置內容先:
# grep -i 'EXTERNAL_URL' /etc/gitlab/gitlab.rb ##! For more details on configuring external_url see:##! EXTERNAL_URL will be used to populate/replace this value.external_url 'http://gitlab.example.com'# registry_external_url 'https://registry.example.com'# pages_external_url "http://pages.example.com/"# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'# gitlab_pages['gitlab_server'] = nil # Defaults to external_url# mattermost_external_url 'http://mattermost.example.com'# When the registry is automatically enabled using the same domain as `external_url`,# For example, if external_url is the same for two secondaries, you must specify# If it is blank, it defaults to external_url.現在確認與外部訪問地址 (EXTERNAL_URL) 相關的內容就這么多,動手前先用 cp 命令備份一下 /etc/gitlab/gitlab.rb 文件,因為後面我們要做字元串直接替換這種高險操作!有備無患!
# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak# ls /etc/gitlab/gitlab.rbgitlab.rb.bak現在使用 sed 命令替換 /etc/gitlab/gitlab.rb 文件中的 http://gitlab.example.com 為 http://gitlab.xxxxx.com ? ,xxxxx為你的域名。
sed 命令字元串替換格式: sed -i "s$ 要查找的欄位 $ 替換成的欄位 & g" 文件名 ,-i 表示是 in place edit 的意思,即就地編輯更改;參數里開頭的 s 是 search 的意思,可以換成 d 表示 delete,最後的 g 是 globa 的意思,即全文搜索;
dnf install postfix systemctl enable postfix systemctl start postfix0完了後,我們再用 grep 命令先篩選一下與外部訪問地址 (EXTERNAL_URL) 相關的內容:
dnf install postfix systemctl enable postfix systemctl start postfix1使用 gitlab-ctl 工具根據修改後的配置文件重新配置 gitlab 服務實例使配置生效:
dnf install postfix systemctl enable postfix systemctl start postfix2還有其他一些常用命令如下查看狀態:
dnf install postfix systemctl enable postfix systemctl start postfix3啟動服務:
dnf install postfix systemctl enable postfix systemctl start postfix4重啟服務:
dnf install postfix systemctl enable postfix systemctl start postfix5停止服務:
dnf install postfix systemctl enable postfix systemctl start postfix6列出所有服務:
dnf install postfix systemctl enable postfix systemctl start postfix7最後從虛擬機的宿主機瀏覽器上用 IP 地址或域名 (用域名的話需要先在宿主機的 /etc/hosts 配置域名與 IP 地址映射,所以實際上還是 IP) 訪問一下 gitlab 服務:訪問成功如下圖 ,密碼在 /etc/gitlab/initial_root_password 文件中,登陸後可修改:
附加語言改成中文: 進入 Preference,翻到最後,找到 Language,設置簡體中文並保存。
原文:https://juejin.cn/post/7099630956088131598『叄』 自己搭建的git伺服器怎麼使用
Git沒有客戶端伺服器端的概念,但是要共享Git倉庫,就需要用到SSH協議(FTP , HTTPS , SFTP等協議也能實現Git共享,此文檔不討論),但是SSH有客戶端伺服器端,所以在windows下的開發要把自己的Git倉庫共享出去的話,就必 須做SSH伺服器。
一、安裝GIT
Windows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安裝要點步驟
安裝完成後,可以使用Git bash在命令行模式下操作git
二、安裝CopSSH
安裝CopSSH之前先確保防火牆開啟了SSH埠,這個雖然不影響CopSSH的安裝,但是影響SSH訪問,所以寫在前面。
CopSSH是windows下的SSH伺服器軟體,下載地址之,本文使用的是Copssh_4.1.0_Installer.exe,
安裝完成後,到控制面板中新建一個管理員賬戶root,用這個賬戶來共享SSH。然後你在賬戶管理中會看到之前的SvcCOPSSH賬戶。
將root用戶添加到CopSSH用戶中,為簡單操作,允許使用密碼認證方式
若是不允許密碼認證,則需要使用公鑰密鑰方式認證,
三、CopSSH中使用GIT
現在已經安裝GIT和CopSSH,接下來需要做的就是讓CopSSH可以使用GIT的命令,這樣不僅能夠遠程SSH管理GIT伺服器,而且可以將GIT倉庫通過SSH共享。具體的操作方法是將GIT的某些命令程序和動態鏈接庫復制到CopSSH安裝目錄下即可。
l 將$ Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到$ICW\bin目錄下
l 將$Git\bin目錄下的libiconv-2.dll復制到$ICW\bin目錄下
重啟CopSSH即可
『肆』 如何在本地環境配置github
1、首先看你自己時候有賬號,沒有賬號的話到https://github.com/注冊Git賬號。