一键安装与配置gitlab(脚本)

一、解决问题概述

该脚本可以解决 gitlab安装、配置访问网址、配置初始登录密码、配置系统的邮箱。

二、脚本内容

#!/bin/bash

#下面是定义颜色变量,用来给输出变量定义
RED='\e[1;31m' #输出为红色
GREEN='\e[1;32m' #输出为绿色
YELLOW='\033[1;33m'
BLUE='\E[1;34m'
PINK='\E[1;35m'
RES='\033[0m'


#下面这个函数是gitlab的安装步骤
function install() {
  #安装依赖
  yum install curl wget policycoreutils policycoreutils-python openssh-server openssh-clients postfix -y >/dev/null
  systemctl enable sshd
  systemctl start sshd
  sed -i 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
  
  #正式安装gitlab
  curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh  | sudo bash > /dev/null
  sed -i "s/baseurl=https:\/\/packages.gitlab.com\/gitlab\/gitlab-ce\/el\/7\/\$basearch/baseurl=https:\/\/mirrors.tuna.tsinghua.edu.cn\/gitlab-ce\/yum\/el\$releasever\//g" /etc/yum.repos.d/gitlab_gitlab-ce.repo  
  yum makecache &>/dev/null
  yum install gitlab-ce -y 
  #已经安装完成
 

  #验证是否安装成功
  right=$(yum list installed | grep gitlab-ce)
  gitlab='gitlab-ce'
    if [[ ${right} =~ "${gitlab}" ]];then
      echo "gitlab-ce已经安装成功啦!"
    else
      echo "gitlab-ce没有安装成功,请重新检查!"
      exit
    fi
}



#此函数是修改gitlab的访问url
function url() {
until [[ $flag == "yes" || $flag == "YES" || $flag == "Y" || $flag == "y" || $flag == "NO" || $flag == "no" || $flag == "N" || $flag == "n" ]]
do
    read -p "请问您是否使用您的ip+端口实现访问:(yes|no)" flag
    case $flag in
       yes|YES|Y|y)
         until [[ $cloud == "云主机" || $cloud == "虚拟机" ]]
         do
         read -p "请输入您目前使用的机器:(云主机|虚拟机)" cloud
         if [[ $cloud == "云主机" ]];then
            line=$(wget -qO - ifconfig.co)
            sed -i "s?'http://gitlab.example.com'?'http://$line:9418'?g" /etc/gitlab/gitlab.rb
            gitlab-ctl reconfigure
            gitlab-ctl stop > /dev/null
            gitlab-ctl start > /dev/null
            echo -e "\n"
            echo "此时访问http://$line:9418就可以显示gitlab的页面了"
            echo -e "\n" 
            echo -e " ${red} 如果此时页面显示502,请检查您的机器性能是否大于2核4G,或者等待一分钟后重新刷新,祝你好运!${RES}"      
         elif [[ $cloud == "虚拟机" ]];then
            virtual=$(ifconfig | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}')
            sed -i "s?http://gitlab.example.com?http://$virtual:9418?g" /etc/gitlab/gitlab.rb
            restart > /dev/null
            echo "此时访问http://$line:9418就可以显示gitlab的页面了"
         else 
            echo "输入错误!"
         fi
         done
         ;;
       no|NO|N|n)
         echo "请确保您的域名申请成功!"
         ;;
       *)
         echo "您的输入不正确,请您重新输入"
         continue
         ;;
    esac
done
}




#此函数用来修改root的默认密码
function passwdction() {
while :
do
 read -p "请输入您要设置的密码,最少需要八位:" passwd
 if [[ ${#passwd} -ge 8 ]]; then
   cd /opt/gitlab/bin
   gitlab-rails console -e production <<EOF 
     u=User.where(id:1).first
     u.password="${passwd}"
     u.password_confirmation="${passwd}"
     u.save!
EOF

   echo "密码设置成功啦,现在就可以用root/和您设置的密码登陆啦!快试试吧"
   break
 else
   echo "您设置的密码不合规,请您重新设置!"
 fi
done
}

#下面这个函数是用来设置邮箱的
function email(){
echo -e "
这个项目是用来添加gitlab的默认邮箱,即出现变动时发送提醒的邮箱!
请准备您想设置的邮箱的SMTP服务器的地址!
例如:
网易163邮箱:smtp.163.com
QQ邮箱:smtp.qq.com
另外,请准备邮箱的授权码!获取方式参考:https://blog.csdn.net/Romanticn_chu/article/details/120826559
接下来,开始进项邮箱配置了!
"
while :
do
  run=$(systemctl status postfix | grep "Active" | awk '{print $3}' | sed -r 's/[()]//g')
  if [[ $run == "running" ]];then
    echo "postfix已经开启!可以继续配置了"
    break
  elif [[ $run == "dead" ]];then
    systemctl start postfix
    continue
  else
    echo "postfix启动失败,请您检查postfix的配置是否正确!"
    exit
  fi
done

read -p "请输入您的邮箱的smtp服务器的地址:" smtp
read -p "请输入您想设置为默认发送服务器的邮箱地址:" address
read -p "请输入您的邮箱授权码:" chmod1

echo -e "
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = \"${smtp}\"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = \"${address}\"
gitlab_rails['smtp_password'] = \"${chmod1}\"
gitlab_rails['smtp_domain'] = \"${smtp}\"
gitlab_rails['smtp_authentication'] = \"login\"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '${address}'
gitlab_rails['gitlab_email_reply_to'] = '${address}'
" >> /etc/gitlab/gitlab.rb

gitlab-ctl reconfigure

read -p "请输入一个用来接受测试邮件的地址:" accept
gitlab-rails console <<EOF
Notify.test_email('${accept}','test','这是一封来自gitlab的测试邮件,如果您收到了,说明您的邮件配置已经成功了!').deliver_now
EOF

echo “如果您没有收到测试邮件,请确认您使用的授权码以及邮箱的服务器地址是否正确,祝您好运!”
}

#主函数
function main() {
   echo -e "
这是一个安装并配置Gitlab以达到一键安装的脚本!
请确保您需要安装的主机端口 ${BLUE} 80 8080 8060 9090 9100 9121 9168 9187 ${RES} 没有被占用,并已经开启!
请确保您的主机性能大于2核4G!
如果您使用的云主机请确保以上端口在安全组中被允许!
   "
while :
  do
    read -p "您确定您的端口都已经打开且没有被占用: (yes|no)" port
    if [[ $port == "yes" ]];then
        echo "OK!您可以进行接下来的操作啦!"
        break
    elif [[ $port == "no" ]];then
        echo "请您进行操作后重新运行此脚本!"
        exit
    else
        echo "您的输入不正确!!!"
    fi
  done
       
   echo -e "----------------------------- ${YELLOW} 我是分割线 ${RES} ------------------------------------"
   echo "
1、安装并进行配置
2、安装gitlab
3、配置gitlab的访问位置
4、配置gitlab的初始访问密码
5、配置邮件发送
6、此选项用来退出程序!

  "   
    echo -e "----------------------------- ${YELLOW} 我是分割线 ${RES} ------------------------------------"
while :
  do
     read -p "请输入您想进行的操作:" choose
     case $choose in
       1)
        install
        url
        passwdction
        email
        break
        ;;
       2)
        install
        ;;
       3)
        url
        ;;
       4)
        passwdction
        ;;
       5)
        email
        break
        ;;
       6)
        exit
        ;;
       *)
        echo "您的输入错误,请重新输入!"
    esac
  done
}

#主函数调用
main

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值