0.为什么我们需要非交互式安装?
在 Linux 环境下部署软件时,我们常见的安装方式主要有两种:
交互式安装(Interactive Installation): 脚本在运行过程中会“停顿”下来,通过命令行向用户抛出一系列提示(如:“请输入安装路径”、“请输入面板端口”、“是否自动安装 Docker [y/n]”),等待操作人员在终端手动敲入参数并回车确认。这种方式非常适合个人用户或单台服务器的上手体验,直观且具有引导性。
非交互式安装(Non-Interactive Installation): 脚本在运行全程不需要任何人工干预。所有安装配置(如端口、用户名、密码等)均在命令发起前通过“环境变量”或“命令行 Flag 参数”提前声明,脚本读取参数后直接后台静默执行直至完成。
传统的“伪自动化”方案及其隐患
在许多自动化场景(如 Ansible 批量部署、云服务器 Cloud-Init 初始化、CI/CD 流水线)中,传统的交互式安装会导致程序因等待终端输入而陷入无限卡死。为了绕过这个问题,不少运维人员会采用管道重定向(如 echo "y\n18080\n..." | bash)或 expect 脚本等手段,强行向交互界面“塞”入按键序列。
然而,这种“伪自动化”方案在实际生产环境中极具风险:重定向完全依赖于“脚本内部提问的先后顺序”。
一旦官方更新了安装脚本(例如在“设置端口”之前新增了一个“选择语言”的提示,或者增加了一个新的必填项),原本写好的按键队列就会全部错位,本该填入端口的数字可能会误填给用户名,或者因少填了一项导致整个流程挂起崩溃。
1Panel 的非交互式解决方案
为了彻底解决这一痛点,1Panel 官方正式原生支持了非交互式安装机制。通过引入显式键值绑定(Key-Value Placement),将配置参数与提问顺序彻底解耦。无论脚本后续如何迭代更新,只要参数名称保持不变,自动化部署就能始终稳定运行,为企业级批量运维与无缝 CI/CD 提供了标准化的底层支持。
1. 环境要求
安装前请确保您的系统符合以下条件:
操作系统: 支持主流 Linux 发行版本(基于 Debian / RedHat,包括国产操作系统)。
服务器架构: x86_64、aarch64、armv7l、ppc64le、s390x、riscv64。
内存要求: 建议可用内存在 1GB 以上。
浏览器要求: 请使用 Chrome、Firefox、IE 10+、Edge 等现代浏览器。
网络要求: 可访问互联网(如果是内网环境,推荐使用离线安装包方式进行部署)。
2. 非交互式部署 1Panel
官方 GitHub Release 页面:https://github.com/1Panel-dev/1Panel/releases
以下交互式安装适合单台服务器手动部署,用户可以根据命令行提示依次输入参数完成安装:
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
1Panel 全新适配的非交互式安装机制,改用显式键值绑定(环境变量或命令行 Flag),彻底解耦了配置项与提示顺序,大幅提升了 CI/CD 和云服务器初始化(Cloud-Init)场景中的稳定性与安全性。
方式一:通过环境变量传参
# 如需由安装脚本自动安装 Docker,请显式开启 PANEL_INSTALL_DOCKER=y
PANEL_NON_INTERACTIVE=true \
PANEL_LANG=zh \
PANEL_INSTALL_DIR=/opt \
PANEL_PORT=18080 \
PANEL_ENTRANCE=panelEntrance \
PANEL_USERNAME=panelAdmin \
PANEL_PASSWORD='ChangeMe_123456' \
PANEL_INSTALL_DOCKER=y \
PANEL_DOCKER_MODE=auto \
PANEL_CONFIGURE_ACCELERATOR=n \
PANEL_REPLACE_DAEMON_JSON=n \
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
方式二:通过命令行参数传参
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)" -- \
--non-interactive \
--lang zh \
--install-dir /opt \
--port 18080 \
--entrance panelEntrance \
--username panelAdmin \
--password 'ChangeMe_123456' \
--install-docker y \
--docker-mode auto \
--configure-accelerator n \
--replace-daemon-json n
注意事项与安全规范:
请务必在生产环境中替换示例中的端口、安全入口、用户名和密码。
非交互模式下,未配置的参数将自动使用默认值。
为避免安装脚本在自动化场景中误修改主机环境,Docker 安装和镜像加速默认不启用。如需自动安装 Docker,请显式设置
PANEL_INSTALL_DOCKER=y。如果服务器已安装 Docker,通常无需设置
PANEL_INSTALL_DOCKER;如需配置 Docker 镜像加速,请显式设置PANEL_CONFIGURE_ACCELERATOR=y。示例中的环境变量仅对当前安装命令生效,不会写入系统持久环境变量中。
出于安全考虑,建议优先使用
PANEL_PASSWORD环境变量传入密码,避免密码直接出现在命令行参数中被history日志记录。
非交互安装参数对照表
3. 访问与维护
安装成功后,控制台会打印面板访问信息,格式如下:
http://目标服务器 IP 地址:目标端口/安全入口
安全组设置: 如果使用的是云服务器,请务必在云厂商控制台的安全组中开放对应的目标端口。
获取安全入口: SSH 登录服务器后,执行
1pctl user-info命令即可快速查询当前面板的安全入口(entrance)及登录信息。运维工具: 安装成功后,可直接使用
1pctl命令行工具对 1Panel 进行服务管理与日常维护。
4. 参考资料
1Panel 官方 Release 页面: https://github.com/1Panel-dev/1Panel/releases
1Panel 官方部署文档: https://1panel.cn/docs/v2/installation/online_installation
LinuxMirrors 镜像加速与 Docker 安装支持: https://linuxmirrors.cn
评论