當前位置:首頁 » 雲伺服器 » gitlab伺服器搭建郵件

gitlab伺服器搭建郵件

發布時間: 2023-02-12 20:43:10

1. 學習Linux難嗎

Linux是學習曲線比較陡峭的學科,剛開始學習有些難度 ,入門後就相對比較輕鬆了。學習Linux大部分做的是運維工程師或者雲計算工程師。
運維不僅僅是懂Linux就行,因為還有一大部分的Windows運維,最近看一個報道說,windows的伺服器佔了47.71%。嗯,向windows運維人員致敬。當然我們這篇文章不是說運維除了懂Linux,還要懂Windows,而是涉及運維的其他方方面面。
環境部署
一開始這個世界是開發的,然後才是運維的。
開發實現產品邏輯,將產品開發完成後,然後提交運維進行部署。此時允許就需要准備好部署環境,如部署在Linux伺服器上,安裝相應的軟體,如Apache、Nginx、tomcat、JDK、php、Mysql等等。你不能只裝了軟體吧,還需要看看具體是哪個版本,java 7 和java 8 的差別還是有點的,php5和php7也有些語法不兼容。把軟體都安裝好了,就可以上線了?還是不行。還需要測試吧,那就還需要部署一套測試環境。有些時候,開發環境也是需要運維來部署的。
排錯和調優
事情從來都沒有一帆風順的。

上線沒多久,服務就502了,還不被老闆罵死。盡管你有一肚子的委屈,我只是個運維,代碼不是我寫的,為什麼要我來背這鍋?!委屈歸委屈,服務訪問不了了,就是運維的事。盡快定位問題,解決問題才是王道。怎麼來定位問題呢?最簡單直接的辦法就是看日誌,看系統日誌,看軟體相關的日誌,結合故障現象和經驗,快速的進行定位和恢復。然後就是總結經驗,吸取教訓,寫事故報告。OK,現在你知道,需要對系統環境需要進行一定的調優操作,不再做背鍋俠。
相關技術: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...
備份
做最好的計劃,做最壞的打算。
前不久的gitlab刪庫事件的教訓猶在眼前,丟失了幾小時的數據,雖然大部分的備份策略都失效了,但還是挽救了幾小時前的一個備份,才沒有造成更大的數據丟失和公司損失。我們需要對設備進行備份冗餘,需要對資料庫進行備份及離線備份,需要對網站靜態進行備份冗餘,需要對機房進行備用,能做到雙活,那是更好的啦。
相關技術: rsync, crontab, lvm快照, mysqlmp, extrabackup, 完全備份, 差異備份, 增量備份, 離線異地備份, ...
高可用和集群
沒有永垂不朽,我們不能保證硬體24小時在線,但需要保障服務24小時在線。
出現故障後,如果做好高可用和冗餘,故障自動切換,移除故障節點,那樣也就保障了服務的實時在線。在老闆和用戶不知情的情況下,悄么的把故障處理好的,KPI算是保住了,獎金也許就會有的吧。
相關技術: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各種其他分布式集群方案, ...
監控告警
運維工程師的第一次解放運動。
時刻擔心網站掛掉,一年365天、每周7天、每天24小時,時刻保持精神高度緊張,就算你是神仙都會撐不住的。我們需要一個機器來監督其他的機器工作,我們需要解放我們自己。當有故障發生的時候,通過簡訊、微信、釘釘、郵件等等通知對應的運維工程師來處理,甚至是自動切換或摘除故障節點,然後我們離線對故障節點進行問題排查。
相關技術:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...
安全和審計
狂奔在互聯網的康莊大道上,不過有些人是在裸奔。
不安全的網路環境和伺服器配置,無異於在網路世界裸奔,任何人都可以窺探你的隱私。你的應用是否做了SQL防注入?你的防火牆是否開啟?是否還在用root+密碼的方式登錄伺服器?網站開啟了https么?是否對系統操作進行審計?
相關技術: iptables, firewalld, waf, auditd, 各服務的正確配置, ...
自動化和DevOps
運維工程師的第二次解放運動。
偷懶是社會進步的第一動力。聰明的我們怎麼會讓自己一直在重復枯燥的事情上浪費時間,裝系統、部署環境、發版本、批量操作,把這一切交給程序去實現吧,我們需要的是享受生活。
相關技術: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...
虛擬化和雲服務
正在發生的一場運維革命。
這場革命的發起人是買書的亞馬遜,這傢伙希望賣一切可以賣的東西,包括自己閑置的伺服器資源。現在國內的阿里雲和騰訊雲也發展得如日中天,他們幾乎提供了運維所需要的一切,甚至可以讓一個公司不再需要運維的崗位。你需要伺服器,只需要幾秒鍾,就可以創建一台。你需要資料庫集群,只需要滑鼠點擊幾下,就可以開通。
相關技術:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...

2. docker快速部署gitlab代碼倉庫

GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。

GitLab由烏克蘭程序員DmitriyZaporozhets和ValerySizov開發,它使用 Ruby語言 寫成。後來,一部分用 Go語言 重寫。截止2018年5月,該公司約有290名團隊成員,以及2000多名開源貢獻者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O』ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等組織使用。

Git、Github、Gitlab的區別:

• Git

一種代碼版本管理系統,可以理解為標准或者統稱。

• Github

產品名稱,基於git開發的代碼管理系統,必須公開於互聯網上的公共倉庫,安全較低,私有項目需要另外付費。

• Gitlab

產品名稱,基於git開發的私有代碼管理系統,開源免費、可自行管理的私有倉庫,安全較高。

• 其它Git

msysGit、 Gitee(碼雲)、Gitea、 Gogs、 GitBucket類似於Github、Gitlab

下面我們介紹如何用docker快速部署一套功能強大的gitlab-ce社區版代碼倉庫。

第一步、centos 7.6安裝、配置IP、dns、網關等(略)

第二步、安裝docker安裝,參考作者前幾天的文章《centos 7下安裝docker》

https://www.toutiao.com/i6994343127452566054/

第三步、安裝docker-compose,參考作者前幾天的文章《使用docker-compose運行docker容器》

https://www.toutiao.com/i6994600889604440608/

第四步、下載gitlab-ce 13.12.10官方鏡像

docker pull gitlab/gitlab-ce:13.12.10-ce.0

第五步、建立相關目錄結構,配置目錄許可權

mkdir -p /data/gitlab/config

mkdir -p /data/gitlab/data

mkdir -p /data/gitlab/logs

第六步、建立docker-compose.yml

cd /data/gitlab && vi docker-compose.yml

docker-compose.yml具體配置和說明放本文章後面。

第七步、使用dc up -d起動容器

cd /data/gitlab && dc up -d

等待幾分鍾後服務初始化完成,使用宿主機IP在瀏覽器上進入gitlab,配置root管理員的密碼。一套功能強大的gitlab代碼倉庫搭建完成,關於gitlab的具使用,後面會推出相關視頻/文章說明。

附:docker-compose.yml

version: '3.6' #配置編排的版本

services:

gitlab:

image: gitlab/gitlab-ce:13.12.10-ce.0

TZ: 'Asia/Shanghai' #配置容器時區,不會有8小時差異

GITLAB_OMNIBUS_CONFIG: |

external_url 'http://172.18.95.158' #伺服器訪問地址,也可以是域名

gitlab_rails['time_zone'] = 'Asia/Shanghai' #配置gitlab服務的時區

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" #管理員郵箱smtp地址

gitlab_rails['smtp_port'] = 465 #管理員郵箱伺服器埠

gitlab_rails['smtp_user_name'] = "[email protected]" #管理員郵箱地址

gitlab_rails['smtp_password'] = "ZSfS11AssBXX" #管理員郵箱密碼,配置後才可以給用戶發郵件等信息

gitlab_rails['smtp_domain'] = "xxxxxx.com" #管理員郵箱域名

gitlab_rails['smtp_authentication'] = "login" #管理員郵箱的驗證方式為login

gitlab_rails['smtp_enable_starttls_auto'] = true #使用安全加密方式登陸管理員郵箱

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '[email protected]' #管理員郵箱賬號

gitlab_rails['gitlab_shell_ssh_port'] = 22

ports: #放開gitlab 80埠,後面我們用80埠訪問gitlab

- '80:80'

volumes: #掛載配置、數據持久化、日誌目錄

- ./config:/etc/gitlab

- ./data:/var/opt/gitlab

- ./logs:/var/log/gitlab

3. 如何在gitlab裡面設置郵件提醒

安裝環境:CentOS 6.5最小化安裝
Gitlab 官方一鍵安裝包

sudo yum install curl openssh-server postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
sudo gitlab-ctl reconfigure

郵件配置

#創建配置文件gitlab.rb
mkdir /etc/gitlab/gitlab.rb
#公司用的是騰訊企業郵箱
vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "****"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_enable_starttls_auto'] = true

# If your SMTP server does not like the default 'From: gitlab@localhost' you
# can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'

4. GitLab搭建個人(或公司)版本控制系統

說明:Git,Github,GitLab三者關系。

Git - 是一款自由和開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目。是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。(svn是集中化的版本控制系統)。

GitHub - 是一個面向開源及私有軟體項目的託管平台(也就一個網站),提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等。它可以託管各種git庫,並提供一個web界面。被戲稱為「全世界最大的同性交流社區」。

GitLab - 基於Git的項目管理軟體。使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。

當然啦國內開源中國出的「碼雲」,第一次聽得人還以為是「馬雲」。我醬紫。它跟Github功能差不多,都能建立公有和私有的倉庫。不過嘛感覺有點封閉,社區沒有Github熱鬧。

有的人就說啦,我完全可以在Github或者GitLab上做遠端代碼倉庫,為啥還要倒騰GitLab自建代碼託管系統?就一個字: 「代碼安全性」(公司保密規定)。 對於公司來說,GitLab讓開發團隊對他們的代碼倉庫擁有更多的控制,相比於GitHub,它有不少的特色:

一、自建代碼託管系統都需要做些什麼工作?

1. 選擇開源軟體

Git 大家族的 GitLab ,它提供了完善的用戶許可權管理,除了涵蓋 Git 所有的功能,同時又提供方便的後台管理。分別有CE(社區版)、EE(企業版)、OM(RPM 包完整版)三個版本,目前市面上開發者們的普遍選擇是使用 CE 版的源碼,成本較低且相對方便。

2. 硬體設施方面

如果是對於中小型企業來講,自建機房一般成本較高,所以除非是大型集團企業。現在市面上存在太多的雲伺服器廠商,平均價格多在 5000元/年以上,都是不錯的選擇。

可能遇到的坑:

3.由於個人眼界以及信息不對稱,目前大部分公司都是在公司區域網內自行用GitLab搭建代碼託管系統。部署Gitlab 是對伺服器有配置要求的建議是CPU兩核,內存4G以上。個人經驗,勿噴啦。

二、搭建過程(這里僅是作者接觸的,其實還有很多更高級的盤法)

Gitlab的服務構成

1.搭建方法分為:傳統方式安裝GitLab和Docker安裝(推薦)。

2.傳統安裝過程(平台使用centos7安裝)

安裝和配置必要的依賴項:

安裝Postfix以發送通知郵件:

在安裝Postfix期間,可能會出現配置屏幕。選擇「Internet Site」並按enter鍵。使用您的伺服器的外部DNS以「mail name」並按enter。如果出現額外的屏幕,繼續按enter鍵接受默認值。

添加GitLab鏡像源並安裝gitlab伺服器:

注意這里設置的埠不能被佔用,默認是8080埠,如果8080已經使用,請自定義其它埠,並在防火牆設置開放相對應得埠。

重置並啟動GitLab:

訪問 GitLab頁面:如果沒有域名,直接輸入伺服器ip和指定埠進行訪問

獲取/修改超級管理員root的密碼:

最後我們使用默認的賬號:root 和剛剛設置好的密碼12345678進行登錄。

後面的步驟配置SSH key,git Bash的global config等初始化設置跟GitHub一樣。可是還有一點就是「漢化」。(英文不好的小夥伴)但是有一定風險,後面我打開報502錯誤。有兩種方法:用git比對出英文與中文的補丁,將英文打補丁。第二是直接下載中文版,替換英文。

3.Docker安裝(推薦)

(1)配置docker鏡像

直接從 docker hub 獲取的話速度非常慢,所以需要配置一個鏡像。我使用的是 cloud.io提供的加速器,速度很快。

(2)獲取 GitLab 鏡像

下載完成後,查看鏡像列表

(3)啟動容器

3個--publish指定容器與主機的埠映射,分別是 http、https、ssh

3個--volume指定數據卷的映射,分別是 gitlab 的 配置、日誌、數據

(4)配置外部訪問 URL

修改 gitlab 配置文件:

找到 external_url 這一項修改為自己伺服器的訪問地址:

保存後,重啟容器

(5)訪問

初次訪問時,gitlab 要求我們重置管理員密碼,修改完成後登錄。默認用戶root。

當然以上為個人實驗,公司裡面大部分為CTO等大佬已經搭建完畢,我們主要是折騰。

最後推薦個人用很順手的工具: SourceTree (可視化界面的Git),當然啦要想成為大牛或者裝13也好,還是從Git Bash里敲命令行。

5. 如何在win7上安裝gitlab伺服器

GitLab是由Ruby語言開發的基於Linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。
但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。
在網上發現了這篇文檔——Import bare repositories into your GitLab instance,並按之進行了操作。
1)設置存放代碼庫的主目錄
vi /etc/gitlab/gitlab.rb

比如這里設置為:git_data_dir "/gitlab/repos"
2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。
這時會在 /gitlab/repos 下創建 /gitlab/repos/repositories/cnblogs 文件夾
然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs
3)將現有的所有git項目文件復制到這個文件夾
cp -r /data/git/* /gitlab/repos/repositories/cnblogs

4)修改一下復制過來的文件夾的所有者:
chown -R git:git /gitlab/repos/repositories/cnblogs

5)運行GitLab導入命令
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos

等了一段時間之後,顯示done,卻一個項目也沒導入進來。
經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。於是,將要導入的項目文件夾名稱加上.git後綴,再次進行導入。
結果顯示導入成功,比如:
Processing cnblogs/CNBlogsJob.git
* Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!

可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。
後來,實在沒辦法,改為手動導入,導入方法如下:
1)在GitLab站點上創建與要導入的項目同名的項目。
2)進入剛創建的項目文件夾
cd /gitlab/repos/repositories/cnblogs/項目名稱.git

3)刪除該文件下的所有文件
rm -rf *

4)將要導入的項目文件夾下的所有文件復制過來
cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git

就這樣將項目一個一個地導入進來。
5)導入完成後,修改一下導入的所有項目的文件所有者
chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客戶端無法進行git push。
就這樣手動地完成了現有Git項目的導入。
備註:操作系統是CentOS 6.2,GitLab版本是7.8.4。

6. Python培訓線上和線下的區別

一、可以利用自己的休息時間來聽課,並且一般線上培訓都是有錄像的,錯過也可以通過回放的方式再次觀看
二、培訓價格相對於線下的也是要便宜一些的,
缺點也是比較明顯,學習的時間線會被拉得很長,對於想要靠Python技術找工作的小夥伴來說可能會無法接受,還有另外一點,就是線上培訓的學生也是很多的,大家基本都是靠公屏打字進行交流,有時候你的問題會被老師認為沒有價值或者是壓根就沒看到被忽略掉,並且自己學習的時候可能會覺得沒有學習氣氛,導致有的時候自己不太想學習。
那麼線下Python培訓呢,其實就是相對於線上培訓的說法,也就是我們傳統的學習方法,類似我們之前上學時候的模式,大家在一個教室里聽老師的課程,好處就是大家在一起學習,並且由於大家都是來學習Python來找工作的,大家的學習氣氛一般都會不錯,可以讓好多自製力不是太好的小夥伴沉下心來進行學習Python知識,並且有的小問題可以和同校之間相互套路,解決不掉,大家可以當堂就問老師,直接把問題解決,而不用讓問題一直存在,一直拖著,可以做到讓問題不過夜。唯一不好的點就是學費會相對於線上貴一點兒,畢竟要吃飯和住宿的花費,但是中公優就業IT培訓提供免費食宿,並且可以讓自己早點兒學完去找工作,能夠進入Python相關工作繼續進行學習,會讓自己進步的更快。
所以說兩種培訓方式的優缺點都是十分明顯的,大家想要學習Python就需要根據自身條件進行去選擇。

7. 如何在gitlab裡面設置郵件提醒

首先綁定你的郵箱,有一個設置是有關注或者信息時郵件通知你,勾上就可以了

8. 搭建GitLab伺服器

GitLab是GitHub的免費私有庫替代方案,並且安裝與配置都很方便。

GitLab要求最少4GB內存,支持小團隊使用沒問題,實測2GB內存的VPS基本沒法用,開swapfile也不行,動不動就60秒超時。因此4GB內存是必須的。

關於這一點,內存大戶主要是Unicorn,基於ruby的http伺服器。Unicorn會在啟動後預先佔用大部分內存,內存會隨著使用逐漸增長,並且不會釋放。根據GitLab和Unicorn的官方文檔,這不是它們的鍋,那麼這個鍋可能是ruby和rails了。解決方法是unicorn-work-kill,會根據請求次數和內存佔用自動重啟Unicorn。Omnibus版的GitLab是默認開啟的。

GitLab分為社區版和企業版,在未付費的情況下,兩者的功能是一樣的。並且社區版整合了CI/CD,因此可以滿足絕大部分的開發需求。

安裝包主要包括Omnibus整合包,Docker、AWS等的雲鏡像,以及一些第三方維護的版本。其中Omnibus直接整合了所有服務端組件,適合自用和練手。

安裝以Omnibus整合包為例,操作系統為Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 這幾個組件:

不過伺服器系統一般自帶,所以是可選的。

郵件服務,用於GitLab發送找回密碼的郵件:

不過如果伺服器沒有域名的話,大部分郵箱會拒收郵件,而管理員帳號可以直接重置其他賬號的密碼,所以是可選的。

官方提供的腳本

這個腳本會自動添加源到apt 的source list,以及安全key。另外,如果自己伺服器在國內,腳本會自動添加清華的鏡像,速度還行。

先更新apt緩存

推薦使用 apt 而不是 apt-get ,前者大多數情況下更簡單一點。

然後是安裝:

其中 EXTERNAL_URL ,改成自己的域名。沒有域名的話,可以直接設置成IP的形式: http://1.2.3.4 ,這個推測跟nginx服務以及GitLab中的項目地址有關,所以最好正確設置。當然也可以之後在配置文件里更改。

安裝完成後,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方還有一個關於 unicorn 的優化建議:

默認值是2,如果伺服器只用於GitLab的話,官方建議是CPU核心數加一,可以提高伺服器的響應速度。不過如果內存只有4G,或者伺服器同時承載其他服務,就不要改了,以免內存不足。另外,這個參數最小值是2,設為1,伺服器可能會卡死。

配置完成後,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果沒有報錯的話,GitLab就配置完畢並且正常運行了。接下來可以打開瀏覽器開始訪問了。

熱點內容
傳奇裝備強化腳本 發布:2024-04-28 18:34:29 瀏覽:328
QQ如何撤銷以儲存的密碼 發布:2024-04-28 18:32:13 瀏覽:321
ttsandroid中文 發布:2024-04-28 18:30:38 瀏覽:766
修改密碼後為什麼連接不了 發布:2024-04-28 18:16:48 瀏覽:743
cfm安卓轉蘋果在哪個買 發布:2024-04-28 18:07:15 瀏覽:161
編譯器錯誤都是什麼意思 發布:2024-04-28 17:31:30 瀏覽:74
伺服器不能復制粘貼到本機是怎麼回事 發布:2024-04-28 17:24:50 瀏覽:15
房產中介管理系統源碼 發布:2024-04-28 17:23:53 瀏覽:77
文件傳輸java 發布:2024-04-28 17:19:24 瀏覽:195
存儲過程中的is 發布:2024-04-28 17:13:45 瀏覽:406