在Ubuntu服务器上部署Rundeck,核心在于通过官方仓库安装依赖包、配置Java环境及Nginx反向代理,从而实现企业级自动化运维任务的集中调度与管理。
自动化运维工具的选择往往决定了团队效率的上限,对于中小型技术团队而言,Rundeck凭借其直观的Web界面和强大的插件生态,成为了替代复杂脚本调度的理想方案,相比于Jenkins偏向CI/CD流程,Rundeck更专注于运维执行层面的标准化,本文将深入解析如何在Ubuntu环境中完成从环境准备到生产部署的全流程配置,确保系统稳定且易于维护。
Ubuntu服务器安装Rundeck前置环境准备
Rundeck是一个基于Java的应用,因此Java运行环境是不可或缺的基础,在Ubuntu 20.04或22.04 LTS版本中,直接使用OpenJDK是最稳妥的选择,业内专家指出,保持Java版本与Rundeck版本的兼容性是避免启动失败的关键。
安装Java运行环境
首先更新系统包索引,确保获取最新的软件列表,执行以下命令安装OpenJDK 11或更高版本,这是目前Rundeck官方推荐的稳定版本。
- 更新软件包列表:
sudo apt update - 安装Java运行时环境:
sudo apt install openjdk-11-jre-headless - 验证安装是否成功:
java -version
安装完成后,确认输出中包含Java版本号,这标志着基础运行环境已就绪。
配置Rundeck官方APT源
为了避免从第三方非官方源下载带来的安全风险,建议直接使用Rundeck官方提供的APT仓库,这种方式能确保后续更新时获取到最新的安全补丁。
- 导入GPG密钥:
curl -fsSL https://packages.rundeck.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/rundeck-keyring.gpg - 添加软件源:
echo "deb [signed-by=/usr/share/keyrings/rundeck-keyring.gpg] https://packages.rundeck.com/apt/rundeck3/ /" | sudo tee /etc/apt/sources.list.d/rundeck.list - 再次更新索引:
sudo apt update
Rundeck核心组件安装与初始化配置
源配置完成后,即可进行核心软件的安装,这一步骤相对简单,但配置文件的调整需要格外细心。
执行安装命令
使用apt命令直接安装Rundeck服务器端组件。
sudo apt install rundeck
安装过程会自动创建rundeck用户和组,并初始化数据库,安装结束后,服务默认处于停止状态,需要手动启动并设置开机自启。
- 启动服务:
sudo systemctl start rundeckd - 设置开机自启:
sudo systemctl enable rundeckd - 检查服务状态:
sudo systemctl status rundeckd
Rundeck默认监听在本地8443端口,如果直接访问,可能会遇到证书警告,因为默认使用的是自签名证书。
关键配置文件解析
Rundeck的主要配置位于/etc/rundeck/目录下。framework.properties控制框架行为,realm.properties管理用户权限,而login.config则定义认证方式,对于大多数场景,使用默认的JAAS文件认证即可满足需求,无需引入复杂的LDAP集成。
Ubuntu配置Nginx反向代理与HTTPS
直接暴露8443端口在生产环境中存在安全隐患,且不利于统一域名管理,通过Nginx配置反向代理,不仅可以隐藏后端端口,还能轻松启用HTTPS加密传输,这是许多企业在进行Ubuntu服务器配置Rundeck安全加固时的标准做法。
安装与基础配置Nginx
首先安装Nginx,并创建一个新的站点配置文件。
sudo apt install nginx
在/etc/nginx/sites-available/目录下创建配置文件,例如命名为rundeck。
编写Nginx反向代理规则
以下配置实现了HTTP到HTTPS的重定向,并将请求代理到本地的Rundeck服务。
HTTP重定向配置
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}

HTTPS代理配置
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass https://localhost:4443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket支持,用于实时日志查看
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
配置完成后,测试语法并重启Nginx:sudo nginx -t 和 sudo systemctl restart nginx。
权限管理与作业调度实战
安装和部署只是第一步,如何让Rundeck真正发挥作用,关键在于权限控制和作业设计。
用户与角色权限分配
Rundeck采用基于角色的访问控制(RBAC),默认管理员账户为admin,首次登录后,建议立即修改密码,并创建新的运维账号,在realm.properties文件中,可以定义用户密码和角色映射。
username: password, admin, user
operator: password, user, execute
通过这种方式,普通运维人员只能执行特定的作业,而无法修改系统配置或删除项目,从而降低误操作风险。
创建第一个自动化作业
以一个简单的“检查磁盘空间”作业为例,展示如何创建和执行任务。
- 登录Rundeck Web界面,进入项目设置。
- 点击“New Job”创建新作业。
- 在“Node Selection”中选择目标服务器,支持通过标签或节点列表筛选。
- 在“Commands”中添加执行命令,
df -h - 保存并运行作业,查看实时输出日志。
这种可视化的操作方式,极大地降低了脚本编写的门槛,对于复杂的跨服务器联动任务,Rundeck支持通过“Node Dispatcher”将任务分发到多个节点并行执行,显著提升了批量运维的效率。

常见问题排查与维护建议
在实际运行过程中,可能会遇到日志输出乱码、作业执行超时或插件不兼容等问题。
日志编码问题
如果日志中出现中文乱码,通常是因为服务器默认编码与Rundeck不一致,可以在/etc/rundeck/profile文件中添加Java编码参数:export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8",然后重启服务。
性能优化建议
对于大规模集群,Rundeck的默认JVM内存设置可能不足,可以通过修改/etc/rundeck/framework.properties中的framework.server.memory参数来增加内存分配,行业共识认为,当并发作业数超过50时,适当增加堆内存能显著减少任务排队等待时间。
Ubuntu服务器安装配置Rundeck常见问题解答
Ubuntu服务器安装Rundeck后无法通过浏览器访问怎么办?
首先检查防火墙设置,确保8443端口或Nginx代理的80/443端口已开放,使用sudo ufw status查看防火墙状态,并通过sudo systemctl status rundeckd确认服务是否正常运行,如果服务正常但无法访问,检查Nginx配置中的proxy_pass地址是否正确指向localhost:4443。
Rundeck在Ubuntu上的默认数据库是什么?
Rundeck默认使用H2嵌入式数据库,数据存储在/var/lib/rundeck/data/rundeck.h2.db,对于小型团队或测试环境,H2数据库完全够用且无需额外配置,但如果计划用于生产环境且数据量较大,建议迁移到MySQL或PostgreSQL,以获得更好的并发支持和数据持久性保障。
如何备份Rundeck的项目配置和作业?
Rundeck提供了内置的备份功能,在Web界面的项目设置中,可以找到“Backup”选项,它会打包项目配置、作业定义和插件信息为一个ZIP文件,定期下载这些备份文件并存储在异地服务器,是防止配置丢失的最有效手段,数据库文件本身也应纳入常规备份策略中。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/410417.html
