共计 7682 个字符,预计需要花费 20 分钟才能阅读完成。
1. 配置网卡及 Ubuntu 仓库源
1)配置网卡 eth0,本地内网网卡无需指定网关和域名服务器
network: | |
version: 2 | |
renderer: networkd | |
ethernets: | |
eth0: | |
dhcp4: no | |
addresses: [192.168.1.30/24] |
2)配置网卡 eth1,要保持以下两个字节的严格缩进,否则会导致网卡起不来
root@ubuntu1804:~# vim /etc/netplan/02-netcfg.yaml | |
network: | |
version: 2 | |
renderer: networkd | |
ethernets: | |
eth1: | |
dhcp4: yes | |
addresses: [192.168.10.107/24] | |
gateway4: 192.168.10.1 | |
nameservers: | |
addresses: [223.6.6.6] |
3)配置阿里云仓库源
root@ubuntu1804:~ | |
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse | |
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse | |
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse | |
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse | |
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse | |
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse | |
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse | |
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse | |
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse | |
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse |
4)更新仓库
root@ubuntu1804:~# apt update | |
root@ubuntu1804:~# apt update | |
Get:1 http://mirrors.aliyun.com/ubuntu bionic InRelease [242 kB] | |
Get:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease [88.7 kB] | |
Get:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease [88.7 kB] | |
Get:4 http://mirrors.aliyun.com/ubuntu bionic-proposed InRelease [242 kB] | |
…… |
2. 安装 gitlab 包
1)下载 gitlab-ce 社区版包
root@ubuntu1804:~# ls /data/ | |
gitlab-ce_11.11.5-ce.0_amd64.deb |
2)安装 gitlab,要确定 gitlab 包适合此版本 ubuntu 系统
root@ubuntu1804:/data# dpkg -i gitlab-ce_11.11.5-ce.0_amd64.deb | |
root@ubuntu1804:/data# dpkg -i gitlab-ce_11.11.5-ce.0_amd64.deb | |
Selecting previously unselected package gitlab-ce. | |
(Reading database ... 69294 files and directories currently installed.) | |
Preparing to unpack gitlab-ce_11.11.5-ce.0_amd64.deb ... | |
Unpacking gitlab-ce (11.11.5-ce.0) … #等待安装完成 |
3)此时无法识别主机,需修改 git 配置文件,指定主机
root@ubuntu1804:/data# vim /etc/gitlab/gitlab.rb | |
external_url 'http://192.168.1.30' #修改指定的 ip 主机 |
4)配置完进行 gitlab 初始化
root@ubuntu1804:/data# gitlab-ctl reconfigure
3. 命令操作
1)进入数据库命令行
root@ubuntu1804:~# gitlab-psql | |
gitlabhq_production-# \db | |
List of tablespaces | |
Name | Owner | Location | |
------------+-------------+---------- | |
pg_default | gitlab-psql | | |
pg_global | gitlab-psql | | |
(2 rows) |
2)查看 gitlab 的运行状态
root@ubuntu1804:~# gitlab-ctl status | |
run: alertmanager: (pid 4704) 1841s; run: log: (pid 4373) 1867s | |
run: gitaly: (pid 4475) 1844s; run: log: (pid 3483) 2026s | |
run: gitlab-monitor: (pid 4553) 1843s; run: log: (pid 4169) 1887s | |
run: gitlab-workhorse: (pid 4512) 1844s; run: log: (pid 4027) 1910s | |
run: logrotate: (pid 4073) 1900s; run: log: (pid 4089) 1899s | |
run: nginx: (pid 4040) 1906s; run: log: (pid 4060) 1905s | |
run: node-exporter: (pid 4537) 1843s; run: log: (pid 4146) 1892s | |
run: postgres-exporter: (pid 4727) 1840s; run: log: (pid 4409) 1863s | |
run: postgresql: (pid 3659) 2012s; run: log: (pid 3689) 2011s | |
run: prometheus: (pid 4578) 1842s; run: log: (pid 4245) 1875s | |
run: redis: (pid 3417) 2034s; run: log: (pid 3442) 2031s | |
run: redis-exporter: (pid 4561) 1842s; run: log: (pid 4202) 1881s | |
run: sidekiq: (pid 3967) 1920s; run: log: (pid 3983) 1916s | |
run: unicorn: (pid 3908) 1926s; run: log: (pid 3957) 1923s |
3)gitlab 服务命令行的启动、停止、重启
gitlab-ctl start/stop/restart gitlab
4) 查看 gitlab 的 nginx 服务组件的日志
root@ubuntu1804:~# gitlab-ctl tail nginx | |
==> /var/log/gitlab/nginx/current <== | |
==> /var/log/gitlab/nginx/access.log <== | |
==> /var/log/gitlab/nginx/error.log <== | |
==> /var/log/gitlab/nginx/gitlab_error.log <== | |
==> /var/log/gitlab/nginx/gitlab_access.log <== | |
192.168.1.1 - - [21/Jul/2019:10:36:00 +0800] "GET / HTTP/1.1" 302 99 """Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3724.8 Safari/537.36" | |
…… |
4. 浏览器访问 gitlab
1)设置新的密码,默认登录的用户为 root
2)登录后默认的界面
3)点击 setting,在点击 sign-up 可以设置是否允许创建新用户
4)去掉对勾,禁止创建新账户
5)再点击保存修改生效
6)此时登出账号时,就没有注册用户的选项,只能用已有的账户登录
7)创建一个新用户时会受到邮件通知
8)创建不同的项目、组、账户,将特定用户放到特定的组,实现特定用户对某些项目有查看权限
9)返回到项目列表,并进入一个项目
10)点击 New file
11)输入一个索引测试页面,再点击提交
12)查看项目的 clone 地址
13)客户端 clone
root@ubuntu1804:/data/src# git clone http://192.168.1.30/root/web-page.git | |
Cloning into 'web-page'... | |
remote: Enumerating objects: 3, done. | |
remote: Counting objects: 100% (3/3), done. | |
remote: Total 3 (delta 0), reused 0 (delta 0) | |
Unpacking objects: 100% (3/3), done. |
14)项目代码克隆成功
root@ubuntu1804:/data/src# ls | |
web-page | |
root@ubuntu1804:/data/src# cat web-page/index.html | |
<h>hello jie!</h1> |
15)在客户端修改 index.html
root@ubuntu1804:/data/src/web-page# cat index.html | |
<h>hello jie!</h1> | |
<h>hello kobe!</h1> | |
<h>hello curry!</h1> | |
<h>hello rose!</h1> |
16)先添加到本地暂存区(提交代码到 gitlab 服务器时,命令都必须在克隆下来的文件夹环境中执行)
root@ubuntu1804:/data/src/web-page# git add index.html
17)在提到工作区
root@ubuntu1804:/data/src/web-page# git commit -m 'v6' | |
[master 1202723] v6 | |
1 file changed, 4 insertions(+), 1 deletion(-) |
18)然后在直接提交到 gitlab 仓库 web 端
root@ubuntu1804:/data/src/web-page# git push #其中 git pull 为获取代码到本地 | |
Username for 'http://192.168.1.30': root #要求输入登录 gitlab 的 web 端的用户名 | |
Password for 'http://root@192.168.1.30': #再输入登录 gitlab 的 web 端的用户密码 | |
Counting objects: 3, done. | |
Delta compression using up to 4 threads. | |
Compressing objects: 100% (2/2), done. | |
Writing objects: 100% (3/3), 268 bytes | 268.00 KiB/s, done. | |
Total 3 (delta 0), reused 0 (delta 0) | |
To http://192.168.1.30/root/web-page.git | |
ecc001d..1202723 master -> master #提交完成 |
19)在 web 端 gitlab 仓库查看,项目 index.html 内容被更改,说明成功提交
20)再次修改 index.html 文件,然后在上传 v7 版本的 index.html 到 gitlab 的服务端
5.gitlab 的一些基本命令操作(以下命令操作命令都必须在克隆下来的文件夹环境中执行,否则无法执行令)
1)客户端查看当前版本号为 v7
root@ubuntu1804:/data/src/web-page# git reset --hard HEAD | |
HEAD is now at 952e66b v7 |
2)查看 v7 版索引
root@ubuntu1804:/data/src/web-page# cat index.html | |
<h>hello jie!</h1> | |
<h>hello kobe!</h1> | |
<h>hello curry!</h1> | |
<h>hello rose!</h1> | |
<h>hello jordan!</h1> | |
<h>hello jordan!</h1> | |
<h>hello howard!</h1> |
3)若想回滚到 v6 版本,则操作如下命令进行回滚
root@ubuntu1804:/data/src/web-page# git reset --hard HEAD^ | |
HEAD is now at 9cb6bf6 v6 |
4)再查看 v6 版本索引文件
root@ubuntu1804:/data/src/web-page# cat index.html | |
<h>hello jie!</h1> | |
<h>hello kobe!</h1> | |
<h>hello curry!</h1> | |
<h>hello rose!</h1> | |
<h>hello jordan!</h1> | |
<h>hello jordan!</h1> |
5)查看每次提交的目标代码 id 号,
root@ubuntu1804:/data/src/web-page# git reflog | |
9cb6bf6 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^ | |
952e66b (origin/master, origin/HEAD) HEAD@{1}: reset: moving to HEAD | |
952e66b (origin/master, origin/HEAD) HEAD@{2}: commit: v7 | |
9cb6bf6 (HEAD -> master) HEAD@{3}: commit: v6 | |
03e27be (tag: v1.4) HEAD@{4}: commit: v7 | |
1202723 HEAD@{5}: commit: v6 | |
ecc001d HEAD@{6}: clone: from http://192.168.1.30/root/web-page.git |
6)也可指定目标代码 id 号,实现回滚
root@ubuntu1804:/data/src/web-page# git reset --hard 9cb6bf6
7) 查看当前所属的分支,默认为 master 主分支
root@ubuntu1804:/data/src/web-page# git branch | |
* master |
8)创建并切换到新分支
root@ubuntu1804:/data/src/web-page# git checkout -b operations | |
Switched to a new branch 'operations' |
9)再次列出所有分支分支
root@ubuntu1804:/data/src/web-page# git branch | |
master | |
* operations |
10)切换回到主分支
root@ubuntu1804:/data/src/web-page# git checkout master | |
Switched to branch 'master' | |
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. | |
(use "git pull" to update your local branch) | |
root@ubuntu1804:/data/src/web-page# git branch | |
* master | |
operations |
6. 数据备份
1)备份前先要暂停 gitlab 的两个数据服务,避免在备份时开发人员继续提交代码至 gitlab 中,导致数据不完整
root@ubuntu1804:~# gitlab-ctl stop sidekiq | |
ok: down: sidekiq: 0s, normally up | |
root@ubuntu1804:~# gitlab-ctl stop nunicorn |
2)手动创建备份
root@ubuntu1804:~# gitlab-rake gitlab:backup:create
3)gitlab 默认备份数据名称及路径,为压缩文件
root@ubuntu1804:~# ll /var/opt/gitlab/backups/1563709800_2019_07_21_11.11.5_gitlab_backup.tar | |
-rw------- 1 git git 92160 Jul 21 19:50 /var/opt/gitlab/backups/1563709800_2019_07_21_11.11.5_gitlab_backup.tar |
4)在 gitlab 的 web 端目前存在的项目、用户和组
5)先删除掉几个项目、用户或组
7. 客户端数据恢复
1)在恢复数据之前也要先关闭 gitlab 的两个数据服务
root@ubuntu1804:~# gitlab-ctl stop sidekiq | |
ok: down: sidekiq: 0s, normally up | |
root@ubuntu1804:~# gitlab-ctl stop unicorn | |
ok: down: unicorn: 0s, normally up |
2)执行恢复备份数据命令
root@ubuntu1804:~# gitlab-rake gitlab:backup:restore /var/opt/gitlab/backups/1563709800_2019_07_21_11.11.5_gitlab_backup.tar
3)在开启 gitlab 的两个数据服务
oot@ubuntu1804:~# gitlab-ctl start sidekiq | |
ok: run: sidekiq: (pid 80094) 1s | |
root@ubuntu1804:~# gitlab-ctl start unicorn | |
ok: run: unicorn: (pid 80191) 0s |
4)gitlab 的 web 端访问测试,可以看到删除的项目、用户、组全部恢复
正文完
星哥玩云-微信公众号
