Ubuntu一键安装harbor脚本
文章目录
- 一、脚本功能描述
- 二、脚本内容
- 三、注意事项
免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn
一、脚本功能描述
-
Docker 安装
-
安装指定版本的 Docker CE (19.03.5)
-
配置阿里云镜像加速器
-
设置 Docker 服务开机自启
-
-
Docker Compose 安装
-
安装指定版本的 Docker Compose (1.25.3)
-
下载二进制文件并设置可执行权限
-
-
Harbor 安装
-
安装指定版本的 Harbor (1.10.10)
-
自动生成自签名证书
-
配置文件自定义(主机名、管理员密码)
-
执行 Harbor 安装脚本
-
-
Harbor 服务管理
-
创建 systemd 服务文件
-
配置开机自启
-
集成 Docker Compose 管理
-
-
安全特性:
-
自动生成自签名证书(有效10年)
-
使用 HTTPS 加密通信
-
自定义管理员密码
-
避免重复安装(检查 Docker 是否已存在)
-
-
服务管理:
-
创建 systemd 服务文件
/lib/systemd/system/harbor.service
-
定义服务依赖关系(在 Docker 启动后运行)
-
设置重启策略(失败时自动重启)
-
配置开机自启
-
-
安装流程
可以根据自己的实际需求修改脚本
二、脚本内容
脚本共102行,动动你的小手滚动查看
#!/bin/bashCOLOR="echo -e \E[1;31m"
END="\E[m"
DOCKER_VERSION="5:19.03.5~3-0~ubuntu-bionic"
HARBOR_VERSION=1.10.10
HARBOR_HOSTNAME=harbor.lhl.net
HARBOR_ADMIN_PASSWORD=123456
HARBOR_CRT='\/etc\/harbor\/certs\/harbor-ca.crt'
HARBOR_KEY='\/etc\/harbor\/certs\/harbor-ca.key'install_docker() {${COLOR}"--------开始安装docker--------"${END}sleep 1apt updateapt -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)stable"apt update${COLOR}"Docker有以下版本"${END}apt-cache madison docker-ce${COLOR}"5秒后即将安装: docker-"${DOCKER_VERSION}"版本......"${END}${COLOR}"如果想安装其他Docker版本,请按Ctrl+C键退出,修改版本后在执行"${END}sleep 5apt -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION}mkdir -p /etc/dockercat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
EOFsystemctl daemon-reloadsystemctl enable --now dockerdocker version && ${COLOR}"--------docker安装成功--------"${END} || ${COLOR}"--------docker安装失败--------"${END}
}install_docker_compose() {${COLOR}"--------开始安装docker_compose--------"${END}sleep 1curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-composechmod +x /usr/bin/docker-composedocker-compose --version && ${COLOR}"--------docker compose安装成功--------"${END} || ${COLOR}"--------docker compose安装失败--------"${END}
}install_harbor() {${COLOR}"--------开始安装harbor--------"${END}sleep 1# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v${HARBOR_VERSION}.tgzwget https://storage.googleapis.com/harbor-releases/release-1.10.0/harbor-offline-installer-v${HARBOR_VERSION}.tgz
# wget https://github.com/goharbor/harbor/releases/download/v${HARBOR_VERSION}/harbor-offline-installer-v${HARBOR_VERSION}.tgztar xf harbor-offline-installer-v${HARBOR_VERSION}.tgz -C /etcsed -i.bak -e 's/^hostname: .*/hostname: '''$HARBOR_HOSTNAME'''/' -e 's/^harbor_admin_password: .*/harbor_admin_password: '''$HARBOR_ADMIN_PASSWORD'''/' -e 's/certificate: .*/certificate: '''$HARBOR_CRT'''/' -e 's/private_key: .*/private_key: '''$HARBOR_KEY'''/' /etc/harbor/harbor.yml# https configmkdir /etc/harbor/certsopenssl genrsa -out /etc/harbor/certs/harbor-ca.keytouch /root/.rndopenssl req -x509 -new -nodes -key /etc/harbor/certs/harbor-ca.key -subj "/CN=harbor.lhl.net" -days 3650 -out /etc/harbor/certs/harbor-ca.crtapt -y install python3apt -y install python/etc/harbor/install.sh && ${COLOR}"--------harbor安装成功--------"${END} || ${COLOR}"--------harbor安装失败--------"${END}
}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 /etc/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /etc/harbor/docker-compose.yml down[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable harbor &> /dev/null || ${COLOR}"--------Harbor已配置为开机自动启动--------"${END}
}dpkg -s docker-ce &> /dev/null && ${COLOR}"Docker已安装,退出!"${END} || install_docker
docker-compose --version &> /dev/null && ${COLOR}"Docker compose已安装,退出!"${END} || install_docker_compose
install_harbor
harbor_service
三、注意事项
-
证书安全
-
使用自签名证书(浏览器会有安全警告)
-
生产环境应替换为正式证书
-
-
版本兼容性
-
专为 Ubuntu Bionic (18.04) 设计
-
Docker 版本固定为 19.03.5
-
Harbor 版本固定为 1.10.10
-
-
网络要求
-
需要访问阿里云镜像源
-
需要访问 Google 存储(下载 Harbor)
-
需要访问 GitHub(下载 Docker Compose)
-
欢迎您提出问题,并指正代码中的不足
请不要以此视为定论,这只是我的个人经验