GitLab 是一個用於倉庫管理系統的開源項目,使用Git做爲代碼管理工具,並在此基礎上搭建起來的web服務。
系統環境準備
建議:內存4G以上否則帶不動html
[root@V1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@V1 ~]# uname -r 3.10.0-693.el7.x86_64
#關閉firewalld和NetWorkManagerlinux
[root@V1 ~]# systemctl stop firewalld [root@V1 ~]# systemctl stop NetWorkManager
#永久關閉nginx
[root@V1 ~]# systemctl disable firewalld [root@V1 ~]# systemctl disable NetWorkManager
#關閉selinuxgit
[root@V1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@V1 ~]# setenforce 0
#更換阿里源和下載epel源web
[root@V1 ~]#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup [root@V1 ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@V1 ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#yum源更新,重啓系統vim
[root@V1s ~]# yum update && reboot
#安裝相應工具segmentfault
[root@V1 ~]yum install curl policycoreutils openssh-server openssh-clients postfix -y [root@V1 ~]systemctl start postfix
#新建GitLab源centos
[root@V1 ~]# vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=gitlab-ce baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 repo_gpgcheck=0 gpgcheck=0 enabled=1 gpgkey=https://packages.gitlab.com/gpg.key [root@V1 ~]# yum makecache [root@V1 ~]# yum install -y gitlab-ce
#安裝git工具瀏覽器
[root@V1 ~]# yum install git -y
一般咱們在部署的時候會發現80和8080端口均被佔用,那麼咱們就須要修改gitlab的默認端口。
#gitlab配置文件路徑,用於gitlab如何調用80和8080的服務等。bash
/etc/gitlab/gitlab.rb
編輯配置文件並找到 unicorn 配置,將端口修改爲想要的端口
修改/etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb #unicorn['port'] = 8080 修改 8070 默認是註釋的去掉前面的# unicorn['port'] = 8070 #nginx['listen_port'] = nil 修改 8090 默認是註釋的去掉前面的# nginx['listen_port'] = 8090
修改/var/opt/gitlab/gitlab-rails/etc/unicorn.rb
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb #listen "127.0.0.1:8080", :tcp_nopush => true listen "127.0.0.1:8070", :tcp_nopush => true
修改默認的gitlab nginx的web服務80端 /var/opt/gitlab/nginx/conf/gitlab-http.conf
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf #listen *:80; listen *:8090;
#加載配置文件並啓動,時間稍長
[root@V1 ~]# gitlab-ctl reconfigure
#gitlab-ctl其餘命令
啓動:gitlib-ctl start 關閉:gitlab-ctl stop 重啓:gitlab-ctl restart 重載配置:gitlab-ctl reconfigure 查看狀態:gitlab-ctl status
#查看端口保證80端口不被佔用
[root@V1 ~]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 700 root 7u IPv4 16903 0t0 TCP *:http (LISTEN) nginx 804 gitlab-www 7u IPv4 16903 0t0 TCP *:http (LISTEN)
瀏覽器登陸gitlab,輸入http://服務器ip:配置的nginx端口,進入下圖:
設置一個密碼後,使用 root 用戶進行登陸。
新建一個項目
那麼咱們怎樣爲 GitLab 的帳號添加 SSH keys 呢
1).首先打開 linux 服務器,輸入命令:ls -al ~/.ssh,檢查是否顯示有 id_rsa.pub 或者 id_dsa.pub 存在,若是存在請直接跳至第3步。
2).在 bash 中輸入 ssh-keygen -t rsa -C 」yourEmail@example.com」 ,注意這個地方的郵箱地址地址替換成你本身的郵箱地址便可,在顯示以下的輸出後一直按回車便可:
[root@V1 ~]# useradd web-gitlab [root@V1 ~]# su !$ su web-gitlab [web-gitlab@V1 root]$ [web-gitlab@V1 root]$ [web-gitlab@V1 root]$ ssh-keygen -t rsa -C 」yourEmail@example.com」 Generating public/private rsa key pair. Enter file in which to save the key (/home/web-gitlab/.ssh/id_rsa): Created directory '/home/web-gitlab/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/web-gitlab/.ssh/id_rsa. Your public key has been saved in /home/web-gitlab/.ssh/id_rsa.pub. The key fingerprint is: SHA256:hwumGaUbZy7pD/R1LmaRC4NV42NToJZIuqsv1CMyhuo 」yourEmail@example.com」 The key's randomart image is: +---[RSA 2048]----+ | . +.. | | o . = o | | . . * = | | . * . = | |. o * B S o | |++ = & = B | |=.o O o * . | |o. . o o . | |oE. ... | +----[SHA256]-----+ [web-gitlab@V1 root]$
在這裏能夠看到 id_rsa 和 id_rsa.pub 已經生成,而且生成的路徑爲 /home/web-gitlab/.ssh/。
[web-gitlab@V1 root]$ cd /home/web-gitlab/ [web-gitlab@V1 ~]$ [web-gitlab@V1 ~]$ [web-gitlab@V1 ~]$ ll total 0 [web-gitlab@V1 ~]$ [web-gitlab@V1 ~]$ ll .ssh/ total 8 -rw------- 1 web-gitlab web-gitlab 1679 Apr 28 10:42 id_rsa -rw-r--r-- 1 web-gitlab web-gitlab 402 Apr 28 10:42 id_rsa.pub
3).打開 id_rsa.pub 文件,而且複製所有內容。
[web-gitlab@PaulV1 ~]$ cat .ssh/id_rsa.pub
4).打開 GitLab 帳戶,添加 SSH Keys:
這樣就添加了一個SSH key。
5).完成上面的步驟以後就可使用ssh來鏈接GitLab,並進行相應的操做了。
咱們能夠經過 ssh 來 clone 項目
[root@V1 ~]# su web-gitlab [web-gitlab@V1 root]$ [web-gitlab@V1 root]$ cd /home/web-gitlab/ [web-gitlab@V1 ~]$ git clone git@服務器IP:root/test-demo.git Cloning into 'test-demo'... The authenticity of host '服務器IP (服務器IP)' can't be established. ECDSA key fingerprint is SHA256:+CWe+3ROJVtuClFaH425BsTSYf+c9vTuhHF/6jTr4TI. ECDSA key fingerprint is MD5:63:c6:8a:1a:59:fa:b8:ec:22:cb:29:dd:68:57:d4:3d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '服務器IP' (ECDSA) to the list of known hosts. warning: You appear to have cloned an empty repository. [web-gitlab@V1 ~]$ [web-gitlab@V1 ~]$ ll total 4 drwxrwxr-x 3 web-gitlab web-gitlab 4096 Apr 28 11:03 test-demo
這就是咱們經過 ssh 克隆下來的項目。
參考資料: