Gitlab 安装和维护

1. 安装

本实例ip地址:192.168.10.10

1.1 yum安装

# 官网安装文档:https://about.gitlab.com/install/#centos-7
# 安装依赖
yum install -y curl policycoreutils-python openssh-server perl

#  GitLab使用postfix发送邮件
yum install postfix
systemctl enable postfix
systemctl start postfix

# 国内源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
# 此例子选择centos7 :https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
yum install wget
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.4-ce.0.el7.x86_64.rpm
yum install gitlab-ce-14.4.4-ce.0.el7.x86_64.rpm

# 配置文件【/etc/gitlab/gitlab.rb】url为本地ip地址:external_url 'http://192.168.10.10:9000'
sed -i 's#^external_url.*$#external_url '\''http://192.168.10.10:9000'\''#g' /etc/gitlab/gitlab.rb

# 配置邮箱,通过邮箱进行账号注册和密码修改: 请补充邮箱:xxx@163.com
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxx@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'	# 发件人的显示名称

## smtp设置:根据自己的邮箱进行设置即可: 请补充邮箱:xxx@163.com
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"	# smtp服务器
gitlab_rails['smtp_port'] = 465	# smtp端口号
gitlab_rails['smtp_user_name'] = "xxx@163.com"	# 用户名
gitlab_rails['smtp_password'] = "xxxxxxxx"
gitlab_rails['smtp_domain'] = "163.com"	# 域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

# 初始化gitlab配置: 每次修改/etc/gitlab/gitlab.rb ,都要执行
gitlab-ctl reconfigure

# 启动gitlab
gitlab-ctl start
gitlab-ctl restart
gitlab-ctl status
gitlab-ctl stop

1.2 脚本安装

#!/bin/bash
# 访问设置
external_url="http://192.168.10.10:9000"
# 邮箱设置
smtp_user_name="xxx@163.com"
smtp_password="xxxxxxxx"
smtp_address="smtp.163.com"
smtp_port=465
smtp_domain="163.com"
# 发件人显示名称,字符串中间不能有空格
gitlab_email_display_name="Gitlab"
# 软件版本
software="gitlab-ce-14.4.4-ce.0.el7.x86_64.rpm"
soft_url="https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/"

# 如下自动执行
softname="gitlab-ce"
## 安装依赖
yum install -y curl policycoreutils-python openssh-server perl postfix wget > /dev/null 2>&1
systemctl enable postfix > /dev/null 2>&1
systemctl start postfix > /dev/null 2>&1

# 下载软件
if [ ! -f ${software} ];then
	echo "正在下载安装包:${software}"
    wget --no-check-certificate ${soft_url}${software} > /dev/null 2>&1
    [ ! -f ${software} ] && echo "${software} download failure,exit" && exit
else
	echo "安装包已存在:${software}"
fi

# 检查并安装软件
rpm -qa ${softname} > /dev/null 2>&1
if [ "$?" -ge 1 ];then
    echo "${software} 正在安装中..."
    yum -y install ${software} > /dev/null 2>&1
    rpm -qa ${softname} > /dev/null 2>&1
    [ $? -ge 1 ] && echo "${software} 安装失败,退出整个程序" && exit
     echo "${software} 安装成功"
else
	echo "${softname} 已经安装"
fi

# 设置配置文件
sed -i 's#^external_url.*$#external_url '\'''${external_url}''\''#g' /etc/gitlab/gitlab.rb

# 设置邮件
# gitlab_email_enabled
sed -i 's/^.*gitlab_rails\['\''gitlab_email_enabled'\''\].*$/gitlab_rails['\''gitlab_email_enabled'\''] = true/g' /etc/gitlab/gitlab.rb

# gitlab_email_from
sed -i 's/^.*gitlab_rails\['\''gitlab_email_from'\''\].*$/gitlab_rails['\''gitlab_email_from'\''] = '\'''${smtp_user_name}''\''/g' /etc/gitlab/gitlab.rb

# gitlab_email_display_name
sed -i 's/^.*gitlab_rails\['\''gitlab_email_display_name'\''\].*$/gitlab_rails['\''gitlab_email_display_name'\''] = '\'''${gitlab_email_display_name}''\''/g' /etc/gitlab/gitlab.rb

# smtp_enable
sed -i 's/^.*gitlab_rails\['\''smtp_enable'\''\].*$/gitlab_rails['\''smtp_enable'\''] = true/g' /etc/gitlab/gitlab.rb

# smtp_address
sed -i 's/^.*gitlab_rails\['\''smtp_address'\''\].*$/gitlab_rails['\''smtp_address'\''] = "'${smtp_address}'"/g' /etc/gitlab/gitlab.rb

# smtp_port
sed -i 's/^.*gitlab_rails\['\''smtp_port'\''\].*$/gitlab_rails['\''smtp_port'\''] = '${smtp_port}'/g' /etc/gitlab/gitlab.rb

# smtp_user_name
sed -i 's/^.*gitlab_rails\['\''smtp_user_name'\''\].*$/gitlab_rails['\''smtp_user_name'\''] = "'${smtp_user_name}'"/g' /etc/gitlab/gitlab.rb

# smtp_password
sed -i 's/^.*gitlab_rails\['\''smtp_password'\''\].*$/gitlab_rails['\''smtp_password'\''] = "'${smtp_password}'"/g' /etc/gitlab/gitlab.rb

# smtp_domain
sed -i 's/^.*gitlab_rails\['\''smtp_domain'\''\].*$/gitlab_rails['\''smtp_domain'\''] = "'${smtp_domain}'"/g' /etc/gitlab/gitlab.rb

# smtp_authentication
sed -i 's/^.*gitlab_rails\['\''smtp_authentication'\''\].*$/gitlab_rails['\''smtp_authentication'\''] = "login"/g' /etc/gitlab/gitlab.rb

# smtp_enable_starttls_auto
sed -i 's/^.*gitlab_rails\['\''smtp_enable_starttls_auto'\''\].*$/gitlab_rails['\''smtp_enable_starttls_auto'\''] = true/g' /etc/gitlab/gitlab.rb

# smtp_tls
sed -i 's/^.*gitlab_rails\['\''smtp_tls'\''\].*$/gitlab_rails['\''smtp_tls'\''] = true/g' /etc/gitlab/gitlab.rb

# 显示结果
echo "修改配置后的结果"
cat /etc/gitlab/gitlab.rb |grep -E "${external_url}|gitlab_email_enabled|gitlab_email_from|gitlab_email_display_name|smtp_enable|smtp_address|smtp_port|smtp_user_name|smtp_password|smtp_domain|smtp_authentication|smtp_enable_starttls_auto|smtp_tls"

# 启动gitlab
gitlab-ctl reconfigure > /dev/null 2>&1

# 密码输出
cat /etc/gitlab/initial_root_password |grep ^Password

2. 备份

# 手动备份
# 自动备份到:/var/opt/gitlab/backups/ :配置文件:gitlab_rails['backup_path']
# 默认保留7天:604800	:配置文件:gitlab_rails[‘backup_keep_time’]
# 如下手动备份命令
gitlab-rake gitlab:backup:create
# 输出:1639315073_2021_12_12_14.4.4_gitlab_backup.tar
# 或者查看目录:/var/opt/gitlab/backups/

# 自动备份,使用系统自带的crontab
crontab -e
0 3 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

3. 恢复

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 开始恢复:1639315073_2021_12_12_14.4.4为目录:/var/opt/gitlab/backups/下的文件名数字前缀
gitlab-rake gitlab:backup:restore BACKUP=1639315073_2021_12_12_14.4.4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值