操作

您可以通过多种不同的方式管理对客户端执行的操作。

对于 Salt 客户端,您可以安排自动重复性操作,以按照指定的日程安排将 Highstate 或任意一组自定义状态应用于客户端。您可以将重复性操作应用于单个客户端、系统组中的所有客户端或整个组织。

在 Salt 和传统客户端上,都可以通过创建操作链来设置要按特定顺序执行的操作。可以提前创建和编辑操作链,并将其安排为在适当的时间运行。

您还可以在一个或多个 Salt 客户端上执行远程命令。使用远程命令可以向单个 Salt 客户端或者与搜索词匹配的所有客户端发出命令。

1. 重复性操作

可以对单个 Salt 客户端、系统组、组织中的所有客户端应用重复性操作。

SUSE Manager 目前支持将以下操作类型作为重复性操作:

  • Highstate:执行 Highstate。

  • 自定义状态:执行一组自定义状态。自定义状态可以是 SUSE Manager 提供的内部状态,也可以是用户创建的配置通道。

有关配置通道的详细信息,请参见 配置管理

过程:创建新的重复性操作
  1. 要将重复性操作应用于单个客户端,请导航到系统,单击要为其配置日程安排的客户端,然后导航到重复性操作选项卡。

  2. 要将重复性操作应用于系统组,请导航到系统  系统组,选择要为其配置日程安排的组,然后导航到重复性操作选项卡。

  3. 单击 创建

  4. 操作类型下拉列表中选择操作类型。

  5. 键入新日程安排的名称。

  6. 选择重复性操作的频率:

    • 每小时:键入每小时内过去的分钟数。 例如,如果指定 15,则在每小时过去 15 分钟后运行操作。

    • 每日:选择每日的时间。 例如,如果指定 01:00,则在 SUSE Manager Server 所在时区的每日 01:00 运行操作。

    • 每周:选择星期日期和该日期中的时间,以便在每周的指定时间执行操作。

    • 每月:选择月份日期和该日期中的时间,以便在每月的指定时间执行操作。

    • 自定义 Quartz 格式:要查看更详细的选项,请输入自定义 Quartz 字符串。 例如,要在每个月的每个星期六 02:15 运行重复性操作,请输入:

      0 15 2 ? * 7
  7. 可选:将测试模式开关切换为打开,以在测试模式下运行日程安排。

  8. 对于自定义状态类型的操作,请从可用状态列表中选择状态,然后单击 保存更改。此操作只会保存当前选择的状态,而不会保存日程安排。

  9. 在下一个窗格中,拖放所选状态使其按执行顺序排列,然后单击 确认

  10. 最后,单击 创建日程安排 保存设置,并查看现有日程安排的完整列表。

组织管理员可为组织中的所有客户端设置和编辑重复性操作。导航到首页  我的组织  重复性操作,即可看到适用于整个组织的所有重复性操作。

SUSE Manager 管理员可为所有组织中的所有客户端设置和编辑重复性操作。导航到管理  组织,选择要管理的组织,然后导航到状态  重复性操作选项卡。

重复性操作只可用于 Salt 客户端。将忽略组或组织中的传统客户端。

2. 操作链

如果您需要对客户端执行多个有序操作,可以创建一个操作链以确保遵循该顺序。

默认情况下,大多数客户端会在发出命令后立即执行操作。在某些情况下,操作需要很长时间,这可能意味着之后发出的操作会失败。例如,如果您指示客户端重引导,然后发出第二个命令,则第二个操作可能会失败,因为重引导仍在进行。为确保操作按正确的顺序进行,请使用操作链。

对于事务更新系统,操作链会在单个快照内执行,直到进行重引导操作。这可能会产生某些限制。

有关详细信息,请参见 注册 SLE Micro 客户端

可以在传统客户端和 Salt 客户端上使用操作链。操作链可以包含任意数量、采用任意顺序的以下操作:

  • 系统细节  远程命令

  • 系统细节  安排系统重引导

  • 系统细节  状态  Highstate

  • 系统细节  软件  软件包  列出/去除

  • 系统细节  软件  软件包  安装

  • 系统细节  软件  软件包  升级

  • 系统细节  软件  补丁

  • 系统细节  软件  软件通道

  • 系统细节  配置

  • 映像  构建

过程:创建新操作链
  1. 在 SUSE Manager Web UI 中,导航到您要在操作链中执行的第一个操作。例如,导航到客户端的系统细节,然后单击 安排系统重引导

  2. 选中添加到字段,然后选择要将操作添加到的操作链:

    • 如果这是您的第一个操作链,请选择新建操作链

    • 如果该操作链已存在,请从列表中选择它。

    • 如果您已有操作链,但想要创建一个新操作链,请键入新操作链的名称以创建该操作链。

  3. 确认操作。 该操作不会立即执行,而是创建新的操作链,并在屏幕顶部显示一个确认此行为的蓝色条。

  4. 继续将操作添加到操作链,方法是选中添加到字段并选择要将操作添加到的操作链的名称。

  5. 添加完操作后,导航到日程安排  操作链并从列表中选择操作链。

  6. 通过将操作拖放到正确的位置来重新排列操作顺序。 单击蓝色加号查看要对其执行操作的客户端。单击 保存 以保存更改。

  7. 安排操作链的运行时间,然后单击 保存并安排。 如果您在不单击 保存保存并安排 的情况下离开页面,将丢弃所有未保存的更改。

如果操作链中的某个操作失败,操作链将会停止,且不再执行其他操作。

可以通过导航到日程安排  待执行的操作来查看操作链中已安排的操作。

3. 远程命令

可以将客户端配置为远程运行命令。这样,在无法直接访问客户端的情况下,也可以向客户端发出脚本或单个命令。

此功能在 Salt 客户端上已自动启用,您无需执行任何其他配置。对于传统客户端,如果您已使用引导脚本注册客户端并已启用远程命令,则会启用该功能。您也可以使用以下过程手动启用该功能。

在开始之前,请确保您的客户端已订阅适用于其中所安装操作系统的工具子通道。有关订阅软件通道的详细信息,请参见 软件通道

对于事务更新系统,需考虑到远程命令会在单个快照内运行。这可能会产生某些限制。

有关详细信息,请参见 注册 SLE Micro 客户端

过程:将传统客户端配置为接受远程命令
  1. 在客户端上的命令提示符下,使用软件包管理器安装 rhncfgrhncfg-clientrhncfg-actions 软件包(如果尚未安装)。 例如:

    zypper in rhncfg rhncfg-client rhncfg-actions
  2. 在客户端上的命令提示符下,以 root 身份在本地配置目录中创建一个路径:

    mkdir -p /etc/sysconfig/rhn/allowed-actions/script
  3. 在新目录中创建名为 run 的空文件。 此文件授予 SUSE Manager Server 运行远程命令的权限:

    touch /etc/sysconfig/rhn/allowed-actions/script/run

Salt 客户端是从其 /tmp 目录中运行远程命令。为确保远程命令准确执行,请勿使用 noexec 选项挂载 /tmp。有关详细信息,请参见 查错

远程命令页面运行的所有命令将在客户端上以 root 身份执行。可以使用通配符在任意数量的系统上运行命令。请务必在仔细检查后再发出命令。

过程:在传统客户端上运行远程命令
  1. 在 SUSE Manager Web UI 中,导航到系统,单击要在其上运行远程命令的客户端,然后导航到细节  远程命令选项卡。

  2. 作为用户运行字段中,键入要在客户端上运行命令的用户的用户 ID (UID)。 或者,可以在作为组运行字段中使用组 ID (GID) 指定一个组来运行命令。

  3. 可选:在超时字段中,键入命令的超时期限,以秒为单位。 如果命令在此期限内未能执行,则它不会继续运行。

  4. 命令标签字段中,键入命令的名称。

  5. 脚本字段中,键入要执行的命令或脚本。

  6. 选择执行命令的日期和时间,或将远程命令添加到操作链。

  7. 单击 日程安排 以安排远程命令。

有关操作链的详细信息,请参见 Action Chains

过程:在 Salt 客户端上运行远程命令
  1. 导航到 Salt  远程命令

  2. 在第一个字段中的 @ 符号之前,键入您要发出的命令。

  3. 在第二个字段中的 @ 符号之后,键入您要在其上发出命令的客户端。 可以键入单个客户端的受控端 ID,也可以使用通配符指定一系列客户端作为目标。

  4. 单击 查找目标 查看指定为目标的客户端,并确认使用了正确的细节。

  5. 单击 运行命令 向目标客户端发出命令。