搭建GitLab并汉化
目录
1. 安装并配置必要的依赖关系
2、配置gitlab-ce的yum源
3. yum安装gitlab-ce
4. gitlab汉化
下载中文补丁包
先备份,避免汉化失败后gitlab瘫痪
重新配置gitlab
重启gitlab
5,日常管理
系统环境:
[root@DH-SVNSERVER ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
gitlab-ce是社区版,免费的
gitlab-ee是企业版,收费的
1. 安装并配置必要的依赖关系
# yum install -y curl policycoreutils-python openssh-server cronie
安装lokkit命令相关的包
# yum install system-config-firewall
# lokkit -s http -s ssh
接下来,安装Postfix发送通知邮件。 如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装完GitLab后配置外部SMTP服务器。
# yum install postfix
# service postfix start
# chkconfig postfix on
2、配置gitlab-ce的yum源
[root@DH-SVNSERVER etc]# cd yum.repos.d/
[root@DH-SVNSERVER yum.repos.d]# cat gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
或者使用如下命令安装gitlab-ce的yum仓库
curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
3. yum安装gitlab-ce
[root@DH-SVNSERVER yum.repos.d]# yum makecache
[root@DH-SVNSERVER yum.repos.d]# yum install gitlab-ce
编辑配置文件:
将external_url修改为你的ip和url。
[root@DH-SVNSERVER yum.repos.d]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.84/gitlab'
修改后运行如下命令启动gitlab:
[root@DH-SVNSERVER yum.repos.d]# gitlab-ctl reconfigure #第一次运行时间稍微久一些,耐心等待
[root@DH-SVNSERVER yum.repos.d]# gitlab-ctl restart
然后通过/etc/gitlab/gitlab.rb中的external_url配置的url访问:http://192.168.1.84/gitlab
第一次访问要先修改登录密码,默认用户是root。
4. gitlab汉化
如不清楚gitlab版本以及git,请不要操作,否则gitlab瘫痪!
先查看gitlab版本
[root@DH-SVNSERVER ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.3.3
或者这样查看也可以
[root@DH-SVNSERVER ~]# rpm -q gitlab-ce
gitlab-ce-10.3.3-ce.0.el6.x86_64
下载中文补丁包
注意补丁包版本一定要与gitlab的版本一致,以下直接下载的是gitlab-10-3稳定版的。
[root@DH-SVNSERVER src]# wget https://gitlab.com/xhang/gitlab/repository/10-3-stable-zh/archive.tar.bz2 -O gitlab-10-3-stable-zh.tar.bz2
或者用git clone获取最新版的
git clone https://gitlab.com/xhang/gitlab.git
。。。
下载速度真的太慢了,过了一个小时终于下载完成了。
-rw-r--r--. 1 root root 40M Jan 9 16:49 gitlab-10-3-stable-zh.tar.bz2
解压
[root@DH-SVNSERVER src]# tar xf gitlab-10-3-stable-zh.tar.bz2
# 查看汉化包的版本
[root@DH-SVNSERVER src]# cat gitlab-10-3-stable-zh/VERSION
10.3.3
先备份,避免汉化失败后gitlab瘫痪
[root@DH-SVNSERVER src]# cp -r /opt/gitlab/embedded/service/gitlab-rails{,.ori}
复制并覆盖
[root@DH-SVNSERVER src]# cp -rf gitlab-10-3-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
cp: cannot overwrite non-directory `/opt/gitlab/embedded/service/gitlab-rails/log' with directory `gitlab-10-3-stable-zh/log'
cp: cannot overwrite non-directory `/opt/gitlab/embedded/service/gitlab-rails/tmp' with directory `gitlab-10-3-stable-zh/tmp'
这里的错误,忽略,因为之前已经设置gitlab的root密码了
重新配置gitlab
[root@DH-SVNSERVER src]# gitlab-ctl reconfigure
重启gitlab
[root@DH-SVNSERVER src]# gitlab-ctl restart
再次访问http://192.168.1.84/gitlab/
image.png
image.png
完美!
5,日常管理
gitlab-ctl start|stop|status|restart
文章
开发工具 · git · 数据安全/隐私保护 · 网络安全 · Shell · Linux
2018-01-09
搭建gitlab仓库
稍具规模一点的公司都会搭建属于自己的git,svn,而内部git用的最多的则是gitlab,虽然官网已经提供了非常多的功能,但内网搭建更能保证项目的私有性,只有公司内部员工才可以访问,更加安全。
这里演示gitlab的搭建与简单配置
image.png
操作
安装一些依赖软件包,SSH一般系统是默认安装好的,不过也不排除一些最小安装的系统没有sshd服务。
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
关闭防火墙,或者开放HTTP的端口
//刷新防火墙的规则
iptables -F
安装邮件服务,当gitlab想要通过邮件通知,也可以另外配置其它的邮件服务器
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
从官网获取一件安装脚本,当然自己手动安装也是可以的gitlab下载地址,使用官网脚本会简单一些。执行这一步会如果使用CentOS系统,会添加gitlab的yum源
//输出到文件里是为了看下下载的脚本内容
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh > rpm.sh
chmod +x rpm.sh
./rpm.sh
安装gitlab
//使用yum安装gitlab
yum install -y gitlab-ee
//可以看下gitlab-ee包的内容,看到gitlab安装在/opt/gitlab目录下
rpm -ql gitlab-ee | less
上面已经安装好了gitlab,不过可以稍作一些配置,配置gitlab监听的地址与端口,gitlab的配置文件在/etc/gitlab/目录下,主要配置文件为gitlab.rb
我修改了下gitlab.rb文件中的nginx监听地址,
external_url 'http://gitlab.ai-he.me'
nginx['listen_addresses'] = ['0.0.0.0', '[::]']
# 系统端口冲突,我把端口改为了82
nginx['listen_port'] = 82
里面的配置项非常的多,可以对照官网文档根据需要修改。gitlab配置选项
运行gitlab命名,并重启
//重新配置gitlab
sudo gitlab-ctl reconfigure
//重启gitlab
gitlab-ctl restart
// 查看gitlab-ctl命令的帮助信息
gitlab-ctl --help
打开浏览器查看效果,第一次打开页面会让我们设置root用户的密码。记住自己设置的密码,再次刷新进入登录页面
image.png
以管理员身份登录,默认的用户是root,密码是刚才设置的。
image.png
image.png
搭建好环境之后,下面的则根据官方文档解释,自己摸索做一些根据自己需要的修改,二次开发也可以。
最后
公司内部一般都会搭建内部gitlab仓库,自己搭建下摸索着玩玩。
参考
gitlab下载地址
gitlab配置选项
文章
应用服务中间件 · 网络安全 · 数据安全/隐私保护 · nginx · 开发工具 · git · 安全 · Linux
2018-09-19
gitlab社区版安装
gitlab社区版安装
1.安装并配置必要的依赖关系
在CentOS上,以下命令也将在系统防火墙中打开HTTP和SSH访问。
sudo yum install -y curl policycoreutils-python openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2.接下来,安装Postfix发送通知电子邮件。如果要使用其他解决方案发送电子邮件,请跳过此步骤,并在安装GitLab后配置外部SMTP服务器。
(注意,centos7中自带了postfix,需要先卸载原装的,然后再yum)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
3.添加GitLab软件包存储库并安装软件包
添加GitLab包存储库:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
接下来,我们提前在官网下载好rpm包
然后用yum localinstall 安装好
4.配置并启动GitLab
sudo gitlab-ctl reconfigure
5.浏览到主机名并登录
浏览到网页浏览器中的主机名。在您第一次访问时,您将被重定向到密码重置屏幕,以提供初始管理员帐户的密码。输入您想要的密码,您将被重定向回登录屏幕。
默认帐户的用户名是root。提供您之前创建的密码并登录。登录后,您可以更改用户名。
如果无法开启,查看防火墙是否有80端口冲突,若没有
则输入 vim /etc/gitlab/gitlab.rb
将这条链接改为你所安装gitlab的地址加端口
文章
存储 · Linux · 网络安全 · 数据安全/隐私保护 · Shell · 开发工具
2017-10-21
安装gitlab
废话不多说,搞起!
环境centos7.2
一下来自官方install 文档
1
2
3
4
5
6
7
8
sudo yum install curl policycoreutils openssh-server openssh-clients -y
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
到这步都没什么问题,下面正式安装gitlab,官方给出的是
1
2
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce -y
但是gitlab最新版9.4.1是340M,下载过程异常缓慢,坑
反正是rpm 包安装
我直接到这个网站下载
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
然后安装
1
rpm -ivh gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
安装完成之后会有提示让你重新配置gitlab
1
sudo gitlab-ctl reconfigure
gitlab 开始自己重新配置的,几分钟后,就可以用了
本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/1951469 ,如需转载请自行联系原作者
安装gitlab
废话不多说,搞起!
环境centos7.2
一下来自官方install 文档
1
2
3
4
5
6
7
8
sudo yum install curl policycoreutils openssh-server openssh-clients -y
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
到这步都没什么问题,下面正式安装gitlab,官方给出的是
1
2
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce -y
但是gitlab最新版9.4.1是340M,下载过程异常缓慢,坑
反正是rpm 包安装
我直接到这个网站下载
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
然后安装
1
rpm -ivh gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
安装完成之后会有提示让你重新配置gitlab
1
sudo gitlab-ctl reconfigure
gitlab 开始自己重新配置的,几分钟后,就可以用了
本文转自wks9751CTO博客,原文链接: http://blog.51cto.com/wks97/1951469,如需转载请自行联系原作者
云服务器 ECS 建站教程:GitLab的安装及使用
GitLab的安装及使用
前言
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Git的家族成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
Gitlab的服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse:轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
GitLab工作流程
GitLab Shell
GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表。
当通过SSH访问GitLab Server时,GitLab Shell会:
限制执行预定义好的Git命令(git push, git pull, git annex)
调用GitLab Rails API 检查权限
执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作 处理GitLab的post-receive动作
处理自定义的post-receive动作
当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码。
如果你是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作;
如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:
调用GitLab Rails API 检查权限
执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作
处理GitLab的post-receive动作
处理自定义的post-receive动作
GitLab Workhorse
GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。
Gitlab环境部署
ECS配置要求:内存2G以上
方法一:镜像部署
镜像名称:GitLab代码管理(Centos 64位 | GitLab) | 镜像帮助文档
进入镜像详情页面,单击立即购买,按提示步骤购买 ECS 实例。
购买完成之后,登录”ECS 管理控制台”,在左边导航栏里,单击”实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在”IP 地址”列获取该实例的公网 IP 地址。
注意:镜像部署好后默认是禁止远端访问的,所以直接访问ECS服务器的公网IP是不能访问到GitLab的登录界面的,请先运行/alidata目录下的gitlab_opennet.sh脚本,开启远程访问,然后再通过浏览器访问公网IP来访问GitLab的主页。
方法二:手动部署:
1、配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容:
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key
2、更新本地yum缓存
sudo yum makecache
3、安装GitLab社区版
sudo yum intall gitlab-ce #自动安装最新版
sudo yum install gitlab-ce-x.x.x #安装指定版本
GitLab常用命令:
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
GitLab使用
登录GitLab
1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。
2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。
创建Project
1、安装Git工具linux:安装Git,使用自带的源安装。
yum install git
2、生成密钥文件
使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。
3.在GitLab的主页中新建一个Project
4.添加ssh key导入步骤2中生成的密钥文件内容:
ssh key添加完成:
项目地址,该地址在进行clone操作时需要用到:
简单配置
1、配置使用Git仓库的人员姓名
git config --global user.name "上海驻云"
2、配置使用Git仓库的人员email,填写自己的公司邮箱
git config --global user.email "support@jiagouyun.com"
3、克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件
git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git
上传文件
1、进入到项目目录
cd test/
2、创建需要上传到GitLab中的目标文件
echo “test” > /root/test.sh
3、将目标文件或者目录拷贝到项目目录下
cp /root/test.sh ./
4、将test.sh文件加入到索引中
git add test.sh
5、将test.sh提交到本地仓库
git commit -m “test.sh”
6、将文件同步到GitLab服务器上
git push -u origin master
7、在网页中查看上传的test.sh文件已经同步到GitLab中
原文链接
文章
弹性计算 · Java · 开发工具 · git · Ruby
2017-08-08
GitLab的安装及使用教程
GitLab基本介绍
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
本篇教程将教你如何安装部署及使用GitLab。
Git的家族成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
Gitlab的服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
GitLab工作流程
GitLab Shell
GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表。
当通过SSH访问GitLab Server时,GitLab Shell会:
限制执行预定义好的Git命令(git push, git pull, git annex)
调用GitLab Rails API 检查权限
执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作 处理GitLab的post-receive动作
处理自定义的post-receive动作
当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码。
如果你是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作;
如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:
调用GitLab Rails API 检查权限
执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作
处理GitLab的post-receive动作
处理自定义的post-receive动作
GitLab Workhorse
GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。
Gitlab环境部署
ECS配置要求:内存2G以上
方法一:镜像部署
点击购买,免费获得GitLab全套环境镜像。(点击查看:镜像帮助文档)
GitLab代码管理(Centos 64位 | GitLab)
进入镜像详情页面,单击立即购买,按提示步骤购买 ECS 实例。
购买完成之后,登录“ECS 管理控制台”,在左边导航栏里,单击“实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在“IP 地址”列获取该实例的公网 IP 地址。
注意:镜像部署好后默认是禁止远端访问的,所以直接访问ECS服务器的公网IP是不能访问到GitLab的登录界面的,请先运行/alidata目录下的gitlab_opennet.sh脚本,开启远程访问,然后再通过浏览器访问公网IP来访问GitLab的主页。
方法二:手动部署:
1、配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo复制以下内容:
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key
2、更新本地yum缓存
sudo yum makecache
3、安装GitLab社区版
sudo yum intall gitlab-ce #自动安装最新版
sudo yum install gitlab-ce-x.x.x #安装指定版本
GitLab常用命令
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
GitLab使用
登录GitLab
1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。
2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。
创建Project
1、安装Git工具linux:安装Git,使用自带的源安装。
yum install git
2、生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。
3.在GitLab的主页中新建一个Project
4.添加ssh key导入步骤2中生成的密钥文件内容:
ssh key添加完成:
项目地址,该地址在进行clone操作时需要用到:
简单配置
1、配置使用Git仓库的人员姓名(以上海驻云为例)
git config --global user.name "上海驻云" 2、配置使用Git仓库的人员email,填写自己的公司邮箱
git config --global user.email "support@jiagouyun.com"
3、克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件
git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git
上传文件
1、进入到项目目录
cd test/ 2、创建需要上传到GitLab中的目标文件
echo “test” > /root/test.sh3、将目标文件或者目录拷贝到项目目录下
cp /root/test.sh ./
4、将test.sh文件加入到索引中
git add test.sh 5、将test.sh提交到本地仓库
git commit -m “test.sh”6、将文件同步到GitLab服务器上
git push -u origin master
7、在网页中查看上传的test.sh文件已经同步到GitLab中
更多基础教程:
快速搭建ThinkPHP框架教程
快速搭建WordPress网站教程
建网站怎么选合适的网站模版如何几分钟内建好企业网站
Tomcat部署Java Web项目教程
部署Linux主机管理系统WDCP
快速用Discuz搭建论坛网站教程
云市场头条基础教程频道
更多开源软件尽在云市场:
https://market.aliyun.com/software
文章
弹性计算 · 网络安全 · 开发工具 · git · Ruby
2017-04-24
Centos 7.x 配置Gitlab
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
1. 安装并配置必要的依赖关系
如果你想使用 Postfix 发送邮件,请在安装过程中根据提示选择 'Internet Site'。 你也可以用 Sendmail 或者 配置一个自定义的 SMTP 服务 并 把它作为一个 SMTP 服务器。
在 CentOS 系统上,下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。
sudo yum -y install curl policycoreutils openssh-server openssh-clientssudo systemctl enable sshdsudo systemctl start sshdsudo yum -y install postfixsudo systemctl enable postfixsudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2. 添加 GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
如果你不太习惯使用命令管道的方式安装镜像仓库,你可以在这里找到 完整的安装脚本 或者 选择系统对应的安装包 使用下面的命令手动安装。
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
rpm -i gitlab-ce-XXX.rpm
3. 配置并启动 GitLab
sudo gitlab-ctl reconfigure
4. 通过浏览器访问上一步配置的域名
第一次访问 GitLab,系统会重定向 url 到重置密码的页面,你需要输入初始化管理员账号的密码。 设置完成后,系统会重定向到登录界面,你就可以使用刚才输入的密码登录系统了。
系统默认的管理员账号为 root, 登录系统后,你可以修改管理员账号为自己喜欢的账号。
如需修改访问地址以及端口, vim /etc/gitlab/gitlab.rb -- external_url 'http://localhost:90'
文章来源:GITLAB
文章
数据安全/隐私保护 · Linux · 网络安全 · 开发工具 · git · Shell
2017-12-22
阿里云ESC 部署 GitLab-ce 并配置使用外部 nginx
最近试着在阿里云的 ESC 上部署了一下 GitLab 的社区版本,并且使用了非内嵌的 nginx 服务,遇到不少坑,特意记录一下。
首先是安装 GitLab 社区版,具体安装的流程按照官网的说明来进行。GitLab 官方提供了 Omnibus包安装、社区提供的安装方法、和官方的其他安装方法。这里推荐使用 Omnibus 包来安装,这也是官方推荐的方式。用这个包安装部署gitlab,便于后期的配置修改和更新。
Omnibus 包安系统版本分为不同的包,我的系统是 Centos7的,所以采用对应7的安装包。步骤如下:
一 官方Centos7的安装说明地址
https://www.gitlab.com.cn/installation/#centos-7
1.安装相关依赖,打开系统防火墙的 HTTP 和 SSH的访问。
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2.添加GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
3.配置并启动服务
sudo gitlab-ctl reconfigure
4.通过访问上面配置的域名来重新设置管理员密码。
这里需要注意,因为我们后面要改用外部的 nginx 服务,要 copy 使用 gitlab 默认生成的 nginx 服务配置文件,所以在第三步先不要修改任何信息,直接执行配置命令即可。
GitLab 服务安装部署完成,接下来是配置该服务使用外部的 nginx 来访问。
GitLab默认使用内部的 nginx 服务作为代理访问,按照官网的说明,可以使用已有的外部 nginx 来代替。官网的修改步骤地址:
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server
按照这个步骤修改,有些繁琐。下面有一个偷懒的方法:
还记得上面的安装步骤中,最后配置的那一步吗?我们在执行这一步的时候,先不要修改任何配置,由 reconfigure 操作生成 GitLab 使用内部 nginx 的所有配置文件,然后将相关的配置文件 copy 到本地使用的 nginx 服务的配置目录,配置相关访问域名就可以了。
GitLab 默认生成的 nginx 配置文件位置在 /var/opt/gitlab/nginx/conf。
1.将gitlab-http.conf 和nginx-status.conf copy 到本地的 nginx 配置目录就可以了。然后参考 GitLab 的 nginx.conf 内容,修改本地的 nginx 配置,重启 nginx 服务。
2.修改 GitLab 的配置文件内容,位置在/etc/gitlab/gitlab.rb。修改内容如下:
在配置文件结尾,添加如下信息:
#定义访问域名
external_url 'http://git.example.com'
#禁用内部 nginx
nginx['enable'] = false
#配置可以访问 gitlab 工作目录的用户,赋予 nginx 用户对该目录的读写权限
web_server['external_users'] = ['nginx','gitlab-www','git']编辑以上内容后保存,重新执行 gitlab 的配置操作。
sudo gitlab-ctl reconfigure
以上操作完成后,即可以正常访问 gitlab 服务了。
文章
应用服务中间件 · nginx · Linux · 网络安全 · 数据安全/隐私保护 · 开发工具 · git · Shell
2017-09-14
asp.net core结合Gitlab-CI实现自动化部署
一、前言在之前的文章中写过k8s+Jenkins+GitLab-自动化部署asp.net core项目 的topic,这次讲解一下gitlab-ci的CI/CD,说实话,自动化部署是在是非常的舒服,而且gitlab-ci很适合中小项目的部署,大项目推荐使用k8s。
阅读目录:
1、gitlab-ci及gitlab-runner说明
2、部署环境介绍
3、安装gitlab和gitlab-runner
4、asp.net core项目配置
二、Gitlab-CI及Gitlab-Runner说明1、GitLab-CI
即GitLab上的CI功能,持续集成功能可以实现代码提交后自动测试、编译、发布、部署等自动化工作持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。
2、GitLab-RunnerGitLab在接收到代码提交事件时,通过.gitlab-ci.yml的配置信息与对应节点上的runner进行交互。Runner需要在CI上进行注册后方可使用。Runner相当于代替人工在安装了Runner的服务器上运行yml文件上的配置。通常由GitLab上的项目更新触发。
三、环境介绍
四、安装gitlab和gitalb-runner
1、在140这台服务器上在Docker上运行gitalb
此gitlab由于是测试,因此没有进行数据的挂载,在生产环境中需要用到数据的挂载。
命令如下:这边要注意一下 gitlab需要用到22端口,而CentOS服务器ssh连接也是用22端口,因此需要让gitalb使用。具体操作可以看:CentOS服务器安装Telnet来远程连接服务器docker run --detach --hostname localhost --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always gitlab/gitlab-ce:latest
这样即可运行成功
2、在142服务器上安装git
在gitalb-ci.yml 文件中我有用到git 来进行拉取代码到本地服务器上的。
命令:
yum install -y git
3、在服务器上安装dotnet SDK
gitlab-ci.yml文件中git拉取完代码后需要把代码进行编译、发布出来,因此需要用到dotnet sdk。
在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项。这只需要每台机器完成一次。打开命令提示符并运行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
安装.NET SDK,更新可用于安装的产品,然后安装.NET SDK。在命令提示符中,运行以下命令:
sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.0.0
4、现在可以在服务器上安装gitlab-runner了
安装gitlab-runner的方式很多,有使用gitlab存储库的,以及手动安装,具体的可以参考官方给出的方案,这边我采用手动安装gitlab-runner
下载二进制文件
Linux x86-64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
赋予权限:
sudo chmod +x /usr/local/bin/gitlab-runner
创建gitlabCI用户:
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
安装并作为运行服务:
sudo /usr/local/bin/gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runnersudo /usr/local/bin/gitlab-runner start
5、现在就开始注册我们的gitlab-runner啦
注册runner需要配合我们的gitlab来操作。
第一步:我们先打开一下我们的gitlab,切换到我们的Runners栏目
在这里我们可以看到一个是 url和token,这两个内容是我们必须的。
第二步:切换回我们的服务器上
执行命令 注册:
gitlab-runner register
接下来要填写的信息比较多,具体请看下面的内容。
注:第一个和第二个不要写错了,直接复制即可。
注册完成后即可在gitlab Runners 中可以看到
第三步:点击修改一下 runner
把此栏目的勾选一下,否则在自动化部署时项目无法监测到runner的存在,除非项目上传的时候带上tag标签。
然后我们选择一下 此runner 挂钩的 项目。我们选择项目,点击后面的 “Enable”即可。
到目前为止gitlab配置完成,现在配置一下asp.net core项目吧
五、asp.net core项目配置 注:我已经把项目代码上传到github上,可供下载:gitlabci
1、创建一个asp.net core webapi项目
在项目中添加 .gitlab-ci.yml 文件,该文件是用来配置Runner对当前项目进行的操作。
复制代码variables: GIT_STRATEGY: nonestages:
testtest_job:
stage: test only:
- master
script:
- cd /home/gitproject
- rm -rf /home/gitproject/gitrunner
- git clone http://root:12345678@192.168.161.140/Team/gitrunner.git
- cd ./gitrunner
- dotnet build --configuration Release
- rm -rf /home/project/gitrunner
- docker stop gitci
- docker rm gitci
- docker rmi gitciimages
- dotnet publish -c Release --output /home/project/gitrunner
- cd /home/project/gitrunner
- docker build -t gitciimages .
- docker run -d -v /home/project/gitrunner:/code -p 5001:80 --name gitci --restart always gitciimages
复制代码
具体的参数说明可以参考 gitlab官网给出的。gitlab-ci.yml 配置
2、当然在项目里面也需要 Dockerfile文件
Dockerfile,并且把Dockerfile文件设置为 始终复制,不然在发布的过程中会丢失文件。
FROM microsoft/aspnetcoreCOPY . /codeWORKDIR /code EXPOSE 5001CMD ["dotnet","gitlabcicd.dll"]
3、现在我们就可以使用 git上传代码啦
上传后我们就可以在 gitlab Commits里面查看啦
进入执行查看
4、自此即可在我们的142服务器上的docker 查看到我们所运行的容器啦。
六、总结上面的runner安装之前讲解了一种,其实还有很多种,具体可以看一下官方给出的案例。
到目前为止发现自动化部署是在是太方便了。有gitlab- CI/CD、以及k8s CI/CD,当然还有gitlab结合jenkins CI/CD,有兴趣的同学可以看看我之前的文章。欢迎给我留言
文章
存储 · 开发框架 · Kubernetes · .NET · Linux · 持续交付 · 开发工具 · git · Docker · 容器
2020-09-06