gitlab 是深受企業用戶喜好的基於 git 的代碼管理系統。本文使用 Docker 方式安裝 gitlab:
這是一種快速高效的部署方式,相對於傳統方式,這種部署能夠有效的節省時間和過程。git
4C/8G/200G
足夠$ cat > gitlab-setup.sh << EOF #!/bin/bash # 注意:設置 gitlab_shell_ssh_port 是爲了後續可使用 SSH 方式訪問你的項目 docker run --detach \\ --hostname gitlab.test.com \\ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.test.com/'; gitlab_rails['gitlab_shell_ssh_port'] = 6022;" \\ --publish 443:443 --publish 80:80 --publish 6022:22 \\ --name gitlab \\ --restart always \\ --volume /srv/gitlab/config:/etc/gitlab \\ --volume /srv/gitlab/logs:/var/log/gitlab \\ --volume /srv/gitlab/data:/var/opt/gitlab \\ registry.docker-cn.com/gitlab/gitlab-ce:11.2.2-ce.0 EOF
執行啓動腳本:sh gitlab-setup.sh
執行成功後,等待數分鐘能夠看到docker
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f9d5f97f494 registry.docker-cn.com/gitlab/gitlab-ce:11.2.2-ce.0 "/assets/wrapper" 1 minutes ago Up 9 minutes (healthy) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:6022->22/tcp gitlab
$ docker exec -it gitlab vi /etc/gitlab/gitlab.rb
請閱讀後修改(由於前面docker run 已經指定了必要參數,能夠不修改,後續有須要再修改),修改保存之後須要重啓容器shell
$ docker restart gitlab
使用域名gitlab.test.com
或者該主機 IP 首次登錄時會要求設置 root 用戶的密碼,完成後就能夠用 root 和新設密碼登錄;而後按需建立 Group, User, Projects等,還有相關配置。bash
不管是企業、組織、我的都十分重視代碼資產,以前咱們的 gitlab 安裝是單機版的,雖然能夠有硬盤 raid 等保護,還有是丟失 gitlab 數據和配置的風險,所以咱們有必要再作一些備份操做。這裏利用 crontab 按期執行 rsync 命令備份到其餘服務器。服務器
# 建立備份腳本 cat > /root/gitlab-backup.sh << EOF #!/bin/bash # 請事先配置 gitlab 服務器到備份服務器的免密碼 ssh 登錄 rsync -av --delete /srv/gitlab/config '-e ssh -l root' 192.168.2.xx:/backup_gitlab/config rsync -av --delete /srv/gitlab/data '-e ssh -l root' 192.168.2.xx:/backup_gitlab/data EOF # 建立並應用 crontab cat > /etc/cron.d/gitlab-backup << EOF ## 每3個小時同步備份一次,具體根據須要修改 11 */3 * * * root bash /root/gitlab-backup.sh > /root/gitlab/sync.log 2>&1 EOF
若是 gitlab 服務器真的出現不可恢復的故障,丟失數據,那麼至少保留有3小時前的備份,利用備份的文件,一樣再用 docker 掛載 volume的方式運行,這樣就能夠恢復原 gitlab 服務運行。app
由於前面使用了 docker 方式安裝,所以 gitlab 升級很方便。ssh
$ docker stop gitlab && docker rm gitlab