centos7部署gitlab
系统:centos7.0mini
yum install -y net-tools vim wget
#关闭防火墙
systemctl stop firewalld.service //停止firewall服务
systemctl disable firewalld.service //关闭firewall开机启动
#查看防火墙状态(关闭后显示not running,开启后显示running)
firewall-cmd --state
#查看SELinux状态:
1、 #如果SELinux status参数为enabled即为开启状态
/usr/sbin/sestatus -v
SELinux status: enabled
2、#也可以用这个命令检查
getenforce
#关闭SELinux:
1、临时关闭(不用重启机器):
#设置SELinux 成为关闭permissive模式
setenforce 0
# 设置SELinux 成为启用enforcing模式
setenforce 1
#修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
更换yum源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
vim /etc/yum.repos.d/epel.repo
打开/etc/yum.repos.d/epel.repo,将
- [epel]
- name=Extra Packages for Enterprise Linux 7 - $basearch
- #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
- mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
修改为
- [epel]
- name=Extra Packages for Enterprise Linux 7 - $basearch
- baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
- #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
yum install -y git #安装git
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python #安装依赖
systemctl start postfix #启动postfix
systemctl enable postfix #开机启动postfix
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ #清华镜像库,可以下载gitlab的rpm包
https://gitlab.com/xhang/gitlab #gitlab中文社区,可以下载汉化包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.1.17-ce.0.el7.x86_64.rpm #下载gitlab
rpm -i gitlab-ce-12.1.17-ce.0.el7.x86_64.rpm #安装gitlab
vim /etc/gitlab/gitlab.rb #修改ip和默认端口号
external_url 'http://IP:80'
gitlab-ctl reconfigure #加载配置
gitlab-ctl restart #重启
tar -zvxf gitlab-12-1-stable-zh.tar.gz #将下载的汉化包解压
cp -rp /opt/gitlab/embedded/service/gitlab-rails{,.bak_$(date +%F)} #备份原文件(备份到上级目录)
\cp -rf ./* /opt/gitlab/embedded/service/gitlab-rails #将汉化包覆盖过去,需要在汉化包目录内(\为不使用cp命令的别名)
gitlab-ctl reconfigure #加载配置
gitlab-ctl start #汉化后可能会出现502,需要多等一会就行了
汉化后到gitlab偏好设置中设置为简体中文就完美了。
###打补丁的汉化方式###
1.clone补丁文件
git clone https://gitlab.com/xhang/gitlab.git
2.生成补丁文件
cd gitlab
#查看gitlab版本号
gitlab_version=$(sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION) && echo $gitlab_version
#查看汉化包版本号(*一定要保证和gitlab的版本号一致)
cat VERSION
#导出 patch 用的 diff 文件
git diff v${gitlab_version} v${gitlab_version}-zh > ../${gitlab_version}-zh.diff
3.导入汉化补丁
gitlab-ctl stop
cd ../
#可能会提示让你输入文件路径,一路回车就行了。
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ${gitlab_version}-zh.diff
4.重新加载配置,启动服务
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab主配置文件:/etc/gitlab/gitlab.rb # 可以自定义一些邮件服务等
日志目录:/var/log/gitlab/ # 对应各服务
服务目录:/var/opt/gitlab/ # 对应各服务的主目录
仓库目录:/var/opt/gitlab/git-data # 记录项目仓库等提交信息
重启服务:gitlab-ctl stop/start/restart # 启动命令
对接LDAP认证
gitlab_rails['ldap_enabled'] = true
###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: '10.1.1.23'
port:389
uid: 'uid' # 这里是个很坑的地方,在这里,用的是ldap的uid字段作为用户登录名,所以直接写了uid,换句话说,冒号前面的uid跟ldap不是一个意思的。
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'cn=admin,dc=fancyguo,dc=cn'
password: 'fancy1dap'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'dc=fancyguo,dc=cn' #这里设置用户名查找位置
user_filter: ''
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
EOS
复制下列粘贴进去
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: '10.1.1.23'
port: 389
uid: 'uid'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'cn=admin,dc=fancyguo,dc=cn'
password: 'fancy1dap'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'dc=fancyguo,dc=cn'
user_filter: ''
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
EOS
1.host,是搭建的ldap的ip,根据实际情况修改;
2.uid,可以配置cn,也可以配置uid,都能识别(具体为什么没深入研究);
3.bind_dn,ldap的管理员账号,根据实际情况修改;
4.password,ldap的管理员,根据实际情况修改;
5.active_directory,似乎是针对连接是否是ad域控的标示,因为这部分是ldap的配置,故为false;
6.allow_username_or_email_login,用户登录是否用户名和邮箱都可以,方便用户故配置true;
7.base,用户列表所在的目录,因为新增的用户都在ldap的People下,故这么配置,根据实际情况修改;
配置完成后进行配置更新:
gitlab-ctl reconfigure
检查是否配置成功:
gitlab-rake gitlab:ldap:check(列出前100个用户)
重启gitlab服务:
gitlab-ctl restart

浙公网安备 33010602011771号