Rundeck Docker 镜像部署与配置完全指南
2025-07-07 08:09:58作者:裴麒琰
什么是 Rundeck
Rundeck 是一个开源的操作自动化平台,它允许用户通过 Web 界面或 API 来定义和执行自动化任务。Rundeck 提供了作业调度、工作流编排、访问控制和审计日志等功能,是企业 IT 自动化的重要工具。
Docker 镜像版本说明
Rundeck 官方提供了多个版本的 Docker 镜像供用户选择:
SNAPSHOT
:最新的主分支构建版本(不稳定)3.0.20
:当前最新的稳定版本3.0.19
及更早版本:历史稳定版本
基础部署方法
持久化存储配置
为了确保数据在容器重启或升级后不丢失,建议使用命名卷来持久化存储数据:
docker run --name my-rundeck -v rundeck-data:/home/rundeck/server/data rundeck/rundeck
这条命令会创建一个名为 rundeck-data
的卷,用于存储 Rundeck 的所有数据。
安全配置
SSH 密钥管理
Rundeck 执行远程任务通常需要 SSH 密钥,可以通过以下方式提供:
docker run --name my-rundeck -v /path/to/ssh/keys:/home/rundeck/.ssh rundeck/rundeck
JVM 内存配置
通过 Docker 的内存限制参数控制 JVM 堆内存使用:
docker run -m 1024m rundeck/rundeck
JVM 默认会使用容器内存限制的 75% 作为堆内存上限,可通过 JVM_MAX_RAM_PERCENTAGE
环境变量调整。
关键配置详解
数据库配置
默认使用 H2 嵌入式数据库,生产环境建议配置外部数据库:
docker run -e RUNDECK_DATABASE_URL="jdbc:mysql://dbhost:3306/rundeck" \
-e RUNDECK_DATABASE_DRIVER="com.mysql.jdbc.Driver" \
-e RUNDECK_DATABASE_USERNAME="user" \
-e RUNDECK_DATABASE_PASSWORD="password" \
rundeck/rundeck
支持的数据库驱动包括:
- MySQL:
com.mysql.jdbc.Driver
- MariaDB:
org.mariadb.jdbc.Driver
- PostgreSQL:
org.postgresql.Driver
日志配置
默认日志输出到控制台,可通过以下配置改为文件日志:
docker run -e RUNDECK_LOGGING_STRATEGY=FILE rundeck/rundeck
日志级别可以通过 RUNDECK_LOGGING_LEVEL_*
系列变量调整:
docker run -e RUNDECK_LOGGING_LOGLEVEL_DEFAULT=debug \
-e RUNDECK_LOGGING_LOGLEVEL_ROOT=debug \
rundeck/rundeck
邮件服务配置
配置 SMTP 服务器以启用邮件通知功能:
docker run -e RUNDECK_MAIL_SMTP_HOST="smtp.example.com" \
-e RUNDECK_MAIL_SMTP_PORT=587 \
-e RUNDECK_MAIL_SMTP_USERNAME="user" \
-e RUNDECK_MAIL_SMTP_PASSWORD="password" \
-e RUNDECK_MAIL_FROM="noreply@example.com" \
rundeck/rundeck
高级配置
用户认证
默认使用 realm.properties
文件认证,可以通过挂载自定义文件来管理用户:
docker run -v /path/to/realm.properties:/home/rundeck/server/config/realm.properties \
rundeck/rundeck
也支持 JAAS 认证模块,如 LDAP 集成:
docker run -e RUNDECK_JAAS_MODULES_0=JettyCombinedLdapLoginModule \
-e RUNDECK_JAAS_LDAP_PROVIDERURL="ldap://ldap.example.com:389" \
-e RUNDECK_JAAS_LDAP_BINDUSER="cn=admin,dc=example,dc=com" \
-e RUNDECK_JAAS_LDAP_BINDPASSWORD="password" \
rundeck/rundeck
密钥存储加密
为密钥存储启用加密功能:
docker run -e RUNDECK_STORAGE_CONVERTER_1_CONFIG_PASSWORD=supersecret \
-e RUNDECK_CONFIG_STORAGE_CONVERTER_1_CONFIG_PASSWORD=supersecret \
rundeck/rundeck
插件管理
可以通过挂载 /home/rundeck/container-plugins/
目录来添加自定义插件:
docker run -v /path/to/plugins:/home/rundeck/container-plugins \
rundeck/rundeck
性能调优
线程池配置
调整 Quartz 线程池大小以提高并发性能:
docker run -e RUNDECK_QUARTZ_THREADPOOL_THREADCOUNT=20 \
rundeck/rundeck
最佳实践
- 生产环境:避免使用 SNAPSHOT 版本,选择最新的稳定版本
- 数据备份:定期备份挂载的卷数据
- 资源限制:根据工作负载合理设置内存限制
- 监控:配置日志收集和监控系统
- 高可用:考虑使用集群部署提高可用性
通过以上配置,您可以在 Docker 环境中高效地部署和管理 Rundeck 自动化平台。根据实际需求调整配置参数,可以构建出适合不同场景的 Rundeck 解决方案。