12.2. 配置并运行远程命令


您要在远程主机上执行的命令都必须定义为作业模板。在定义了作业模板后,您可以多次执行它。

12.2.1. 设置作业模板

Satellite 提供了多个默认作业模板,供您用于执行作业,在 Hosts Job templates 下找到它们。如果您找到一个模板适合默认模板,请继续 第 12.2.2 节 “执行作业”
您还可以使用默认模板作为自行开发的基础。默认作业模板被锁定以进行编辑,因此您必须首先克隆模板才能修改它。

过程 12.1. 要创建作业模板,请执行以下操作:

  1. 前往 Hosts Job templates
  2. 单击 New Job Template。作为替代方案,您可以在 Actions 列中修改现有模板 -,从下拉菜单中选择 Clone
  3. 配置作业模板:
    1. Template 选项卡中,为您的作业模板输入一个唯一名称。选择 Default 以使模板适用于所有机构和位置。您可以使用 Template 编辑器 手动插入模板,或通过单击 Browse 从文本文件上传模板。模板使用嵌入式 Ruby (ERB)模板语法,如需更多信息,请参阅 第 12.2.4 节 “创建高级模板”。需要高级模板,例如执行执行电源操作的作业;有关如何在自定义模板中包含 Power Action - SSH 默认模板 的信息,请参阅 例 12.4 “模板中包含电源操作”
    2. Job 选项卡中,您可以定义作业类别(定义您自己的作业类别,或从 表 12.1 “默认作业模板目录”中列出的默认类别中选择)以及有效用户;这些设置也可以在调用作业时配置这些设置(请参阅 过程 12.2, “执行远程作业:”)。您还可以为模板命令定义输入参数。然后,在执行作业时请求这些参数。
    3. 剩余的选项卡支持设置模板类型、机构和位置,以及查看模板历史记录。
  4. 单击 Submit。当页面刷新时,您的新模板应当会显示在作业模板列表中。
重要
请注意,只有主机编辑页面中的 Parameters 选项卡中可见的参数才能用作作业模板的输入参数。
Expand
表 12.1. 默认作业模板目录
作业模板类别
Description
软件包 执行与软件包相关的操作的模板。默认情况下,包括安装、更新和删除操作。
puppet 用于在目标主机上运行 Puppet 的模板。
power 执行电源相关操作的模板。默认包括重启和关闭操作。
命令 用于在远程主机上执行自定义命令的模板。
服务 执行服务相关操作的模板。默认包括 start、stop、restart 和 status 操作。
Katello 执行内容相关操作的模板。这些模板主要用于 Satellite Web UI 的不同部分(例如,用于内容主机的批量操作 UI),但可以单独用来执行勘误表安装等操作。

例 12.1. 创建 restorecon 模板

本例演示了如何创建一个名为 Run Command - restorecon 的模板,该模板将为目标主机上所选目录中所有文件恢复默认 SELinux 上下文。
  1. 前往 Hosts Job templates。单击 New Job Template
  2. Name 字段中插入 Run Command - restorecon。选择 Default 以使模板可供所有机构使用。将以下文本添加到 Template 编辑器
    restorecon -RvF <%= input("directory") %>
    Copy to Clipboard Toggle word wrap
    & lt;%= input ("directory")% > 字符串将在作业调用期间被用户定义的目录替代。
  3. Job 选项卡中,执行以下操作:
    1. Job category 设置为 commands
    2. 单击 Add Input 以允许作业自定义。将目录 插入到 Name 字段中。输入名称必须与 Template 编辑器 指定的值匹配。
    3. Required,以便在没有用户指定参数的情况下无法执行命令。
    4. Input type 下拉列表中选择 User input。另外,提供在作业调用期间要显示的 描述,如 Target directory for restorecon
  4. 单击 Submit
有关如何根据此模板执行作业的详情,请参考 例 12.2 “在多个主机上执行 restorecon 模板”

12.2.2. 执行作业

本节演示了如何根据一个或多个主机根据作业模板运行作业。

过程 12.2. 执行远程作业:

  1. 导航到 Hosts All hosts,再为您的作业选择目标主机。您可以使用搜索字段缩小主机列表范围。
  2. 在屏幕右上角的 Select Action 菜单中,选择 Run Job。这将把您带到 Job invocation 页面。或者,如果您只以一个主机为目标,点其名称并点主机信息页面上的 Run Job。请注意,您也可以使用 Run 按钮从 Job Templates 页面中调用作业。
  3. Job invocation 页面中,定义主要的作业设置:
    1. 选择要使用的 Job categoryJob template。需要这些设置。
    2. (可选)在 Bookmark 列表中选择存储的搜索字符串来指定目标主机。
    3. (可选)通过插入搜索查询 来进一步限制目标主机。Resolves to 行显示受查询影响的主机数量。在更改查询后,使用刷新按钮重新计算数字。preview 图标将列出目标主机。
    4. 剩余的设置取决于所选作业模板。有关在模板中添加自定义参数的详情,请参考 过程 12.1, “要创建作业模板,请执行以下操作:”
  4. 单击 Display advanced fields 将显示该作业的高级设置。有些高级设置取决于作业模板,以下设置是常规的:
    • 有效的 用户定义用于执行作业的用户,默认为 SSH 用户。
    • 并发级别 定义一次执行的最大作业数,这可防止在大量主机上执行作业时防止系统资源的过载。
    • 时间范围 定义作业应终止的时间间隔(以秒为单位)。在定义的时间间隔中无法启动的任务,例如,如果上一个任务需要很长时间才能完成,则会取消。
    • 查询 类型定义何时评估搜索查询。这有助于保留对调度任务的最新查询。
    并发级别 和时间范围 设置允许您定制作业执行,以适应基础架构硬件和需求。
  5. 如果要立即执行作业,请确保 Schedule 设置为 Execute now。您还可以定义一个一次性的未来作业,或者设置周期性作业。对于周期性任务,您可以定义开始和结束日期、运行的数目和频率。您还可以使用 cron 语法来定义重复性。有关 cron 的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的 自动化 系统任务部分。
  6. 单击 Submit。这将显示 Job Overview 页面,作业完成时也会显示作业的状态。

例 12.2. 在多个主机上执行 restorecon 模板

本例演示了如何根据在多个主机 例 12.1 “创建 restorecon 模板” 中创建的模板执行作业。该作业将在 /home/ 目录下的所有文件中恢复 SELinux 上下文。
  1. 导航到 Hosts All hosts 并选择目标主机。从 Select Action 下拉列表中选择 Run Job
  2. Job invocation 页面中,选择 Commands job 类别和 Run Command - restorecon 作业模板。
  3. 目录 字段中键入 /home
  4. Schedule 设置为 Execute now
  5. 单击 Submit。您会进入 Job invocation 页面,您可以在其中监控作业执行的状态。

12.2.3. 监控作业

您可以在作业运行时监控作业的进度。这可帮助进行可能需要的任何故障排除。

过程 12.3. 监控作业:

  1. 导航到 Job 页面。如果您使用 Execute now 设置触发作业,则会自动显示此页面。要监控调度的作业,请导航到 Monitor Jobs,再选择要检查的作业运行。
  2. 在 Job 页面上,单击 Hosts 选项卡。这将显示其上运行作业的主机的列表。
  3. Host 列中,单击要检查的主机的名称。这将显示 Commands 页面的 Details,您可以在其中实时监控作业执行。
  4. 随时单击 Back to Job,以返回到 Job Details 页面。

12.2.4. 创建高级模板

在创建作业模板时,您可以在 Template 编辑器 字段中导入现有模板 - 这称为 渲染。这样,您可以组合模板,或者从一般创建更具体的模板。
以下模板组合了默认模板,以在 Red Hat Enterprise Linux 系统上安装和启动 httpd 服务:
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %>
<%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
Copy to Clipboard Toggle word wrap
以上模板直接指定渲染模板的参数值。也可以使用 input() 方法允许用户在作业执行中为渲染的模板定义输入。例如,您可以使用以下语法:
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
Copy to Clipboard Toggle word wrap
使用上述模板,您必须从渲染的模板导入参数定义。为此,请导航到 Jobs 选项卡,单击 Add Foreign Input Set,然后从 Target template 下拉列表中选择呈现的模板。您可以导入所有参数,或者指定一个以逗号分隔的列表。

例 12.3. 渲染 restorecon 模板

本例演示了如何创建从 例 12.1 “创建 restorecon 模板” 中创建的 Run command - restorecon 模板派生的模板。此模板不需要在作业执行时输入用户,它将在目标主机上的 /home/ 目录下的所有文件中恢复 SELinux 上下文。
按照 第 12.2.1 节 “设置作业模板” 所述创建新模板,并在 Template 编辑器 屏幕中指定以下字符串:
<%= render_template("Run Command - restorecon", :directory => "/home") %>
Copy to Clipboard Toggle word wrap

例 12.4. 模板中包含电源操作

本例演示了如何为执行电源操作(如重启)设置作业模板。此流程可防止 Satellite 在重启时将断开连接异常解释为错误,因此远程执行作业可以正常工作。
按照 第 12.2.1 节 “设置作业模板” 所述创建新模板,并在 Template 编辑器 屏幕中指定以下字符串:
<%= render_template("Power Action - SSH Default", :action => "restart") %>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat