Rundeck(三)用户使用与管理

本文详细介绍了Rundeck这款自动化运维工具,包括系统环境要求、菜单功能、项目管理(创建、节点、执行器)、插件管理(Git、备份恢复)、作业和工作流设计,以及节点执行的SSH配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

自动化运维工具rundeck

系统环境

系统菜单与个人资料菜单 的功能简介

系统菜单

个人资料菜单

项目 -projects

创建项目

节点源

节点执行器

项目存储

User Interface

插件管理

scm 源码管理-Git 插件

配置导入导出

作业 -Job

创建作业

details: 定义Job Name 、Description和group

workflow-工作流:

Schedule: 定义周期执行

Notifications: 通知,对应不同的结束状态可以做不同的通知

Execution Plugins:插件

Other:日志级别、定义重复/超时

插件

关于插件类型与处理方式

搜索插件

安装插件

配置插件

节点

SSH节点执行

密钥存储

SSH配置

用户名

SSH认证模式

SSH 超时

SSH 私钥

命令 - commands

webhook

备份与恢复


自动化运维工具rundeck

GitHub - rundeck 是java开发的开源自动化服务,具有 Web 控制台、命令行工具和 WebAPI。它使您可以轻松地跨一组节点运行自动化任务,适合运维自动化管理、自动发布管理、运维数据分析等

系统环境

#环境要求:
    https://docs.rundeck.com/docs/administration/install/system-requirements.html

测试环境:
    openjdk version "11.0.22"
    CentOS Linux release 7.4.1708 (Core) 
    rundeck-5.2.0.20240410-1
    Database:mysql Server

系统菜单与个人资料菜单 的功能简介

系统菜单
系统菜单 一般都是全局配置 包含 密钥存储、ACL访问控制、服务配置信息、服务系统状态、日志存储、插件管理等
用户管理: web端用户管理需要企业版本,社区版本需要服务中修改文件 realm.properties
个人资料菜单
用户信息与User API Tokens,社区版本用户自己不能修改密码

项目 -projects

项目之前彼此独立.项目内共用一套环境,有点类似于namespace,可以导入导出
支持CLI 与API 方式
创建项目
创建项目很简单,只有 Project Name 必须填写,
可以参考 Project Settings

属性

解释

Project Name

唯一标识符

Project Display Name

展示名称

Description

项目描述

Execution History Clean

启用执行历史记录清理

Execution Mode

包含定时执行和周期计划执行

User Interface

用户界面展示,显示Readme 和 MOTD

Default Node Executor

远程节点上执行命令和脚本配置

Default File Copier

文件复制到远程节点配置

创建完项目就自动跳转到节点源配置了

节点源
节点是一种资源,可以是网络可访问主机的物理实例或虚拟实例等
节点源 是提供节点的第三方平台,可以是Kubernetes 、存储、ansible、目录/文件、脚本、url、stub等
节点源中的每个节点都有与其关联的属性,
例如主机名、IP 地址、用户名、密码、SSH 密钥和/或连接和管理节点所需的其他信息。
这些属性定义在节点上执行命令或脚本所需的连接详细信息和凭据。
第三方平台,就意味着不能通过页面的简单编辑来实现,必须借用第三方工具来管理节点源配置了

内置的开源节点有

必须匹配固定的语法和格:
RESOURCE-XML
RESOURCE-YAML
  • file:使用文件系统上定义的配置文件。
  • url:通过 URL获取配置信息。
  • directory:查看目录中的所有定义的配置文件。
  • script:通过执行脚本获取配置信息。

支持将外部的节点源 以超连接或者iframe 的方式加载到项目内

节点执行器
对应节点源有对应的节点执行器,其中内置了几种“类型”:
exec - 简单的系统命令字符串。
script - 脚本脚本内容或服务器本地脚本。文件可以发送到指定的节点
jobref - 作业组的概念。
custom - 用户可以使用或创建自己的工作流程步骤插件。
另外还支持 window、ssh方式
项目存储
默认下 自 Rundeck 3.4 起,项目的配置文件信息已经存储在数据库中了,不产生配置文件,尽管页面会提示:
Warning
The file readme.md does not exist in project 2nd yet. Please save to create it.
但是仍然能保存。存入到数据中。
Success
Saved Project File readme .md
User Interface
配置Readme 和motd的显示状态,与job的折叠与展开功能。ps: 个人觉得 Description就够了

具体效果如下:

插件管理
默认情况下,每个项目都启用所有插件
非企业(job 编辑中 只能看到启用着的插件,)
scm 源码管理-Git 插件
从git中获取作业配置,不过只支持是 SSH认证, git-resource-mode插件支持Git Password 需要添加插件
ps:这里是git是存配置的,不是git作为服务项目发布的
建议集成jenkins 或者git-webhook方式 Integrate with Jenkins
配置导入导出
适合配置备份,项目复制
导出的是一个jar文件 1st-20240423-112014.rdproject.jar,导出时可以直接选择 Export To Another Instance
页面导入,每一项都可以选择是否导入,根据自己的时间情况选择

作业 -Job

作业作为比较核心的的功能,rundeck 提供了完善的功能。
  • 自定义作业流程,支持过滤器
  • 异常捕获处理,每一步都可以做错误处理
  • 自定义访问控制策略,对用户读取、创建、编辑、运行和终止作业进行管理
  • 运行提供了debug、重试执行、超时处理、延时执行、周期执行方式、
  • 节点并发数、节点排序,动态过滤等
  • 作业配置的导入导出
  • 作业进度查看与日志记录

作业组:实现某种功能的作业集合

创建作业

支持CLI 与API 方式

details: 定义Job Name 、Description和group

对于组,显示成树状结构,可以提供筛选等。

workflow-工作流:
工作流程可以在 控制台中定义,也可以加载服务器的 XML 或 YAML 文档。
XML: 工作-xml
YAML: 工作-yaml

Options:简单来说就是 定义输入参数或者是环境变量,对于敏感信息也有处理,支持URL请求

step fails:错误处理,立即失败或者继续执行其他作业

Strategy: 定义执行策略,对于更复杂的工作流策略规则,请参阅Ruleset Workflow Strategy Plugin

    1. 节点优先:每个节点上执行完整的工作流程,再执行下一个节点
    2. 顺序:上一个步骤在所有节点上执行完成后,再执行下一个步骤
    3. 并行:同时执行

Global Log Filters: 可以保持默认日志过滤插件,可以选择多个,流程的每一步也能选择(可以在项目中配置全局)

日志的:键值、高亮、格式化渲染、敏感词屏蔽等

Workflow steps: 对应的是节点处理器处理方式,每一步都可以添加错误处理程序 Log Filters

    • 打印有关故障的附加信息
    • 回滚更改
    • 将工作流程从故障中恢复并正常继续

如果错误处理程序成功,则该步骤不被视为失败

作业上下文(全局范围):一些常用的变量在命令中可以直接使用。

Schedule: 定义周期执行
Notifications: 通知,对应不同的结束状态可以做不同的通知
Execution Plugins:插件
Other:日志级别、定义重复/超时

插件

Rundeck 所做的大部分工作都是通过其插件完成的
主要介绍 Git Resource Model
关于插件类型与处理方式
提供了许多内置插件包含:
Node、Workflow 、Log Filter、Content、Webhook 等相关的
full-list: Rundeck Plugins List
  • 工作流程步骤[Workflow Step]- 定义一个操作,可以是工作流程中的不同步骤,无论是针对单个节点还是一组节点
  • 节点执行[Node Execution]- 定义连接到远程节点并执行命令的机制
  • 文件复制器[File Copier]- 定义一种将文件复制到远程节点的机制
  • 资源模型源[Resource Model Source]- 定义一种机制来检索资源模型数据(节点定义)以供 Rundeck 项目使用
  • 资源格式[Resource Format]- 定义资源模型的数据格式
  • 通知[Notification]- 定义一种通知机制,可以在作业开始或完成时触发
  • 流式日志记录[Streaming Logging]- 定义读取和写入日志事件的机制
  • 执行文件存储[Execution File Storage]- 定义日志文件存储机制
  • 存储设施[Storage Facility]- 定义存储后端和内容转换
  • Orchestrator - 定义执行分派命令时编排节点的机制
  • 日志过滤器[Log Filters]- 可以从工作流程的日志输出中捕获数据或修改日志输出
搜索插件
系统菜单 -> 插件 -> 搜索插件 ->跳转到GitHub中下对应的资源包和安装文档

安装插件
卸载就把文件移除即可
cp git-resource-model-1.0.2.jar /var/lib/rundeck/libext
cd /var/lib/rundeck/libext
chown rundeck.rundeck git-resource-model-1.0.2.jar

配置插件
需要根据对应的插件类型有不同的处理方式
git-resource-mode很明显是 资源模型源 [Resource Model Source]

节点

通过节点源定义的节点资源,读取与解析配置,再通过web展示出解析获取到的节点
健康检查(需要企业版本)

node-enhancers :属性匹配、图标和健康检查(需要企业版本),

可以理解为在项目内 为节点批量添加属性的操作,成功后可以在node界面显示,如下如

SSH节点执行

ssh执行节点: SSH Node Execution
命令:默认使用SSH在远程节点上执行命令,
脚本:SCP脚本复制到远程节点,执行命令和脚本。
密钥存储
测试只内置了SSH密钥存储,受到 ACL 策略的限制。
启用/禁用公钥 GUI 下载选项: rundeck.gui.keystorage.downloadenabled=false
API 访问:rundeck.feature.projectKeyStorage.enabled=false
SSH配置
还支持 ssh私钥认证、sudo、ssh代理等功能
username: root
ssh-config-KEY: publickey
ssh-key-storage-path: keys/project/1st/root-id_rsa #路径在 密钥存储页面
用户名
则按以下顺序查找:
节点级别username="user1",支持变量:${job.username} 执行用户,${option.someUsername},作业选项
项目级别project.properties项目文件中的属性 project.ssh.user。 任何项目节点
Rundeck级别framework.properties文件中的属性 framework.ssh.user。适用于所有项目
SSH认证模式
PreferredAuthentications: publickey,password,keyboard-interactive
MaxAuthTries: 1
则按以下顺序查找:
节点级别ssh-config-KEY节点上的属性。仅适用于目标节点。
项目级别project.properties项目文件中的属性 project.ssh-config-KEY。 任何项目节点
Rundeck级别framework.properties文件中的属性 framework.ssh-config-KEY。适用于所有项目
SSH 超时
节点级别:节点上的属性。仅适用于目标节点。
ssh-connection-timeout连接超时
ssh-command-timeout命令超时
项目级别:默认应用于任何项目节点。在项目配置 ( project.properties) 中设置属性。
project.ssh-connection-timeout连接超时
project.ssh-command-timeout命令超时
Rundeck 级别:默认适用于所有项目。在 中设置属性 framework.properties
framework.ssh-connection-timeout连接超时
framework.ssh-command-timeout命令超时
SSH 私钥
两种方式
SSH Private Keys On Disk
SSH Private Key Storage
存储在磁盘 查找顺序
节点级别ssh-keypath 节点上的属性。仅适用于目标节点。
项目级别project.properties项目文件中的属性 project.ssh-keypath。 任何项目节点
Rundeck级别framework.properties文件中的属性f ramework.ssh-keypath。适用于所有项目
存储在DB 查找顺序:
节点级别ssh-key-storage-path 节点上的属性。仅适用于目标节点。
项目级别project.properties项目文件中的属性 project.ssh-key-storage-path。 任何项目节点
Rundeck级别framework.properties文件中的属性f ramework.ssh-key-storage-path。适用于所有项目

命令 - commands

如图

webhook

标准的webhook 的不做多的介绍,不过rudeck中的webhook 与ACL权限挂钩。
webhook默认只提供两种功能 日志事件 log events 和运行作业 run job

创建一个webhook (user 定义了就不能改了),Post URL在创建之后自动生成,Roles默认与用户权限关联

备份与恢复

服务器操作:备份db、/var/lib/rundeck/ /etc/rundeck
文本操作:GUI 支持项目的导入和导出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值