gitlab
gitlab安装和配置和访问
我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启,并启动,postfix支持gitlab发信功能 systemctl enable postfix && systemctl start postfix 3.下载gitlab安装包,然后安装 centos 6系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6 centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 我的是centos7,所以我在https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7中找了个gitlab8.0.0版本,建议下载一个比较新的版本,我这里选了一个比较旧的版本仅仅是实验 下载rpm包并安装: wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm 4.修改gitlab配置文件: vim /etc/gitlab/gitlab.rb external_url 'http://www.test.com' #这里面必须是域名。不然gitlab-ctl start会有问题,此域名随便写,访问的时候可以绑host。退出并保存 gitlab_rails['backup_path'] = '/data/gitlab/backups' #备份目录 ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口 git_data_dirs({ "default" => { "path" => "/data/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } }) #path 后面是修改git仓库目录路径 配置例子:
external_url 'http://git.prosysoft.com'
gitlab_rails['backup_path'] = "/home/backup/gitlab"
git_data_dirs({ "default" => { "path" => "/home/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })
nginx['listen_port'] = 81
4.1内核忧化 vim /etc/sysctl.conf ======================== net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 ========================== sysctl -p 5.重置并启动GitLab 执行: gitlab-ctl reconfigure #修改配置文件要执行这个才生效 gitlab-ctl restart 6.访问 GitLab页面 如果没有域名,直接输入服务器ip和指定端口进行访问 初始账户: root 密码: 5iveL!fe 第一次登录修改密码
命令行更改用户密码
#也可以命令行修改root密码 # gitlab-rails console production Loading production environment (Rails 4.1.11) irb(main):001:0> user = User.where(id:1).first //id为1的是超级管理员 irb(main):002:0>user.password = '1q2w3e4r' //密码必须至少8个字符 irb(main):003:0>user.save! // 如没有问题 返回true #修改其它用户 sudo gitlab-rails console production > user=User.where(name:"hanxiaohui").first > user.password = 'Han1huI840610' > user.save! > quit
gitlab日常管理
nginx 安装路径 /var/opt/gitlab/nginx 默认仓库地址(未自定义过): /var/opt/gitlab/git-data/ 默认的配置文件(更改仓库地址 repos_path 会有问题): /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 查看版本信息: cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 动态跟踪gitlab 日志: gitlab-ctl tail
更改nginx端口
/var/opt/gitlab/nginx/conf/gitlab-http.conf #更改server listen
gitlab日常备份和迁移
使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: gitlab-rake gitlab:backup:create 使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1468394531_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1468394531是备份创建的日期. Gitlab 修改备份文件默认目录: 在初次安装完gitlab 后,可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录.修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可(同时,支持远程备份,将备份文件备份到远程服务器上,并设定权限).: gitlab_rails['backup_path'] = '/data/gitlab/backups' Gitlab 自动备份 可以通过crontab使用备份命令实现自动备份: crontab -e 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create Gitlab 恢复 同样, Gitlab的从备份恢复也非常简单: # 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 从1468394531编号备份中恢复 gitlab-rake gitlab:backup:restore BACKUP=1468394531 # 启动Gitlab sudo gitlab-ctl start Gitlab迁移 迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话).
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份
客户端http clone
git clone http://abc:1q2w3e4r@192.168.66.155:81/test/aaa.git #abc为帐号名,1q2w3e4r密码
客户端git sshkey clone
ssh-keygen #回车3次
cd /root/.ssh
cat id_rsa.pub #把输出内容加入到gitlab控制台 sshkey。看以下载图
(1)
(2)
vim /root/.ssh/config #host gitlab访问地址, port gitlab服务器ssh端口号
======================
Host git.prosysoft.cn
Port 22225
Host git.prosysoft.com
Port 22225
======================
克隆
git clone git@xxxxxxx:test/test.git
================
gitlab提交代码刷新
#客户端
[root@node-214 /opt/nginx/webhooks 14:52:47&&5]#cat pccb.php
<?php
exec("cd /opt/nginx/html/pccb;/usr/bin/git pull");
?>
#服务端,提交代码触发访问客户端的Php文件来更新代码
[root@office hooks]# pwd
/home/gitlab/git-data/repositories/acooly/acooly-showcase.git/hooks
[root@office hooks]# cat post-receive
#!/bin/bash
curl http://192.168.55.214:81/pccbgroup.php
curl http://192.168.55.214:81/pccb.php
curl http://192.168.55.214:81/prosysoft.php
curl http://192.168.55.214:81/iosUtils.php
curl http://192.168.55.215:81/1119e.php
curl http://192.168.55.215:81/fineryding.php
curl http://192.168.55.215:81/gfintech.php
curl http://192.168.55.215:81/tools.php
curl http://192.168.55.215:81/other.php
gitlab升级
https://www.cnblogs.com/straycats/p/7707359.html 升级
2.1 关闭部分gitlab服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq gitlab-ctl stop nginx 2.2 升级 rpm -Uvh gitlab-ce-10.0.4-ce.0.el7.x86_64.rpm 2.3 重新配置gitlab gitlab-ctl reconfigure 2.4 重启gitlab gitlab-ctl restart