本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

SUSE® Rancher Prime: OS Manager 计划

SUSE® Rancher Prime: OS Manager 使用 Rancher 系统代理,重命名为 SUSE® Rancher Prime: OS Manager 系统代理,最初通过一个简单计划启动节点。

该计划将应用以下配置:

  • 为节点设置一些标签

  • 根据 MachineInventory 值设置正确的主机名

  • 从 Rancher 服务器安装默认的 Rancher 系统代理,并安装适当的 Kubernetes 组件

启动服务还接受存储在 /var/lib/elemental/agent/plans 下的本地计划。安装完成后,存放在那里的任何计划也将在初始节点启动时被应用。

本地计划仅在节点上安装 Kubernetes 之前的初始 SUSE® Rancher Prime: OS Manager 启动 *期间*运行。

计划类型

SUSE® Rancher Prime: OS Manager 可以使用的计划类型有:

  • 一次性指令:仅运行一次

  • 定期指令:它们定期运行

  • 文件:创建文件

  • 探测:HTTP 探测

一次性指令和定期指令都可以运行直接命令或 Docker 镜像。

在 SUSE® Rancher Prime: OS Manager 上添加本地计划

您可以将本地计划作为 MachineRegistration CRD 的一部分添加到 SUSE® Rancher Prime: OS Manager,在 cloud-config 部分如下所示:

apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
  name: my-nodes
  namespace: fleet-default
spec:
  config:
    cloud-config:
      users:
        - name: root
          passwd: root
      write_files:
        - path: /var/lib/elemental/agent/plans/mycustomplan.plan
          permissions: "0600"
          content: |
            {"instructions":
                [
                  {
                    "name":"set hostname",
                    "command":"hostnamectl",
                    "args": ["set-hostname", "myHostname"]
                  },
                  {
                    "name":"stop sshd service",
                    "command":"systemctl",
                    "args": ["stop", "sshd"]
                  }
                ]
            }
    elemental:
      install:
        reboot: true
        device: /dev/sda
        debug: true
  machineName: my-machine
  machineInventoryLabels:
    element: fire

计划示例

以下计划仅作为快速参考,不能保证在您的环境中有效。要了解更多关于计划的信息,请查看https://github.com/rancher/system-agent[Rancher 系统代理]。

  • 示例1:一次性指令

  • 示例2:定期指令

  • 示例3:文件

  • 示例4:探测

{"instructions":
    [
        {
            "name":"set hostname",
            "command":"hostnamectl",
            "args": ["set-hostname", "myHostname"]
        },
        {
            "name":"stop sshd service",
            "command":"systemctl",
            "args": ["stop", "sshd"]
        }
    ]
}
{"periodicInstructions":
    [
        {
            "name":"set hostname",
            "image":"ghcr.io/rancher-sandbox/elemental-example-plan:main"
            "command": "run.sh"
        }
    ]
}
{"files":
    [
        {
            "content":"Welcome to the system",
            "path":"/etc/motd",
            "permissions": "0644"
        }
    ]
}
{"probes":
    "probe1": {
        "name": "Service Up",
        "httpGet": {
            "url": "http://10.0.0.1/healthz",
            "insecure": "false",
            "clientCert": "....",
            "clientKey": "....",
            "caCert": "....."
        }
    }
}