5.7. 外部ファイルを使用したスマートクラスパラメーターの変更
外部ファイルを使用して、Puppet スマートクラスパラメーターを変更できます。
外部ファイルを使用すると、JSON データでの作業が簡素化されます。構文強調表示機能付きのエディターを使用すると、間違いを避けたり見つけたりすることが可能です。以下の例では、MOTD Puppet マニフェストを使用します。
API の手順
今回の例では、
motdという名前で Puppet クラスを検索します。要求例:
$ curl \ --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request GET \ --user My_User_Name:My_Password \ https://satellite.example.com/api/smart_class_parameters?search=puppetclass_name=motd \ | python3 -m json.tool以下の出力を検証します。スマートクラスのパラメーターにはそれぞれ、同じ Satellite インスタンスでグローバルとなる ID が割り当てられています。
motdクラスのcontentパラメーターにはid=3があります。Puppet クラス名の前に表示される Puppet クラス ID と混同しないようにしてください。応答例:
{ "avoid_duplicates": false, "created_at": "2024-02-06 12:37:48 UTC", # Remove this line. "default_value": "", # Add a new value here. "description": "", "hidden_value": "", "hidden_value?": false, "id": 3, "merge_default": false, "merge_overrides": false, "override": false, # Set the override value to true. "override_value_order": "fqdn\nhostgroup\nos\ndomain", "override_values": [], # Remove this line. "override_values_count": 0, "parameter": "content", "parameter_type": "string", "puppetclass_id": 3, "puppetclass_name": "motd", "required": false, "updated_at": "2024-02-07 11:56:55 UTC", # Remove this line. "use_puppet_default": false, "validator_rule": null, "validator_type": "" }パラメーター ID
3を使用して、motdパラメーター固有の情報を取得して、出力を output_file.json などのファイルにリダイレクトします。要求例:
$ curl \ --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request GET \ --user My_User_Name:My_Password \ https://satellite.example.com/api/smart_class_parameters/3 \ | python3 -m json.tool > output_file.json1 つ前の手順で作成したファイルを、新しいファイル (例:
changed_file.json) にコピーして編集します。$ cp output_file.json changed_file.jsonファイルで、必要な値を変更します。以下の例では、
motdモジュールのコンテンツパラメーターを変更しますが、これには、overrideオプションをfalseからtrueに変更する必要があります。{ "avoid_duplicates": false, "created_at": "2024-02-06 12:37:48 UTC", # Remove this line. "default_value": "", # Add a new value here. "description": "", "hidden_value": "", "hidden_value?": false, "id": 3, "merge_default": false, "merge_overrides": false, "override": false, # Set the override value to true. "override_value_order": "fqdn\nhostgroup\nos\ndomain", "override_values": [], # Remove this line. "override_values_count": 0, "parameter": "content", "parameter_type": "string", "puppetclass_id": 3, "puppetclass_name": "motd", "required": false, "updated_at": "2024-02-07 11:56:55 UTC", # Remove this line. "use_puppet_default": false, "validator_rule": null, "validator_type": "" }ファイルの編集後に、以下のようになっていることを確認して、変更を保存します。
{ "avoid_duplicates": false, "default_value": "No Unauthorized Access Allowed", "description": "", "hidden_value": "", "hidden_value?": false, "id": 3, "merge_default": false, "merge_overrides": false, "override": true, "override_value_order": "fqdn\nhostgroup\nos\ndomain", "override_values_count": 0, "parameter": "content", "parameter_type": "string", "puppetclass_id": 3, "puppetclass_name": "motd", "required": false, "use_puppet_default": false, "validator_rule": null, "validator_type": "" }ファイルを Satellite に送信します。
$ curl \ --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request PUT \ --user My_User_Name:My_Password \ --data @changed_file.json \ https://satellite.example.com/api/smart_class_parameters/3