6.8. 外部ファイルを使用したスマートクラスパラメーターの変更
外部ファイルを使用して、Puppet スマートクラスパラメーターを変更できます。
外部ファイルを使用すると、JSON データでの作業が簡素化されます。構文強調表示機能付きのエディターを使用すると、間違いを避けたり見つけたりすることが可能です。
外部ファイルを使用したスマートクラスパラメーターの変更
以下の例では、MOTD Puppet マニフェストを使用します。
今回の例では、
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": "2017-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": "2017-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.json
1 つ前の手順で作成したファイルを、新しいファイル (例:
changed_file.json
) にコピーして編集します。$ cp output_file.json changed_file.json
ファイルで、必要な値を変更します。以下の例では、
motd
モジュールのコンテンツパラメーターを変更しますが、これには、override
オプションをfalse
からtrue
に変更する必要があります。{ "avoid_duplicates": false, "created_at": "2017-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": "2017-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