群暉DS218+部署GitLab

歡迎訪問我的GitHub

https://github.com/zq2599/blog_demos

內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼,涉及Java势木、Docker蛛倦、Kubernetes、DevOPS等啦桌;

起因是懶

最近開始折騰GitLab的CI功能溯壶,就打算在家部署一個(gè)GitLab,通常做法是打開電腦甫男,啟動(dòng)GitLab且改,用完再關(guān)閉電腦,總覺得這些操作挺麻煩(您想罵我懶么板驳?您罵得對(duì).....)

群暉解決煩惱

  1. 家里有臺(tái)群暉DS218+又跛,從不關(guān)機(jī),為全家提供穩(wěn)定的圖片和視頻服務(wù)若治,之前已在上面部署了maven私服慨蓝、MySQL,運(yùn)行得很穩(wěn)定端幼,今天就把GitLab也部署在上面吧礼烈,今后可以隨時(shí)想用就用,算得上懶人救星了婆跑。
  2. 下圖是DS218+剛買來(lái)的樣子此熬,兩塊NAS硬盤,一直在穩(wěn)定服務(wù):
在這里插入圖片描述
  1. 下圖是網(wǎng)購(gòu)的內(nèi)存條滑进,現(xiàn)在一共2+8=10G內(nèi)存犀忱,內(nèi)存充足才是敢折騰的底氣:
在這里插入圖片描述

前文鏈接

之前折騰群暉的記錄:

  1. 群暉DS218+部署mysql
  2. 群暉DS218+部署kafka
  3. 群暉DS218+做maven私服(nexus3)
  4. K8S使用群暉DS218+的NFS
  5. 群暉DS218+部署Harbor(1.10.3)

思路

其實(shí)操作很簡(jiǎn)單:GitLab的部署是基于docker-compose的,群暉已帶有docker-compose了扶关,按照官方的部署指南操作即可阴汇,以下幾處是要注意的地方:

  1. 部署操作需要管理員權(quán)限,所以不在網(wǎng)頁(yè)上操作了驮审,而是SSH登錄后臺(tái)進(jìn)行操作鲫寄;
  2. GitLab最好是用域名訪問,如果用IP就意味著文件訪問地址中帶有IP疯淫,一旦IP變了地来,原有的文件訪問地址就無(wú)效了

環(huán)境信息

  1. 群暉系統(tǒng):DSM 6.2.2-24922 Update 4
  2. GitLab:Community Edition 13.0.6

配置host

GitLab中的文件都有訪問地址,用GitLab服務(wù)器的IP作為這個(gè)地址顯然是不合適的(如果GitLab服務(wù)器的IP變了這個(gè)文件的訪問地址就無(wú)效了)熙掺,所以以下兩點(diǎn)需要滿足:

  1. 為GitLab服務(wù)器準(zhǔn)備域名未斑,這里就是給群暉的IP地址準(zhǔn)備域名:<font color="blue">gitlab.synology.com</font>
  2. 確保群暉自己能通過域名訪問到GitLab
  3. 確保所有訪問者都能通過域名訪問到GitLab
  4. 一般是修改訪問者的hosts文件來(lái)達(dá)到域名訪問的目標(biāo),我這里為了省事兒币绩,是在路由器里配置的:<font color="blue">192.168.50.43 gitlab.synology.com</font>

允許SSH登錄

先要設(shè)置允許SSH后臺(tái)登錄:

  1. 如下圖紅框的操作:
在這里插入圖片描述
  1. 如下圖蜡秽,勾選啟用SSH功能府阀,端口就用22:
在這里插入圖片描述
  1. 現(xiàn)在用SSH終端即可登錄群暉了,我這里是在windows電腦上用Xshell6登錄的芽突,您可以選用任意SSH終端工具试浙,賬號(hào)密碼就是能登錄群暉的賬號(hào)密碼,如下圖寞蚌,登錄后田巴,就可以使用日常的linux命令了:
在這里插入圖片描述
  1. 注意上圖的紅框,登錄賬號(hào)的home目錄是<font color="red">/var/services/homes/zq2599</font>

部署

  1. 創(chuàng)建<font color="blue">docker-compose.yml</font>文件挟秤,內(nèi)容如下(大多數(shù)內(nèi)容可以直接使用壹哺,需要修改的地方稍后會(huì)說):
version: '2.3'

services:
  redis:
    restart: always
    image: redis:5.0.9
    command:
    - --loglevel warning
    volumes:
    - redis-data:/var/lib/redis:Z

  postgresql:
    restart: always
    image: sameersbn/postgresql:11-20200524
    volumes:
    - postgresql-data:/var/lib/postgresql:Z
    environment:
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    - DB_EXTENSION=pg_trgm

  gitlab:
    restart: always
    image: sameersbn/gitlab:13.0.6
    depends_on:
    - redis
    - postgresql
    ports:
    - "10080:80"
    - "10022:22"
    volumes:
    - gitlab-data:/home/git/data:Z
    healthcheck:
      test: ["CMD", "/usr/local/sbin/healthcheck"]
      interval: 5m
      timeout: 10s
      retries: 3
      start_period: 5m
    environment:
    - DEBUG=false

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production

    - REDIS_HOST=redis
    - REDIS_PORT=6379

    - TZ=Asia/Kolkata
    - GITLAB_TIMEZONE=Kolkata

    - GITLAB_HTTPS=false
    - SSL_SELF_SIGNED=false

    - GITLAB_HOST=gitlab.synology.com
    - GITLAB_PORT=10080
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
    - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

    - GITLAB_ROOT_PASSWORD=
    - GITLAB_ROOT_EMAIL=

    - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
    - GITLAB_NOTIFY_PUSHER=false

    - GITLAB_EMAIL=notifications@example.com
    - GITLAB_EMAIL_REPLY_TO=noreply@example.com
    - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

    - GITLAB_BACKUP_SCHEDULE=daily
    - GITLAB_BACKUP_TIME=01:00

    - SMTP_ENABLED=false
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_STARTTLS=false

    - OAUTH_ENABLED=false
    - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
    - OAUTH_ALLOW_SSO=
    - OAUTH_BLOCK_AUTO_CREATED_USERS=true
    - OAUTH_AUTO_LINK_LDAP_USER=false
    - OAUTH_AUTO_LINK_SAML_USER=false
    - OAUTH_EXTERNAL_PROVIDERS=

    - OAUTH_CAS3_LABEL=cas3
    - OAUTH_CAS3_SERVER=
    - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
    - OAUTH_CAS3_LOGIN_URL=/cas/login
    - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
    - OAUTH_CAS3_LOGOUT_URL=/cas/logout

    - OAUTH_GOOGLE_API_KEY=
    - OAUTH_GOOGLE_APP_SECRET=
    - OAUTH_GOOGLE_RESTRICT_DOMAIN=

    - OAUTH_FACEBOOK_API_KEY=
    - OAUTH_FACEBOOK_APP_SECRET=

    - OAUTH_TWITTER_API_KEY=
    - OAUTH_TWITTER_APP_SECRET=

    - OAUTH_GITHUB_API_KEY=
    - OAUTH_GITHUB_APP_SECRET=
    - OAUTH_GITHUB_URL=
    - OAUTH_GITHUB_VERIFY_SSL=

    - OAUTH_GITLAB_API_KEY=
    - OAUTH_GITLAB_APP_SECRET=

    - OAUTH_BITBUCKET_API_KEY=
    - OAUTH_BITBUCKET_APP_SECRET=

    - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
    - OAUTH_SAML_IDP_CERT_FINGERPRINT=
    - OAUTH_SAML_IDP_SSO_TARGET_URL=
    - OAUTH_SAML_ISSUER=
    - OAUTH_SAML_LABEL="Our SAML Provider"
    - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    - OAUTH_SAML_GROUPS_ATTRIBUTE=
    - OAUTH_SAML_EXTERNAL_GROUPS=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

    - OAUTH_CROWD_SERVER_URL=
    - OAUTH_CROWD_APP_NAME=
    - OAUTH_CROWD_APP_PASSWORD=

    - OAUTH_AUTH0_CLIENT_ID=
    - OAUTH_AUTH0_CLIENT_SECRET=
    - OAUTH_AUTH0_DOMAIN=
    - OAUTH_AUTH0_SCOPE=

    - OAUTH_AZURE_API_KEY=
    - OAUTH_AZURE_API_SECRET=
    - OAUTH_AZURE_TENANT_ID=

volumes:
  redis-data:
  postgresql-data:
  gitlab-data:
  1. 上述配置中,有四處地方需要您修改艘刚;
  • 第一處:gitlab.ports管宵,這里用宿主機(jī)的10080端口映射容器的http端口,宿主機(jī)的10022端口映射容器的ssh端口
  • 第二處:gitlab.environment.GITLAB_PORT攀甚,要和前面映射的10080端口一致箩朴,這樣GitLab上的文件url中會(huì)帶有10080端口,確保在網(wǎng)頁(yè)上可以正常訪問文件
  • 第三處:gitlab.environment.GITLAB_SSH_PORT云稚,要和前面映射的10022端口一致隧饼,這樣GitLab上給出的倉(cāng)庫(kù)地址中會(huì)帶有10022沈堡,您在客戶端使用git clone命令時(shí)才連接GitLab成功
  • 第四處:gitlab.environment.GITLAB_HOST静陈,配置成前面準(zhǔn)備好的host:gitlab.synology.com
  • 其他參數(shù)我這里暫時(shí)無(wú)需修改,請(qǐng)您自己酌情調(diào)整诞丽,參考文檔:https://github.com/sameersbn/docker-gitlab
  1. 再次確認(rèn)群暉上的域名是可以訪問的(192.168.50.43是群暉的IP地址):
在這里插入圖片描述
  1. 執(zhí)行命令<font color="blue">sudo docker-compose up -d</font>鲸拥,完成GitLab的部署和啟動(dòng);

  2. 等待啟動(dòng)成功僧免,群暉的硬件性能一般刑赶,我這里大約等待10分鐘左右(期間網(wǎng)頁(yè)訪問會(huì)出現(xiàn)502錯(cuò)誤,等啟動(dòng)成功后就好了)懂衩;

  3. 啟動(dòng)成功后撞叨,訪問地址<font color="blue">http://gitlab.synology.com:10080</font>,會(huì)提示設(shè)置root賬號(hào)的密碼:

在這里插入圖片描述
  1. 設(shè)置好密碼后浊洞,就可以用root賬號(hào)登錄了:
在這里插入圖片描述
  1. 如下圖牵敷,請(qǐng)另外注冊(cè)一個(gè)賬號(hào),在后面的實(shí)際操作中用到法希,我這邊注冊(cè)賬號(hào)是zq2599枷餐,郵箱zq2599@gmail.com
在這里插入圖片描述

驗(yàn)證:創(chuàng)建項(xiàng)目

  1. 用新建賬號(hào)登錄,點(diǎn)擊<font color="blue">Create a project</font>:
在這里插入圖片描述
  1. 新建倉(cāng)庫(kù)的信息如下:
在這里插入圖片描述
  1. 在新倉(cāng)庫(kù)的頁(yè)面苫亦,下圖紅框中是該倉(cāng)庫(kù)的地址毛肋,請(qǐng)記下來(lái)怨咪,稍后用到:
在這里插入圖片描述

驗(yàn)證:提交代碼

  1. 找一臺(tái)電腦來(lái)驗(yàn)證提交代碼,我這里找了個(gè)CentOS7服務(wù)器润匙;
  2. 安裝git:yum install -y git
  3. 創(chuàng)建ssh key诗眨,執(zhí)行ssh-keygen -t rsa -C "zq2599@gmail.com",然后一路回車:
在這里插入圖片描述
  1. 賬號(hào)和郵箱做全局配置孕讳,執(zhí)行如下命令:
git config --global user.name "zq2599" \
&& git config --global user.email zq2599@gmail.com
  1. 將文件~/.ssh/id_rsa.pub的內(nèi)容完整復(fù)制到如下位置:
在這里插入圖片描述
  1. 回到客戶端機(jī)器上辽话,克隆項(xiàng)目試試:
git clone ssh://git@gitlab.synology.com:10022/zq2599/test001.git
  1. 如下圖,代碼下載成功:
在這里插入圖片描述
  1. 再來(lái)試試修改內(nèi)容能否成功提交卫病,操作命令如下圖所示:
在這里插入圖片描述
  1. 再去網(wǎng)站上看看油啤,內(nèi)容已經(jīng)成功提交:
在這里插入圖片描述

至此,群暉服務(wù)器上已成功安裝了GitLab蟀苛,接下來(lái)可以愉快的折騰GitLab CI了益咬;

你不孤單,欣宸原創(chuàng)一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 數(shù)據(jù)庫(kù)+中間件系列
  6. DevOps系列

歡迎關(guān)注公眾號(hào):程序員欣宸

微信搜索「程序員欣宸」帜平,我是欣宸幽告,期待與您一同暢游Java世界...
https://github.com/zq2599/blog_demos

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市裆甩,隨后出現(xiàn)的幾起案子冗锁,更是在濱河造成了極大的恐慌,老刑警劉巖嗤栓,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冻河,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茉帅,警方通過查閱死者的電腦和手機(jī)叨叙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)堪澎,“玉大人擂错,你說我怎么就攤上這事∮8颍” “怎么了钮呀?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)昨凡。 經(jīng)常有香客問我爽醋,道長(zhǎng),這世上最難降的妖魔是什么土匀? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任子房,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘证杭。我一直安慰自己田度,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布解愤。 她就那樣靜靜地躺著镇饺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪送讲。 梳的紋絲不亂的頭發(fā)上奸笤,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音哼鬓,去河邊找鬼监右。 笑死,一個(gè)胖子當(dāng)著我的面吹牛异希,可吹牛的內(nèi)容都是我干的健盒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼称簿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扣癣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起憨降,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤父虑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后授药,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體士嚎,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年烁焙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了航邢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骄蝇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出操骡,到底是詐尸還是另有隱情九火,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布册招,位于F島的核電站岔激,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏是掰。R本人自食惡果不足惜虑鼎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炫彩,春花似錦匾七、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至杉允,卻和暖如春邑贴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叔磷。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工拢驾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人改基。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓独旷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寥裂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嵌洼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容