标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。