一、概述
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Gitlab的服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
二、系统架构跟规划
2.1 架构图
2.2 节点规划
因为服务器资源限制,目前只有两台机器,所有 gitlab redis pg 都安装在这两台服务器上(资源充足的话建议分开),nfs 是在云平台购买的一块nas 盘
Gitlab Rail Server |
192.168.1.205(主) 192.168.1.207(主) |
Redis |
192.168.1.205(从) 192.168.1.207(主) |
PostgreSQL |
192.168.1.205(主) 192.168.1.207(从) |
NFS |
192.168.100.4:/csp_vol1001_prd |
三、部署安装
3.1 PG主从安装
master 192.168.1.205
slave 192.168.1.207
#postgres 安装
yum -y install readline readline-devel zlib-devel
tar -xvf postgresql-10.3.tar.gz
cd postgresql-10.3
./configure
make && make install
PostgreSQL默认安装目录为 /usr/local/pgsql/
#创建用户:
groupadd -g 1004 postgres
useradd postgres -u 1004 -g postgres
pass@pg
#建议数据及日志目录
mkdir -p /data/pgsql/5432
mkdir -p /data/logs/pgsql
mkdir /data/pgsql/5432/arch
mkdir /data/pgsql/5432/arch_master
更改文件夹所有者为用户postgres
chown postgres.postgres -R /data/pgsql/
chown postgres.postgres -R /data/logs/pgsql
chown postgres.postgres -R /usr/local/pgsql
- 设置 profile
export PGHOME="/usr/local/pgsql/"
export PGDATA="/data/pgsql/5432/"
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH
- 初始化数据库
su "postgres"
/usr/local/pgsql/bin/initdb -D /data/pgsql/5432
- 设置开机自启
cd /data/xjk/software/mysql/postgresql-10.3/contrib/start-scripts
cp linux /etc/init.d/postgresql
chkconfig --add postgresql
chkconfig postgresql on
上面安装步骤需要在主备库都安装
#在主库操作:
su postgre