批量部署时用环境变量静默安装面板
什么时候用非交互模式
交互式安装需要人坐在终端前答题,这在单机上没问题,但碰到下面这些场景就走不通了:
- 云厂商初始化脚本(user-data)里装面板;
- 批量初始化一批节点;
- CI/CD 流水线里自动准备环境。
1Panel V2 的安装脚本为此提供了非交互模式,通过环境变量或命令行参数把答案提前写好,装完即用。
核心参数一览
| 环境变量 | 作用 | 要点 |
|---|---|---|
PANEL_NON_INTERACTIVE | 启用非交互模式 | 值可为 true / 1 / y / yes |
PANEL_LANG | 安装语言 | 支持 zh、en、fa、pt-BR、ru |
PANEL_INSTALL_DIR | 安装目录 | 需绝对路径,默认 /opt |
PANEL_PORT | 面板端口 | 不设则随机生成 |
PANEL_ENTRANCE | 安全入口 | 3-30 位字母数字下划线 |
PANEL_USERNAME | 面板用户名 | 3-30 位 |
PANEL_PASSWORD | 面板密码 | 8-30 位,支持部分特殊字符 |
PANEL_INSTALL_DOCKER | 是否安装 Docker | 非交互模式默认不装,需要则显式设为 y |
PANEL_DOCKER_MODE | Docker 安装方式 | auto / builtin / online |
PANEL_CONFIGURE_ACCELERATOR | 配置镜像加速 | 非交互默认 n |
PANEL_REPLACE_DAEMON_JSON | 替换已有 daemon.json | 机器上已有 Docker 配置时才需要关心 |
用法是把变量串在安装命令前面,例如:
PANEL_NON_INTERACTIVE=true PANEL_LANG=zh PANEL_PORT=18080 PANEL_PASSWORD='改成强密码' bash -c "$(curl -sSL <安装脚本地址>)"
安装脚本地址以官方文档在线安装页为准。
几个容易踩的点
- 密码安全:官方建议优先用
PANEL_PASSWORD环境变量传密码,避免密码直接出现在命令参数里被 shell 历史记录到;生产环境务必替换示例中的端口、入口、用户名和密码; - Docker 默认不装:为了不擅自改动主机环境,非交互模式下 Docker 安装与镜像加速默认关闭,首次使用要显式开启;
- 变量只对本次命令生效:这些环境变量不会写入系统环境,不影响后续进程;
- 也可以用命令行参数:
--port、--entrance、--password等参数与变量等价,二选一即可。
装好后同样通过 http://服务器IP:端口/安全入口 访问,首次登录动作见首次登录。