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,将

  1. [epel]
  2. name=Extra Packages for Enterprise Linux 7 - $basearch
  3. #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
  4. mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

修改为

  1. [epel]
  2. name=Extra Packages for Enterprise Linux 7 - $basearch
  3. baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
  4. #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

 

 

posted @ 2020-05-14 21:37  {诗酒趁年华}  阅读(211)  评论(0)    收藏  举报