ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux - Docker harbor install

2021-06-08 21:33:11  阅读:164  来源: 互联网

标签:END harbor installed COLOR install Docker docker


#!/bin/bash
#
#**************************************************************************************
#Author:                                   Noise Lys
#QQ:                                       578110218
#Date:                                     2021-05-30
#Filename:                                 install_harbor.sh
#URL:                                      https://www.cnblogs.com/noise/
#Description:                              The test script
#Copyright (C):                            2021 All rights reserved
#**************************************************************************************

OS_VERSION=`cat /etc/os-release  | sed 's/"/=/g' | awk -F[=]+ 'NR==3{print $2}'`
COLOR="echo -e \\033[1;31m"
END="\033[m"
HARBOR_VERSION=1.7.6
IPADDR=`hostname -I|awk '{print $1}'`
HARBOR_ADMIN_PASSWORD=123456
IP_CLIENT1=10.0.0.101
IP_CLIENT2=10.0.0.102
IP_CLIENT3=10.0.0.103

# install docker 

install_docker(){

${COLOR}"START to install docker"${END}
sleep 1

if [[ ${OS_VERSION} = "centos" ]];then

COLOR="echo -e \\033[1;31m"
END="\033[m"
VERSION="19.03.5-3.EL7"

rm -rf /etc/yum.repos.d/*

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/repo/Centos-7.repo || { ${COLOR}"BaseOS:Can't access the internet,please check your connection!"${END};exit;}

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/repo/epel-7.repo || { ${COLOR}"Epel:Can't access the internet,please check your connection!"${END};exit;}

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo || { ${COLOR}"Docker-ce:Can't access the internet,please check your connection!"${END};exit;}



yum clean all

yum -y install docker-ce || { ${COLOR}"Base,Extras yum sources is unavailable, please check yum sources"${END};exit;}

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://u5qp98hs.mirror.aliyuncs.com"]
}
EOF

systemctl enable --now docker
docker version && ${COLOR}"Docker install succesfully"${END} || ${COLOR}"Docker install failed"${END}

else

# ubuntu

apt update
apt -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt -y update
apt -y install docker-ce

systemctl enable --now docker
docker version && ${COLOR}"Docker install succesfully"${END} || ${COLOR}"Docker install failed"${END}
fi
reboot
}

#install docker-compose
install_docker_compose(){

${COLOR}"START to install docker compose"${END}
sleep 1

curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose && ${COLOR}"wget docker compose successfully!"${END} || ${COLOR}"wget docker compose failed!"${END}

chmod +x /usr/bin/docker-compose

docker-compose --version && ${COLOR}"Docker Compose installed successfully!" ${END} || ${COLOR}"Docker Compose installed failed!" ${END} 

}

#install Harbor
install_harbor(){

${COLOR}"START to install harbor"${END}
sleep 1

read -p "please select offline(y) or online(n):" HARBOR_PACKAGES

${COLOR}"deafult download packages from online!"${END}

if [[ ${HARBOR_PACKAGES} = "Y"||${HARBOR_PACKAGES} = "y" ]]; then
   ${COLOR}"when you selected offline, please use rz to save the packages to /data/!"${END}
   sleep 5
else
   wget https://github.com/goharbor/harbor/releases/download/v${HARBOR_VERSION}/harbor-offline-installer-v${HARBOR_VERSION}.tgz && ${COLOR}"wget harbor successfully!"${END} || ${COLOR}"wget harbor failed!"${END}
fi

mkdir /apps
tar xvf harbor-offline-installer-v${HARBOR_VERSION}.tgz -C /apps/

sed -i.bak -e 's/^hostname =.*/hostname = '''${IPADDR}'''/' -e 's/^harbor_admin_password =.*/harbor_admin_password = '''${HARBOR_ADMIN_PASSWORD}'''/' /apps/harbor/harbor.cfg

if [[ ${OS_VERSION} = "centos" ]];then

yum -y install python2 &>/dev/null && ${COLOR}"python installed successfully!"${END} || ${COLOR}"python installed failed!"${END}

else

apt -y install python &>/dev/null && ${COLOR}"python installed successfully!"${END} || ${COLOR}"python installed failed!"${END}

fi

ln -s /usr/bin/python2.7 /usr/bin/python &>/dev/null

/apps/harbor/install.sh && ${COLOR}"Harbor installed successfully!"${END} || ${COLOR}"Harbor installed failed!"${END} 

}

#install service
install_harbor_service(){

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/bin/docker-compose -f /apps/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /apps/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target
EOF

sed -i.bk -e 's@^ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock.*@ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry '''${IP_CLIENT1}''' --insecure-registry '''${IP_CLIENT2}''' --insecure-registry '''${IP_CLIENT3}'''@' /lib/systemd/system/docker.service

systemctl daemon-reload
systemctl enable harbor && ${COLOR}"Harbor service successfully!"${END} || ${COLOR}"Harbor service failed!"${END}    

reboot

}

${COLOR}"========================"${END}
${COLOR}"step 1 : install docker!"${END}
${COLOR}"========================"${END}

if [[ ${OS_VERSION} = "centos" ]];then
rpm -ql docker-ce &>/dev/null && ${COLOR}"docker already installed!"${END} || install_docker

else

dpkg -s docker-ce &>/dev/null && ${COLOR}"docker already installed!"${END} || install_docker

fi

${COLOR}"========================"${END}
${COLOR}"step 2 : install docker compose!"${END}
${COLOR}"========================"${END}

docker-compose --version &>/dev/null  && ${COLOR}"docker compose already installed!"${END} || install_docker_compose

${COLOR}"========================"${END}
${COLOR}"step 3 : install harbor!"${END}
${COLOR}"========================"${END}

install_harbor

${COLOR}"========================"${END}
${COLOR}"step 4 : install harbor service!"${END}
${COLOR}"========================"${END}

install_harbor_service

 

标签:END,harbor,installed,COLOR,install,Docker,docker
来源: https://www.cnblogs.com/noise/p/14864538.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有