脚本部署harbor仓库

6 篇文章 0 订阅
1 篇文章 0 订阅

脚本一键部署docker-harbor
脚本下载链接

#!/bin/bash
#
#********************************************************************
#Author:            chenjiahao
#QQ:                1938191576
#Date:              2022-10-19
#FileName:          install_harbor.sh
#URL:               https://www.placjh.com
#Description:       The test script
#Copyright (C):     2022 All rights reserved
#********************************************************************

VERSION=v2.6.1
DIR=/apps
PASSWORD=123456

find_docker_compose(){
	docker --version &>/dev/null
	if [ ! $? -eq 0 ];then
		echo "请先安装docker"
		exit
	fi
	docker-compose version &>/dev/null
	if [ ! $? -eq 0 ];then
		echo "没有安装docker-compose,开始自动为你下载"
		curl -L https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose &>/dev/null
		if [ ! $? -eq 0 ];then
			echo "下载docker-compose失败,请重试"
			rm -rf /usr/local/bin/docker-compose
			exit
		fi
		chmod +x /usr/local/bin/docker-compose &>/dev/null
	fi
}
download(){
	if [ ! -f harbor-offline-installer-$VERSION.tgz ];then
		wget https://github.com/goharbor/harbor/releases/download/$VERSION/harbor-offline-installer-$VERSION.tgz &>/dev/null
		if [ ! $? -eq 0 ];then
			echo "下载失败,请重试"
			rm -rf harbor-offline-installer-$VERSION.tgz
			exit
		fi
	fi
	[ -d $DIR ] || mkdir $DIR
	tar xf harbor-offline-installer-$VERSION.tgz -C $DIR/
}

install(){
	if [ ! -f $DIR/harbor/harbor.yml ];then
		if [ -f $DIR/harbor/harbor.yml.tmpl ];then
			mv $DIR/harbor/harbor.yml.tmpl $DIR/harbor/harbor.yml
			sed -i "s/hostname: reg.mydomain.com/hostname: `hostname -I|awk '{print $1}'`/" $DIR/harbor/harbor.yml
			sed -i '/^https:/ s/^/#/' $DIR/harbor/harbor.yml
			sed -i '/port: 443/ s/^/#/p' $DIR/harbor/harbor.yml
			sed -i '/certificate:/ s/^/#/p' $DIR/harbor/harbor.yml
			sed -i '/private_key/ s/^/#/p' $DIR/harbor/harbor.yml
			sed -i "/harbor_admin_password:/ s/Harbor12345/$PASSWORD/" $DIR/harbor/harbor.yml
		elif [ -f $DIR/harbor/harbor.cfg ];then
			sed -i "s/hostname: reg.mydomain.com/hostname: `hostname -I|awk '{print $1}'`/" $DIR/harbor/harbor.cfg
			sed -i '/^https:/ s/^/#/' $DIR/harbor/harbor.cfg
			sed -i '/port: 443/ s/^/#/p' $DIR/harbor/harbor.cfg
			sed -i '/certificate:/ s/^/#/p' $DIR/harbor/harbor.cfg
			sed -i '/private_key/ s/^/#/p' $DIR/harbor/harbor.cfg
			sed -i "/harbor_admin_password:/ s/Harbor12345/$PASSWORD/" $DIR/harbor/harbor.cfg
		else
			echo "没有找到配置文件,部署失败"
			exit
		fi
	fi
	. /etc/os-release
	if [ $ID = "ubuntu" ];then
		apt -y install python3 &>/dev/null
	elif [ $ID = "centos" -o "rocky" ];then
		yum -y install python3 &>/dev/null
	else
		echo "请先手动安装python"
		exit
	fi
	cd $DIR/harbor
	./install.sh &>/dev/null
	if [ ! $? -eq 0 ];then
		echo "安装失败"
		rm -rf harbor-offline-installer-$VERSION.tgz
		exit
	fi
}

system(){
	cat > /lib/systemd/system/harbor.service <<-EOF
	[Unit]
	Description=Harbor
	After=docker.service systemd-networkd.service systemd-resolved.service
	Requires=docker.service
	Documentation=http://github.com/vmware/harbor
	
	[Service]
	Type=simple
	Restart=on-failure
	RestartSec=5
	ExecStart=/usr/local/bin/docker-compose -f $DIR/harbor/docker-compose.yml up
	ExecStop=/usr/local/bin/docker-compose -f $DIR/harbor/docker-compose.yml down

	[Install]
	WantedBy=multi-user.target
	EOF
	systemctl daemon-reload &>/dev/null
	systemctl enable  harbor &>/dev/null
	systemctl restart harbor &>/dev/null
	ss -ntl |grep 80 &>/dev/null
	if [ $? -eq 0 ];then
		echo -e "请访问:\E[32;1mhttp://`hostname -I |awk '{print $1}'`\E[0m"
		echo -e "用户名:\E[32;1madmin\E[0m"
		echo -e "密  码:\E[32;1m$PASSWORD\E[0m"
	else
		echo "启动失败"
	fi
}
find_docker_compose
download
install
system
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值