0

0

如何在多台云服务器上利用脚本自动化分发安装宝塔面板?

P粉602998670

P粉602998670

发布时间:2026-03-14 20:48:04

|

589人浏览过

|

来源于php中文网

原创

可通过SSH密钥+循环脚本批量部署宝塔面板:准备IP列表文件servers.txt,编写shell脚本逐台执行官方一键安装命令,要求本地已配置免密SSH且可直连各服务器。

如何在多台云服务器上利用脚本自动化分发安装宝塔面板?

如果您需要在多台云服务器上批量部署宝塔面板,手动逐台登录安装效率低下且易出错。以下是通过脚本实现自动化分发与安装的多种可行方法:

一、基于SSH密钥+循环执行的Shell脚本方案

该方法利用本地已配置免密登录的SSH环境,通过for循环遍历服务器IP列表,在每台目标主机上远程执行宝塔官方一键安装命令。要求本地机器能直连各云服务器且已分发SSH公钥。

1、准备包含所有目标服务器IP地址的文本文件,例如 servers.txt,每行一个IP,格式为:192.168.1.100

2、编写install_bt.sh脚本,内容如下:
#!/bin/bash
while read ip; do
  echo "正在向 $ip 部署宝塔面板...";
  ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@$ip 'curl -sSO http://download.bt.cn/install/install_6.0.sh && bash install_6.0.sh';
done

3、赋予脚本执行权限:chmod +x install_bt.sh

4、运行脚本:./install_bt.sh

5、执行过程中如某台服务器连接失败或超时,脚本将继续尝试下一台;务必确保目标服务器已开放22端口且root用户SSH登录可用

二、使用Ansible批量编排部署方案

Ansible无需在被控端安装代理,仅依赖Python和SSH,适合跨厂商云服务器统一管理。通过playbook定义标准化安装流程,支持错误中断、幂等性及结果汇总。

1、在控制机安装Ansible:pip3 install ansible

2、配置inventory文件(如hosts.ini),按组列出服务器:
[bt_servers]
192.168.1.101
192.168.1.102
192.168.1.103

3、编写bt_install.yml playbook:
- hosts: bt_servers
  become: true
  tasks:
  - name: 下载并执行宝塔安装脚本
    shell: curl -sSO http://download.bt.cn/install/install_6.0.sh && bash install_6.0.sh
    args:
      executable: /bin/bash

4、运行部署命令:ansible-playbook -i hosts.ini bt_install.yml

5、首次运行前需通过ansible all -m ping -i hosts.ini验证节点连通性

三、基于SaltStack的远程状态推送方案

SaltStack采用Master-Minion架构,适合长期运维场景。通过定义state文件,将宝塔安装过程声明为可重复执行的状态,支持高并发下发与实时反馈。

Insou AI
Insou AI

Insou AI 是一款强大的人工智能助手,旨在帮助你轻松创建引人入胜的内容和令人印象深刻的演示。

下载

1、在Master节点安装salt-master,在各云服务器安装salt-minion并完成认证

2、创建宝塔安装state文件 /srv/salt/bt/install.sls:
install_bt_panel:
  cmd.run:
    - name: curl -sSO http://download.bt.cn/install/install_6.0.sh && bash install_6.0.sh
    - unless: test -f /www/server/panel/BTPanel.py

3、执行批量部署命令:salt 'web*' state.apply bt.install

4、salt '*' cmd.run 'bt default' 可在部署完成后批量获取各节点面板初始账号密码

四、使用Terraform结合User Data初始化方案

适用于新购云服务器场景。通过Terraform定义云资源,并在创建实例时注入User Data脚本,使宝塔面板在系统首次启动时自动安装,实现基础设施即代码(IaC)式交付。

1、在Terraform配置中为每个云服务器资源添加user_data参数:
user_data = #!/bin/bash
curl -sSO http://download.bt.cn/install/install_6.0.sh
bash install_6.0.sh
EOF

2、确保云平台支持User Data(如阿里云、腾讯云、AWS EC2均支持),且实例使用的镜像已预装cloud-init服务

3、执行terraform apply触发资源创建与脚本注入

4、User Data脚本仅在实例首次启动时执行一次,后续重启不重复运行

五、基于Docker容器化轻量部署方案

若目标服务器已运行Docker,可通过容器方式快速启动宝塔面板Web界面,避免直接修改宿主系统环境,适用于测试或隔离需求强的场景。

1、在各服务器执行docker命令拉取并运行封装好的宝塔镜像:
docker run -d --name bt-panel -p 8888:8888 -p 8889:8889 -p 80:80 -p 443:443 -v /www:/www -v /home/wwwlogs:/home/wwwlogs --privileged --restart=always jasonrivers/bt-panel

2、等待容器启动后,访问 http://服务器公网IP:8888 即可进入面板

3、该镜像非宝塔官方发布,使用前需验证其来源可信性与版本安全性

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

455

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

183

2023.10.30

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

236

2023.12.07

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

497

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

453

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

3625

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2926

2024.08.16

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

67

2025.12.13

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号