导读:本期聚焦于崔健创作的《红旗Linux如何部署Rundeck作业调度平台?详细安装配置教程》,敬请观看详情。Rundeck是一款开源的作业调度和自动化运维平台,能在红旗Linux服务器上实现批量任务执行、定时调度和权限控制。本文围绕红旗Linux环境下Rundeck的安装与配置展开,先介绍Rundeck的核心功能与架构组成,再详细讲解JDK环境准备、RPM与手动两种安装方式的操作步骤,然后说明配置文件参数调整、项目创建与节点管理的具体做法,最后给出执行第一个作业的实践示例以及常见问题的排查思路,帮助运维人员在国产化环境中快速搭建稳定可用的调度系统。

Rundeck是一款用Java编写的开源自动化运维工具,它把命令行操作变成了可视化界面,运维人员可以通过网页提交任务、设定定时计划、查看执行日志。对于使用红旗Linux的企业来说,在国产操作系统上跑通Rundeck,意味着批量发布、巡检脚本、备份任务都能集中管理,不再需要逐台服务器手动登录。本文完整介绍在红旗Linux上部署Rundeck的全过程,包括环境准备、安装、配置和第一个作业的运行。

红旗Linux如何部署Rundeck作业调度平台?详细安装配置教程

一、Rundeck的核心功能与架构

Rundeck的设计目标是把分散的运维操作集中到一个平台。它的核心能力包括三个方面:第一是远程执行,通过SSH或WinRM连接目标节点,把命令或脚本分发下去执行;第二是作业调度,支持Cron表达式和简单周期两种方式定义计划任务;第三是权限控制,基于角色管理谁可以看作业、谁可以执行作业、谁可以修改定义。

从架构上看,Rundeck由几个部分组成。服务端本身是一个Java Web应用,默认内嵌Jetty容器,也可以部署到独立的Tomcat中。数据层方面,执行记录可以存放在本地文件或关系型数据库中,生产环境建议配置MySQL或者国产数据库来持久化。节点信息通过资源模型来描述,可以来自静态文件,也可以对接CMDB、云平台API等外部源。理解这套结构后,安装和排错都会更有方向感。

二、在红旗Linux上安装Rundeck

安装前需要确认系统版本和软件依赖。红旗Linux基于RPM体系,本文以红旗Asianux服务器版为例说明。Rundeck 3.x系列要求JDK 11或以上版本,先检查Java环境是否就绪。

登录服务器执行以下命令确认系统信息:

cat /etc/redflag-release
java -version
# 如果没有安装JDK,使用yum安装OpenJDK 11
yum install -y java-11-openjdk java-11-openjdk-devel
java -version

确认输出中包含11字样的版本号后,开始下载Rundeck的RPM包。可以前往官方发布页获取,也可以直接使用wget下载到本地。安装过程很简单,一条rpm或yum命令即可完成:

cd /opt
wget https://download.rundeck.org/packages/rpm/rundeck-3.4.10-20220118.noarch.rpm
yum localinstall -y rundeck-3.4.10-20220118.noarch.rpm
# 安装完成后查看生成的目录结构
ls -l /etc/rundeck/
ls -l /var/lib/rundeck/

安装完成后主要关注三个目录:/etc/rundeck存放配置文件,其中rundeck-config.properties是主配置,framework.properties定义框架参数;/var/lib/rundeck存放数据文件和日志;/var/log/rundeck存放服务日志。熟悉这些路径对后续排错非常关键。

启动服务并设置开机自启:

systemctl start rundeckd
systemctl enable rundeckd
systemctl status rundeckd
# 观察启动日志,确认没有报错
tail -f /var/log/rundeck/service.log

三、配置调整与项目创建

默认配置只监听本机回环地址,其他机器无法访问网页控制台。需要修改framework.properties中的监听地址参数,将framework.server.url和grails相关配置改为服务器的实际IP。同时建议修改默认管理员密码,默认账号是admin,初始密码存放在/etc/rundeck/adminpw文件中,首次登录后应立即在界面中修改。

具体修改示例如下:

# 编辑配置文件
vi /etc/rundeck/framework.properties
# 修改以下几项
framework.server.name = 192.168.10.20
framework.server.hostname = 192.168.10.20
framework.server.port = 4440
framework.server.url = http://192.168.10.20:4440
# 修改完成后重启服务
systemctl restart rundeckd

用浏览器访问http://192.168.10.20:4440,输入admin账号登录后进入控制台。接下来创建第一个项目。点击左侧的New Project按钮,填写项目名称,资源模型来源默认选择本地文件即可。项目创建完成后,需要在资源文件中登记被管理的节点。

节点文件位于/var/lib/rundeck/projects/项目名/etc/resources.xml,按以下格式添加目标主机:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <node name="web01" description="Web服务器1" hostname="192.168.10.21"
        osFamily="linux" osName="Linux" username="root"
        ssh-keypath="/var/lib/rundeck/.ssh/id_rsa"/>
  <node name="web02" description="Web服务器2" hostname="192.168.10.22"
        osFamily="linux" osName="Linux" username="root"
        ssh-keypath="/var/lib/rundeck/.ssh/id_rsa"/>
<//project>

这里需要注意SSH免密配置。Rundeck服务以rundeck用户运行,要为该用户生成密钥并把公钥分发到所有目标节点的authorized_keys中,否则执行任务时会报权限拒绝错误。

四、创建并执行第一个作业

进入项目后切换到Jobs页面,新建一个作业。作业由两部分组成:工作流步骤和调度策略。步骤类型可以是指定命令、执行脚本、引用脚本文件等,也可以嵌套引用其他作业,实现复杂流程编排。

举个例子,创建一个巡检作业,第一步执行磁盘使用率检查,第二步把结果输出到日志。在Command输入框中填写df -h | grep -v tmpfs,保存后点击Run执行。执行结束后切换到Activity页面,能看到本次运行的开始时间、耗时、每个节点的输出结果。如果某个节点失败,界面上会用红色标记,点击可查看详细的错误堆栈。

定时调度也很简单。在作业编辑页面的Schedule选项卡中启用计划,选择Cron表达式,例如0 0 2 * * ?表示每天凌晨两点执行。需要注意的是,Rundeck的调度由服务端触发,如果系统时间不准会导致任务错时执行,务必保证服务器时钟同步,可以用chronyd或ntpd服务与内部时间源对时。

五、常见问题排查

部署过程难免遇到问题,这里总结几个高频故障。第一个是启动失败,日志提示端口被占用,通常是4440端口冲突,可在rundeck-config.properties中修改server.port参数后重启。第二个是网页能打开但登录报错,多见于数据库未初始化或密码文件权限问题,检查/etc/rundeck目录下文件的属主是否为rundeck用户。

第三个是节点执行失败,报SSH连接错误。排查思路是先用su - rundeck切换到服务用户,手动执行ssh root@目标IP测试连通性。如果提示需要输入密码,说明免密没配好,重新分发公钥即可。另外还要确认目标机的SSH服务允许密钥登录,红旗Linux默认配置一般没问题,但如果加固过sshd_config,需要检查PubkeyAuthentication是否被设置为no。

整体来看,Rundeck在红旗Linux上的部署并不复杂,核心工作量在于SSH免密的准备和节点资源的登记。平台跑起来之后,再把日常的发布脚本、巡检任务逐步迁移进去,运维工作的规范化和可追溯性会有明显提升。

红旗LinuxRundeck作业调度修改时间:2026-09-05 15:40:59

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260905/50993.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。