开始部署之前,我先介绍一些相关知识
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
简单的说呢,git可以管理软件代码,gitlab是部署在服务器端的,可以使用git将代码上传到服务器保管,gitlab就是服务器端管理项目的一个web工具。当然,还有很多的其他功能。例如管理代码,codereview,项目集成,配合jenkins或puppet 等可以实现代码自动化发布(企业项目管理工具),自动化测试 等等。。有兴趣自己百度哈~
类似的项目有github,国内的码云 等等。
都是非常好用的,优点就不说了,说说缺点:
github: 是国外的网站,不的花访问速度比较慢,而且代码是开源的,创建私密项目要收费。
码云:5个人一下可以免费使用,5人以上的团队合作要收费。
共同缺点:代码都是在人家的服务器上面的,有一定的风险,还要收费,或者有其他的限制。。
自己搭建gitlab的优点:
免费,可以很多人合作,代码都是在自己的服务器上面的,安全。一般大公司都是自己在公司内网搭建一套gitlab系统用来管理项目的~
接下来实操一下部署过程。本教程部署环境:阿里云Centos7.2 4核8G内存
1:国内镜像下载地址
rpm包下载地址
2:开放防火墙和http,ssh访问
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
3:安装Postfix以发送通知电子邮件 (可能会出现配置屏幕。选择“Internet Site”并按Enter键。),逐一执行以下命令
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
4:安装gitee
rpm -i gitlab-ee-11.9.0-ee.0.el7.x86_64.rpm
出现如上提示说明安装成功
5:修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.wechat-class.com' //修改external_url 属性为自己的域名
unicorn['port'] = 9500 //改成自己gitlab服务的端口
让gitlab重新生成配置【这一步执行的时间比较长,估计要2分钟】
gitlab-ctl reconfigure
重启gitlab
gitlab-ctl restart
执行命令查看是否启动成功
netstat -ntlp | grep gitlab
然后访问域名cwj.gitlab.com就可以愉快地使用gitlab啦
附属教程:
教程1:使用自己服务器的nginx
1.1 修改配置文件 vim /etc/gitlab/gitlab.rc
nginx['enable'] = false
1.2 在nginx下面添加配置文件 gitlab.conf
文件内容参考如下
upstream gitlab {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
server {
listen *:80;
server_name cwj.wechat-class.com; # 请修改为你的域名
server_tokens off; # don't show the version number, a security best practice
root /opt/gitlab/embedded/service/gitlab-rails/public;
client_max_body_size 250m;
access_log logs/gitlab.access.log;
error_log logs/gitlab.error.log;
location / {
try_files $uri $uri/index.html $uri.html @gitlab;
}
location @gitlab {
proxy_read_timeout 300; # Some requests take more than 30 seconds.
proxy_connect_timeout 300; # Some requests take more than 30 seconds.
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:9500;
}
location ~ ^/(assets)/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
expires max;
add_header Cache-Control public;
}
error_page 502 /502.html;
}
下面这个是截图哈~
修改好重启gitlab和nginx
gitlab-ctl reconfigure
gitlab-ctl restart
nginx -s reload
特别注意:nginx配置中的proxy_pass要改成自己设置的端口
如果/etc/gitlab/gitlab.rb 配置文件中是这样配置unicorn['port'] = 8888,则nginx要改成 proxy_pass http://127.0.0.1:8888;