(1)配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容:
使用的是清华大学镜像仓库
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
(2)更新本地yum缓存
sudo yum makecache
(3)安装GitLab社区版
sudo yum install gitlab-ce #自动安装最新版
sudo yum install gitlab-ce-x.x.x #安装指定版本
到gitlab官网下载安装包到本地安装
地址:https://packages.gitlab.com/gitlab/gitlab-ce
这里使用方式二安装,版本是gitlab-ce-11.3.11
[root@centos7 ~]# ls
anaconda-ks.cfg gitlab-ce-11.3.11-ce.0.el7.x86_64.rpm initial-setup-ks.cfg original-ks.cfg
1、安装
[root@centos7 src]# yum install -y gitlab-ce-11.3.11-ce.0.el7.x86_64.rpm
2、gitlab 配置
[root@centos7 src]# vim /etc/gitlab/gitlab.rb
[root@centos7 src]# grep "^[a-Z]" /etc/gitlab/gitlab.rb
external_url 'http://192.168.239.132'
##一下部分用于配置邮件服务
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]" ##自己的qq邮箱账号
gitlab_rails['smtp_password'] = "xxxx" ##开通smtp时返回的授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "[email protected]" ##指定发送邮件的邮箱地址
user["git_user_email"] = "[email protected]" ##指定接收邮件的邮箱地址
3、初始化服务
修改好配置文件后,使用gitlab-ctl reconfigure命令重载一下配置文件。
[root@centos7 ~]# gitlab-ctl reconfigure
启动服务
[root@centos7 ~]# gitlab-ctl start
ok: run: alertmanager: (pid 8000) 137s
ok: run: gitaly: (pid 7951) 139s
ok: run: gitlab-monitor: (pid 7970) 138s
ok: run: gitlab-workhorse: (pid 7931) 140s
ok: run: logrotate: (pid 7206) 360s
ok: run: nginx: (pid 7187) 367s
ok: run: node-exporter: (pid 7278) 347s
ok: run: postgres-exporter: (pid 8024) 136s
ok: run: postgresql: (pid 6887) 456s
ok: run: prometheus: (pid 7985) 137s
ok: run: redis: (pid 6812) 468s
ok: run: redis-exporter: (pid 7420) 320s
ok: run: sidekiq: (pid 7143) 379s
ok: run: unicorn: (pid 7100) 385s
查看gitlab的状态信息,可以看到运行了好多服务。
[root@centos7 ~]# gitlab-ctl status
run: alertmanager: (pid 8000) 2331s; run: log: (pid 8032) 2329s
run: gitaly: (pid 7951) 2333s; run: log: (pid 7983) 2331s
run: gitlab-monitor: (pid 7970) 2332s; run: log: (pid 7999) 2331s
run: gitlab-workhorse: (pid 7931) 2334s; run: log: (pid 7972) 2332s
run: logrotate: (pid 7206) 2555s; run: log: (pid 7943) 2334s
run: nginx: (pid 7187) 2562s; run: log: (pid 7973) 2333s
run: node-exporter: (pid 7278) 2542s; run: log: (pid 7984) 2332s
run: postgres-exporter: (pid 8024) 2331s; run: log: (pid 8035) 2330s
run: postgresql: (pid 6887) 2651s; run: log: (pid 7918) 2336s
run: prometheus: (pid 7985) 2332s; run: log: (pid 7990) 2332s
run: redis: (pid 6812) 2663s; run: log: (pid 7926) 2335s
run: redis-exporter: (pid 7420) 2515s; run: log: (pid 8001) 2332s
run: sidekiq: (pid 7143) 2574s; run: log: (pid 7920) 2336s
run: unicorn: (pid 7100) 2580s; run: log: (pid 7919) 2336s
浏览器输入地址,第一次登陆时会有一个更改密码的操作,直接设定一个新密码即可
接着会进入登录/注册页面,一般注册页面后期都会关掉,因为其他人员只要知道地址就能注册账号,只是很不安全的。默认登录用户是root,密码是上面设定的密码。
关闭账号注册,默认情况下可以直接注册账号,因此一般都关闭次功能。
保存更改
退出重新登录即可验证是否还有注册选项。
使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理
在创建好项目之后,页面上跳出提示:“在将SSH密钥添加到个人资料之前,您将无法通过SSH提取或推送项目代码”
因此,我们还要在gitlab主机上生成密钥对,并导入公钥。(如果不通过ssh方式拉取和推送代码,也可以通过HTTP方式,不过在拉取过程中需要输入用户名和密码)
(1)安装Git工具。
[root@centos7 ~]# yum install git
(2)、生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。
[root@centos7 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:oMjfJQM+twQRdTUvv+WBr1yJ9Fh8YiNt/XrDyLTJAME [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| oo. o.o |
| . . E o |
| o . o . |
| . o + . . o + . |
| o + = S . = @ o|
| . = = o # *.|
| . o O @ .|
| . O +.|
| o ...|
+----[SHA256]-----+
[root@centos7 ~]# ll .ssh/
总用量 12
-rw------- 1 root root 1679 6月 6 10:35 id_rsa
-rw-r--r-- 1 root root 402 6月 6 10:35 id_rsa.pub
-rw-r--r-- 1 root root 574 3月 8 22:54 known_hosts
(3)把公钥导入到gitlab中,复制公钥并粘贴到指定位置。
key添加完成
找到项目界面
添加一个测试页面
根据命令提示,我们需要在gitlab主机上设置一下全局配置。
[root@centos7 ~]# git config --global user.name "root"
[root@centos7 ~]# git config --global user.email "[email protected]"
克隆项目到本地
[root@centos7 git-project]# git clone [email protected]:test-service/test-project.git
正克隆到 'test-project'...
The authenticity of host '192.168.239.132 (192.168.239.132)' can't be established.
ECDSA key fingerprint is SHA256:ETZ2hxYcCzc3U0YgZLs8o1YLuFBC+NTweKwRUABJF4w.
ECDSA key fingerprint is MD5:c9:f1:fa:3c:04:a9:7f:cb:10:f5:51:df:79:46:30:a4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.239.132' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
接收对象中: 100% (3/3), done.
编辑文件并测试提交:
[root@centos7 test-project]# vim index.html
first line
second line
提交测试
[root@centos7 test-project]# git add index.html ##将文件加入到暂存区
[root@centos7 test-project]# git commit -m "v1" ##将文件提交到工作区
[master 84a505c] v1
1 file changed, 2 insertions(+), 1 deletion(-)
[root@centos7 test-project]# git push ##推送至gitlab仓库中
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:
git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置:
git config --global push.default simple
参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)
Counting objects: 5, done.
Writing objects: 100% (3/3), 262 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:test-service/test-project.git
f53bb92..84a505c master -> master
git web 端验证数据