Gitlab安装时,建议:
1.从官方或清华镜像下载最新的和OS匹配的rpm软件包(Gitlab版本更新很快)
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/
2.服务器直接安装CentOS8,不需要图形界面(gitlab的管理都是命令行)
https://mirrors.tuna.tsinghua.edu.cn/centos/OSVersion/isos/x86_64/
3.Gitlab专用服务器
如此,Gitlab 网页不需要设置端口号,我认为,没有端口更易使用
4.一定做好异地异机备份(只要gitlab版本相同恢复也很简单)
之所以如此建议,是因为,我第一次安装并没有做很好的规划,谁知道是如此简单的入门!
特别的是:我还直接真正到导入实际应用到工作中了
原本是在Redhat 7.5上安装gitlab-ce-12.7.5-ce.0.el6.x86_64.rpm的包
然后在建制备份机制时,又用的是CentOS8,此时,根本找不到12.7.5的el8的安装包
(因为不管是用el6还是el7的12.7.5的包安装时,policycoreutils-python死活搞不定)
所以,Gitlab版本不得已只能升级到最新版,当然升级也非常简单
首先,安装好操作系统
然后下载对应的rpm包,
最后直接在root用户下,执行rpm -ivh gitlab-ce-12.9.2-ce.0.el8.x86_64.rpm
例如:`rpm -ivh /tools/gitlab-ce-12.9.2-ce.0.el8.x86_64.rpm`
warning: gitlab-ce-12.9.2-ce.0.el8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID f27eab47: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:gitlab-ce-12.9.2-ce.0.el8 ################################# [100%]
编辑/etc/gitlab/gitlab.rb
##! external_url 'http://gitlab.example.com'
把##!去掉,把gitlab.example.com改成自己的服务器IP地址或域名
例如:
external_url 'http://10.64.32.99'
在gitlab.rb中找到backup_path和backup_keep_time两个参数,并把前面的注释去掉
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800#这是保留最近7天的备份数据
每次修改了参数,都要重新执行gitlab-ctl reconfigure,才能使配置生效
Running handlers complete
Chef Client finished, 550/1459 resources updated in 04 minutes 41 seconds
gitlab Reconfigured!
如果跳出402的错误,没关系,等一下就好了,这只是说明后台服务还没有准备好
如果是Gitlab安装后的首次打开,则会跳出一个配置Password的页面
这是要求我们设置Gitlab的root管理员用户的密码,不是操作系统的root
设置OK后,就可以进入Gitlab,创建Project,创建Group等操作了
需要用root用户登录Gitlab
然后点Admin Area图标
再点左侧的Appearance
找到Sign in/Sign up Pages,修改相应的Title和Description即可
Description中的内容,用Markdown格式编写即可
自动备份,自动scp到远端服务器
10 10 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
20 11 * * * /var/opt/gitlab/backups/scpfile.sh
#Every Day At 10:10 Backup Gitlab and 11:20 scp Remote Server
#Backup Path:/var/opt/gitlab/backups
#备份路径下会出现类似1585385351_2020_04_18_12.9.2_gitlab_backup.tar文件
#按照我们的策略,这个路径下,只会保留7份12.9.2_gitlab_backup.tar结尾的文件
远端服务器的备份文件也要注意自动删除n天前的备份文件,注意磁盘空间的有效
目标和源Gitlab的版本要一致,否则不能恢复
scp 1585627448_2020_04_18_12.9.2_gitlab_backup.tar root@TargetIP:/var/opt/gitlab/backups/
chown -R git.git 1585627448_2020_04_18_12.9.2_gitlab_backup.tar
gitlab-ctl status
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
注意不要帶_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1585627448_2020_04_18_12.9.2
gitlab-ctl start
gitlab-rake gitlab:check SANITIZE=true
#恢复后用户名和密码以及Login页面都和源一模一样
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
rpm -Uvh gitlab-ce-12.9.2-ce.0.el8.x86_64.rpm
gitlab-ctl restart
ok: run: alertmanager: (pid 8289) 1s
ok: run: gitaly: (pid 8297) 1s
ok: run: gitlab-exporter: (pid 8310) 0s
ok: run: gitlab-workhorse: (pid 8312) 1s
ok: run: grafana: (pid 8325) 0s
ok: run: logrotate: (pid 8342) 0s
ok: run: nginx: (pid 8354) 1s
ok: run: node-exporter: (pid 8359) 0s
ok: run: postgres-exporter: (pid 8363) 1s
ok: run: postgresql: (pid 8375) 0s
ok: run: prometheus: (pid 8377) 1s
ok: run: redis: (pid 8391) 0s
ok: run: redis-exporter: (pid 8397) 1s
ok: run: sidekiq: (pid 8402) 0s
ok: run: unicorn: (pid 8408) 0s
gitlab-rake gitlab:env:info
System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.6.5p114
Gem Version: 2.7.10
Bundler Version:1.17.3
Rake Version: 12.3.3
Redis Version: 5.0.7
Git Version: 2.24.1
Sidekiq Version:5.2.7
Go Version: unknown
GitLab information
Version: **12.9.2**
Revision: ac5568eb5d8
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 10.12
URL: http://10.64.32.196:8081
HTTP Clone URL: http://10.64.32.196:8081/some-group/some-project.git
SSH Clone URL: git@10.64.32.196:some-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:
GitLab Shell
Version: 12.0.0
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Git: /opt/gitlab/embedded/bin/git
el6的版本可以直接升級到el7的版本
最简单的升级方式下载好对应的rpm
不能gitlab-ctl stop,因为升级时,还会用到相关服务
* 如果我们本地的认证信息没有变更也不需要变更
* 则当我们推送代码时,将会出现:**Remote: HTTP Basic: Access denied**
Remote: HTTP Basic: Access denied
发布到远程存储库时遇到错误: Git failed with a fatal error.
Authentication failed for 'http://10.64.32.196:8081/sfc/shopfloor.git/'
Pushing to http://10.64.32.196:8081/sfc/shopfloor.git
进入控制台>>用户账号》认证管理员>>windows认证》一般认证,在里面找到git,点编辑,修改为现在的gitlab密码即可
或者直接删除git认证信息,则当我们再次推送代码时,会跳出gitlab用戶名和密码输入框,输入正确的即可
`不需要动git的中的任何设定,更不需要动 Gitlab 中的SSH的Key信息`
目的是产生ssh key
安装OK后,打開Git命令行介面
git config --global user.name "Your Name"
git config --global ser.email "[email protected]"
此Email要和Gitlab Email一致
ssh-keygen -t rsa -C "[email protected]"
一路回车,会出来一个SHA256的画面,并有告诉我们key所在文件夹
用记事本打开id_rsa.pub,然后复制内容Gitlab的User Settings的 SSH Keys中
随后,我们通过例如VistualStudio同步代码时就不需要密码了
进入Gitlab即可在自己的Project中Upload文件
如果熟悉Markdown,建议直接用Markdown编辑自己的文件,如此随时可以看到文件内容
Markdown是个非常简单非常容易学习的一个在线编辑工具
VisualStudio为例
首先自己的Git SSH Key已经和自己的Gitlab中的账号Linked(如果不先做这个,同步代码时,会要求输入用户名和密码)
然后要在Gitlab中创建一个和Visual Studio相同ProjectName(建议相同)
第三 在Visual Studio的解决方案上右键选择"將解決方案添加到源代碼管理"
第四 点VS右下角"团队资源管理器",在出來的介面中找到"推送到远端存储库"中,再点"发布Git存储库"
最后输入URL路径,再点"发布"按钮,代码随后就发布到GitLab了
URL路径的获取方法是:点Gitlab Project的Clone按钮,就知道了
注意选择Clone with HTTP
VisualStudio为例
以SFIC為例:
(1).首先在自己电脑上创建"GitRespons"再其中再创建"IMMS"的文件夾
(2).在Gitlab中找到"IMMS" Group,再找到"SFIC" Project
在出現的窗口右侧,点蓝底白字的Clone按钮,复制"Clone With Http"
点"Copy From URL",复制url地址
(3).在VisualStudio团队资源管理器中,找到"本地Git存储库",
点"克隆"字样
然后粘贴url地址
再"选择本地路径"
點"克隆按鈕"即可
(4).克隆成功(完毕)后,(解决方案资源管理器中,可能显示出的是这个方案的文件夾列表是空的,)
此是团队资源管理器列表中应该能看到我们刚刚Clone的方案,点并打开此方案即可编辑修改代码了
此是只要我们修改了方案项目中的任何文件,文件名旁立即会出现一个醒目的红色小对号旗标
如果确认ok,可以提交也可以撤销
唯一的要求是:修改的代码确认OK并且经过测试后后,要及时提交代码和同步Gitlab
(1).找到文件并点对应的文件名,则文件內容也回显示在网页下方,
(2).而文件名右侧,我们可以看到"Delete"按钮,点此"Delete"即可
(1).找到自己要刪除的Project
(2).网页左侧菜单最下侧,点"Settings",点"General",右侧网页內容中的,比较靠下的部分
(3).我们可以看到"Advanced"右侧的Expand,点"Expand",网页下面会出來更多的信息
(4).找到"Remove Project",并点Remove Project按钮,在出來的窗口中,輸入"项目名称",然后再点"Confirm"即可
gitlab-ctl start # 启动所有 gitlab 组件
gitlab-ctl stop # 停止所有 gitlab 组件
gitlab-ctl restart # 重启所有 gitlab 组件
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 修改gitlab.rb后,执行此命令
/var/opt/gitlab/ # 安装文件
/var/log/gitlab/ # 日志文件
/opt/gitlab/ #是程序文件,不包含数据
/var/opt/gitlab/nginx/conf #nginx配置文件