5.7. 覆盖智能类参数

您可以使用 API 搜索智能清单,并提供一个值来覆盖类中的智能参数。您可以在 https://satellite.example.com/apidoc/v2/smart_class_parameters/update.html 的内置 API 引用中找到您可以修改的属性的完整列表。

  1. 查找您要更改的 Smart Class 参数的 ID:

    • 列出所有智能类参数。

      请求示例:

      $ curl --request GET --insecure --user sat_username:sat_password \
      https://satellite.example.com/api/smart_class_parameters
    • 如果您知道 Puppet 类 ID,如 5,您可以限制范围:

      请求示例:

      $ curl --request GET --insecure --user sat_username:sat_password \
      https://satellite.example.com/api/puppetclasses/5/smart_class_parameters

      两个调用都接受 search 参数。您可以在 Satellite Web UI 中查看可搜索字段的完整列表。导航到 Configure > Smart variables,然后点击搜索查询框来显示字段列表。

      特别有用的搜索参数是 puppetclass_namekey,可用于搜索特定参数。例如,使用 --data 选项传递 URL 编码数据。

      请求示例:

      $ curl --request GET --insecure --user sat_username:sat_password \
      --data 'search=puppetclass_name = access_insights_client and key = authmethod' \
      https://satellite.example.com/api/smart_class_parameters

      Satellite 支持标准范围的搜索语法。

  2. 当您找到参数的 ID 时,列出包括当前覆盖值的完整详情。

    请求示例:

    $ curl --request GET --insecure --user sat_username:sat_password \
    https://satellite.example.com/api/smart_class_parameters/63
  3. 启用覆盖参数值。

    请求示例:

    $ curl --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --request PUT --insecure --user sat_username:sat_password \
    --data '{"smart_class_parameter":{"override":true}}' \
    https://satellite.example.com/api/smart_class_parameters/63

    请注意,您无法手动创建或删除参数。您只能修改其属性。Satellite 仅在从代理导入类时创建和删除参数。

  4. 添加自定义覆盖匹配器。

    请求示例:

    $ curl --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --request PUT --insecure --user sat_username:sat_password \
    --data '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \
    https://satellite.example.com/api/smart_class_parameters/63

    有关覆盖值的更多信息,请参阅 https://satellite.example.com/apidoc/v2/override_values.html

  5. 您可以删除覆盖值。

    请求示例:

    $ curl --request DELETE --user sat_username:sat_password \
    https://satellite.example.com/api/smart_class_parameters/63/override_values/3