安裝Gitlab(via dockerimage)龟梦,實(shí)現(xiàn)Auto Pipeline

準(zhǔn)備機(jī)器,信息如下:

root@server:~# hostnamectl
   Static hostname: server.local
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 7b0c392aff5f742bb78a87e65b929466
           Boot ID: bef54cfd95454cbc92e14b5091745b67
    Virtualization: vmware
  Operating System: Ubuntu 16.04.5 LTS
            Kernel: Linux 4.4.0-134-generic
      Architecture: x86-64

更改ssh server端口,避免與gitlab ssh端口沖突

root@server:~# vim /etc/ssh/sshd_config
...(省略)
# What ports, IPs and protocols we listen for
Port 2222
...(省略)

重啟sshd服務(wù)變更端口生效

root@server:~# systemctl restart sshd.service

設(shè)置從客戶端ssh免密到server

#確保通過名稱server.local訪問到服務(wù)器
gitadmin@DESKTOP-PCPO8BK:~$ sudo vim /etc/hosts
192.168.193.200 server.local

#更改ssh客戶端連接ssh服務(wù)器的默認(rèn)關(guān)口
gitadmin@DESKTOP-PCPO8BK:~$ vim .ssh/config
Host server.local
    Port 2222

#生成密鑰夺欲,-C 備注關(guān)聯(lián)用戶
gitadmin@DESKTOP-PCPO8BK:~$ ssh-keygen -C "simon.zhu@xxxx.com"

#copy公鑰到服務(wù)器
gitadmin@DESKTOP-PCPO8BK:~$ ssh-copy-id root@server.local

#測(cè)試免密連接
gitadmin@DESKTOP-PCPO8BK:~$ ssh root@server.local
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-134-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

38 packages can be updated.
28 updates are security updates.

New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sat Oct 27 13:00:15 2018 from 192.168.193.1
root@server:~#

在服務(wù)器安裝Docker
在服務(wù)器安裝Docker Compose
給服務(wù)配置大內(nèi)存囱淋,盡量使用內(nèi)存,提高性能

以下安裝MTA(smtp服務(wù)器)樊拓,為Gitlab準(zhǔn)備郵件通知功能

apt install -y postfix
#將docker的ip(一般以172開頭)設(shè)置為可信網(wǎng)絡(luò)纠亚,以便smtp服務(wù)器接收gitlab發(fā)出的投遞請(qǐng)求
root@server:~# vim /etc/postfix/main.cf
mynetworks = 172.0.0.0/8 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
root@server:~# systemctl restart postfix.service

運(yùn)行Gitlab Runner

root@runner1:~/runner# vim docker-compose.yml
version: '3.7'
services:
  runner:
    image: gitlab/gitlab-runner:alpine-v11.4.2
    restart: always
    extra_hosts:
      - "server.local:192.168.193.200"
    environment:
      - RUNNER_NAME=Docker Executor (Docker in Docker)
    volumes:
      - /srv/gitlab-runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
root@runner1:~/runner# docker-compose up -d

啟動(dòng)Gitlab

root@server:~# mkdir -p ci
root@server:~# cd ci/
root@server:~/ci# vim gitlab.yml
version: '3.7'
services:
  web:
    image: 'gitlab/gitlab-ce:11.4.0-ce.0'
    restart: always
    hostname: 'server.local'
    extra_hosts:
      #郵件通知服務(wù)器地址
      - "smtp.server:192.168.193.200"
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.193.200'
        gitlab_rails['smtp_enable'] = true;
        gitlab_rails['smtp_address'] = 'smtp.server';
        gitlab_rails['smtp_port'] = 25;
        gitlab_rails['smtp_domain'] = 'server.local';
        gitlab_rails['smtp_tls'] = false;
        gitlab_rails['smtp_openssl_verify_mode'] = 'none'
        gitlab_rails['smtp_enable_starttls_auto'] = false
        gitlab_rails['smtp_ssl'] = false
        gitlab_rails['smtp_force_ssl'] = false
        gitlab_rails['ldap_enabled'] = true
        gitlab_rails['ldap_servers'] = YAML.load <<-EOS
        main:
          label: 'ldap.mycom.com'
          host: 'ldap'
          port: 389
          uid: 'uid'
          encryption: 'plain'
          bind_dn: 'cn=admin,dc=mycom,dc=com'
          password: '1'
          active_directory: false
          allow_username_or_email_login: true
          lowercase_usernames: true
          base: 'cn=admin,dc=mycom,dc=com'
          user_filter: ''
        EOS
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - './gitlab/config:/etc/gitlab'
      - './gitlab/logs:/var/log/gitlab'
      - './gitlab/data:/var/opt/gitlab'

#啟動(dòng)Gitlab
root@server:~/ci# docker-compose -f gitlab.yml up -d

增加ldap方式的Gitlab認(rèn)證授權(quán),啟動(dòng)ldap服務(wù)

root@server:~/ci# vim ldap.yml
version: '3.7'

services:
  ldap:
    image: "osixia/openldap:1.2.2"
    restart: always
    environment:
      LDAP_ORGANISATION: mycom
      LDAP_DOMAIN: mycom.com
      LDAP_BASE_DN: mycom.com
      LDAP_ADMIN_PASSWORD: "admin"
      LDAP_OPENLDAP_UID: 0
      LDAP_OPENLDAP_GID: 0
      LDAP_TLS: "false"
      LDAP_CONFIG_PASSWORD: "admin"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./ldap/database:/var/lib/ldap
      - ./ldap/conf:/etc/ldap/slapd.d
    expose:
      - "389"
#    network_mode: "host"
#    ports:
#      - 389:389

  phpldapadmin:
    image: "osixia/phpldapadmin:0.7.2"
    restart: always
    environment:
      PHPLDAPADMIN_HTTPS: "false"
      PHPLDAPADMIN_LDAP_HOSTS: "ldap"
    volumes:
      - /etc/localtime:/etc/localtime:ro
#    network_mode: "host"
    ports:
#      - 6443:443
      - 6080:80

#啟動(dòng)ldap服務(wù)
root@server:~/ci# docker-compose -f ldap.yml up -d

在ldap服務(wù)添加用戶


Login DN:cn=admin,dc=mycom,dc=com;Passwords:admin

image.png

用在ldap中添加的用戶登陸GItlab


用郵箱和密碼登陸

image.png

啟動(dòng)Runner
準(zhǔn)備另一臺(tái)機(jī)器筋夏,軟件環(huán)境與上面Server相同(即安裝好Docker和Docker Compose)

root@runner1:~# hostnamectl
   Static hostname: runner1.local
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 7b0c392aff5f742bb78a87e65b929466
           Boot ID: 11957514ccc14a59ae62789bb4a311fb
    Virtualization: vmware
  Operating System: Ubuntu 16.04.5 LTS
            Kernel: Linux 4.4.0-134-generic
      Architecture: x86-64
root@runner1:~# mkdir -p runner/
root@runner1:~# cd runner/
root@runner1:~/runner# vim docker-compose.yml
version: '3.7'
services:
  runner:
    image: gitlab/gitlab-runner:alpine-v11.4.2
    restart: always
    extra_hosts:
      - "server.local:192.168.193.200"
#      - "gitlab.mycom.com:192.168.193.200"
    environment:
      - RUNNER_NAME=Docker Executor (Docker in Docker)
    volumes:
      - /srv/gitlab-runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
root@runner1:~/runner# docker-compose up -d

注冊(cè)Runner
(token需要GItlab的root用戶通過Standard登陸查看)


image.png
root@runner1:~/runner# docker exec -it runner_runner_1 bash
bash-4.4# gitlab-runner register -n \
>   --url http://server.local/ \
>   --registration-token Qmx8nyxdCypHLpzyH5eH \
>   --executor docker \
>   --description "My Docker Runner(dind executor)" \
>   --docker-image "docker:stable" \
>   --docker-privileged
Runtime platform                                    arch=amd64 os=linux pid=17 revision=cf91d5e1 version=11.4.2
Running in system-mode.

Registering runner... succeeded                     runner=Qmx8nyxd
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

通過Gitlab查看注冊(cè)的Runner


image.png

登陸Gitlab蒂胞,注冊(cè)ssh公鑰,創(chuàng)建項(xiàng)目条篷,并克隆到本地骗随,創(chuàng)建.gitlab-ci.yml

gitadmin@DESKTOP-PCPO8BK:~/pj1$ vim .gitlab-ci.yml

push到Gitlab蛤织,Gitlab自動(dòng)運(yùn)行pipeline(編譯,測(cè)試鸿染,打包指蚜,發(fā)布)

image.png

后續(xù)打算繼續(xù)如下實(shí)驗(yàn)
1,通過redmine提出功能需求
2涨椒,基于主分支摊鸡,創(chuàng)建開發(fā)分支,完成開發(fā)蚕冬,靜態(tài)代碼分析免猾,測(cè)試
3,創(chuàng)建merge request到master
4囤热,確認(rèn)merge request通過猎提,自動(dòng)關(guān)閉redmine的issue

待完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旁蔼,一起剝皮案震驚了整個(gè)濱河市锨苏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棺聊,老刑警劉巖伞租,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異躺屁,居然都是意外死亡肯夏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門犀暑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驯击,“玉大人,你說我怎么就攤上這事耐亏』捕迹” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵广辰,是天一觀的道長(zhǎng)暇矫。 經(jīng)常有香客問我,道長(zhǎng)择吊,這世上最難降的妖魔是什么李根? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮几睛,結(jié)果婚禮上房轿,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好囱持,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布夯接。 她就那樣靜靜地躺著,像睡著了一般纷妆。 火紅的嫁衣襯著肌膚如雪盔几。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天掩幢,我揣著相機(jī)與錄音逊拍,去河邊找鬼。 笑死粒蜈,一個(gè)胖子當(dāng)著我的面吹牛顺献,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枯怖,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼能曾!你這毒婦竟也來了度硝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤寿冕,失蹤者是張志新(化名)和其女友劉穎蕊程,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驼唱,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藻茂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玫恳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辨赐。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖京办,靈堂內(nèi)的尸體忽然破棺而出掀序,到底是詐尸還是另有隱情,我是刑警寧澤惭婿,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布不恭,位于F島的核電站,受9級(jí)特大地震影響财饥,放射性物質(zhì)發(fā)生泄漏换吧。R本人自食惡果不足惜蝉衣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一瞧挤、第九天 我趴在偏房一處隱蔽的房頂上張望奴拦。 院中可真熱鬧叭披,春花似錦雀摘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乖篷,卻和暖如春响驴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撕蔼。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工豁鲤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鲸沮。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓琳骡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親讼溺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子楣号,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359