Skip to main content

มาโครแบบกำหนดเอง

มาโคร ช่วยให้คุณสามารถเพิ่มข้อมูลตัวแปร (การตั้งค่าการกำหนดค่า) ให้กับไฟล์แบบอัตโนมัติหรือสคริปต์หลังการติดตั้ง Lenovo XClarity Administrator ช่วยให้คุณสามารถกำหนดการตั้งค่าแบบกำหนดเองของคุณเองด้วยการสร้างไฟล์การตั้งค่าการกำหนดค่าแบบกำหนดเองที่ใช้รูปแบบ JSON

ค่าสำหรับการตั้งค่าการกำหนดค่าแบบกำหนดเองแต่ละรายการ จะแตกต่างกันออกไปตามอินพุตของผู้ใช้ที่ระบุระหว่างการปรับใช้ OS

เมื่อคุณนำเข้าการตั้งค่าการกำหนดค่าแบบกำหนดเองลงใน XClarity Administrator แล้ว XClarity Administrator จะตรวจสอบความถูกต้องของสคีมา JSON หากผ่านการตรวจสอบ XClarity Administrator จะสร้างมาโครแบบกำหนดเองให้กับการตั้งค่าแต่ละรายการ

ในการใส่มาโครแบบกำหนดเองในไฟล์แบบอัตโนมัติหรือสคริปต์หลังการติดตั้ง ให้ใช้ชื่อออบเจกต์ที่ไม่ซ้ำกัน คั่นออบเจกต์ที่ซ้อนกันด้วยเครื่องหมายจุด และคร่อมชื่อมาโครด้วยเครื่องหมายสี่เหลี่ยม (#) ตัวอย่างเช่น#server_settings.server0.locale#

หมายเหตุ
  • อย่ารวมชื่อออบเจกต์ระดับบนสุด

  • เมื่อสร้างออบเจกต์จากเทมเพลต ชื่อจะต่อท้ายด้วยตัวเลขที่ไม่ซ้ำกันโดยเริ่มต้นที่ 0 (ตัวอย่างเช่น server0 และ server1)

  • คุณสามารถดูชื่อของมาโครแต่ละรายการได้จากกล่องโต้ตอบ ปรับใช้อิมเมจ OS ในแท็บ การตั้งค่าแบบกำหนดเอง โดยวางเมาส์ไว้เหนือไอคอน วิธีใช้ (ไอคอนความช่วยเหลือ) ถัดจากการตั้งค่าแบบกำหนดเองแต่ละรายการ

การตั้งค่าการกำหนดค่า

คุณสามารถกำหนดการตั้งค่าการกำหนดค่าแบบกำหนดเองที่:
  • ใช้ร่วมกันได้กับเซิร์ฟเวอร์เป้าหมายทั้งหมด หรือกำหนดให้ใช้กับเครื่องใดเครื่องหนึ่งโดยเฉพาะก็ได้

  • มีค่าแบบคงที่ (ไม่สามารถกำหนดค่าได้) หรือค่าแบบไดนามิก (กำหนดค่าได้) ที่ป้อนขณะปรับใช้โปรไฟล์อิมเมจ OS

  • มีองค์ประกอบจำนวนต่างๆ ตามเทมเพลต ตัวอย่างเช่น คุณสามารถกำหนดการตั้งค่าการกำหนดค่าที่ให้คุณสามารถระบุเซิร์ฟเวอร์ NTP 0 - 3 รายการในระหว่างการปรับใช้

การตั้งค่าทั่วไป

ระหว่างการปรับใช้ OS องค์ประกอบ UI บนแท็บการตั้งค่าทั่วไปในกล่องโต้ตอบปรับใช้อิมเมจ OS จะแสดงตามออบเจกต์ต่างๆ ที่พบในออบเจกต์content ออบเจกต์เหล่านี้จะบอกให้ทราบถึงการตั้งค่าและค่าต่างๆ ที่เซิร์ฟเวอร์เป้าหมายทั้งหมดจำเป็นต้องใช้ในการปรับใช้ OS

เพื่อแสดงการตั้งค่าที่ใช้ได้กับเซิร์ฟเวอร์ทั้งหมด ไฟล์ JSON จะต้องมีออบเจกต์หลักพร้อมกับออบเจกต์ที่ซ้อนกันซึ่งประกอบด้วยคู่ชื่อ/ค่าเป็น "common":true

ตัวอย่างต่อไปนี้จะใช้เซิร์ฟเวอร์ NTP แบบกำหนดค่าได้ (ไดนามิก) ชุดเดียวกันสำหรับเซิร์ฟเวอร์ทั้งหมด
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"template": [{
"autoCreateInstance": true,
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
...,
}
ตัวอย่างต่อไปนี้จะใช้ไดเรกทอรีบันทึกสคริปต์หลังการติดตั้งแบบกำหนดค่าไม่ได้ (คงที่) ชุดเดียวกัน
{
"category": "dynamic",
"content": [{
"category": "static",
"common": true,
"description": "Directory location for post-installation script logging.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
},
...,
}
การตั้งค่าเฉพาะเซิร์ฟเวอร์

ระหว่างการปรับใช้ OS องค์ประกอบ UI บนแท็บการตั้งค่าเฉพาะเซิร์ฟเวอร์ในกล่องโต้ตอบปรับใช้อิมเมจ OS จะแสดงตามออบเจกต์ต่างๆ ที่พบในออบเจกต์ content ของเทมเพลต ออบเจกต์เหล่านี้จะบอกให้ทราบถึงการตั้งค่าและค่าต่างๆ ที่เซิร์ฟเวอร์เป้าหมายเฉพาะรายการจำเป็นต้องใช้ในการปรับใช้ OS

หลังจากรวบรวมค่าเฉพาะเซิร์ฟเวอร์ใน UI แล้ว ระบบจะสร้างออบเจกต์ content ในรูปแบบ JSON สำหรับเซิร์ฟเวอร์เป้าหมายแต่ละเครื่องตามออบเจกต์ template ออบเจกต์ content แต่ละรายการประกอบด้วยฟิลด์ name และ targetServer ที่ไม่ซ้ำกัน รวมทั้งค่าต่างๆ ที่ป้อนไว้สำหรับเซิร์ฟเวอร์นั้น

เพื่อแสดงถึงการตั้งค่าเฉพาะเซิร์ฟเวอร์ ไฟล์ JSON จะต้องประกอบด้วยออบเจกต์หลักที่มีเนื้อหาต่อไปนี้

  • คู่ชื่อ/ค่า "category":"dynamic"

  • ออบเจกต์ที่ซ้อนกันที่ประกอบด้วยคู่ชื่อ/ค่า "common":false เนื้อหาของออบเจกต์หลักรองรับออบเจกต์ "common": false เพียงหนึ่งรายการเท่านั้น

  • ออบเจกต์เทมเพลตที่มีออบเจกต์เนื้อหาแบบฝัง อาร์เรย์เทมเพลตนี้สามารถมีได้เพียงออบเจกต์เดียว

ตัวอย่างเช่น หากคุณต้องการกำหนดตำแหน่งที่ตั้ง OS สำหรับเซิร์ฟเวอร์เป้าหมายแต่ละเครื่อง
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"template": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
...,
}

ข้อกำหนดเกี่ยวกับรูปแบบ JSON

ตารางต่อไปนี้จะอธิบายเกี่ยวกับฟิลด์ต่างๆ ที่ใช้ได้ในข้อกำหนดรูปแบบ JSON

พารามิเตอร์จำเป็น / เสริมรุ่นรายละเอียด
autoCreateInstanceเสริมบูลีนระบุว่าอินสแตนซ์ของออบเจกต์เทมเพลตถูกสร้างขึ้นโดยอัตโนมัติในไฟล์ JSON ในเวลาที่ปรับใช้หรือไม่ ซึ่งสามารถเป็นค่าใดค่าหนึ่งต่อไปนี้
  • true อินสแตนซ์ของออบเจกต์เทมเพลตถูกสร้างขึ้นโดยอัตโนมัติในไฟล์ JSON ในเวลาที่ปรับใช้
  • false (ค่าเริ่มต้น) อินสแตนซ์ของออบเจกต์เทมเพลตไม่ได้ถูกสร้างขึ้นโดยอัตโนมัติในไฟล์ JSON ในเวลาที่ปรับใช้
หมายเหตุ
คุณสามารถวางฟิลด์นี้ได้ในออบเจกต์เทมเพลตเท่านั้น
ประเภทจำเป็นสตริงบ่งชี้ว่าค่าของการตั้งค่าแต่ละรายการจะถูกป้อนอย่างไร ซึ่งสามารถเป็นค่าใดค่าหนึ่งต่อไปนี้
  • แบบไดนามิก ค่าจะถูกป้อนโดยผู้ใช้ขณะรันไทม์ Lenovo XClarity Administrator จะแจ้งให้คุณป้อนค่านี้ระหว่างการปรับใช้ OS

  • แบบกำหนดไว้ล่วงหน้า ค่านี้จะถูกกำหนดไว้ล่วงหน้าโดย Lenovo XClarity Administrator

  • static ค่านี้จะถูกระบุในสคีมาและไม่เปลี่ยนแปลงขณะรันไทม์

ออบเจกต์ที่ซ้อนกันจะรับค่าของฟิลด์นี้จากออบเจกต์หลัก

หาก category ถูกตั้งค่าไว้เป็น static ในออบเจกต์หลัก ก็จะต้องตั้งค่าเป็น static ในออบเจกต์ที่ซ้อนกันทั้งหมดด้วย หาก category ถูกตั้งค่าไว้เป็น dynamic ในออบเจกต์หลัก อาจตั้งค่าเป็น static หรือ dynamic ก็ได้ในออบเจกต์ที่ซ้อนกัน

ตัวเลือกเสริมอาร์เรย์ของค่าที่ตรงกับคุณสมบัติ typeอาร์เรย์ของค่าแบบคงที่ (เช่น สตริงหรือจำนวนเต็ม) ของการตั้งค่าการกำหนดค่าที่ผู้ใช้สามารถเลือกได้ระหว่างการปรับใช้ OS (เช่น ["enabled","disabled"])
ทั่วไปเสริมบูลีนบ่งชี้ว่าสคีมาการกำหนดค่านี้มีผลใช้งานกับเซิร์ฟเวอร์เป้าหมายทั้งหมดหรือไม่
  • true ออบเจกต์มีผลกับเซิร์ฟเวอร์เป้าหมายทั้งหมด

  • false (ค่าเริ่มต้น) ออบเจกต์มีผลกับเซิร์ฟเวอร์เป้าหมายเฉพาะรายการ

ออบเจกต์ที่ซ้อนกันจะรับค่าของฟิลด์นี้จากออบเจกต์หลัก

หาก common ถูกตั้งค่าไว้เป็น true ในออบเจกต์หลัก ก็จะต้องตั้งค่าเป็น true ในออบเจกต์ที่ซ้อนกันทั้งหมดด้วย หาก common ถูกตั้งค่าไว้เป็น false ในออบเจกต์หลัก ก็จะต้องค่าเป็น false ในออบเจกต์ที่ซ้อนกันทั้งหมด

เนื้อหาเสริมอาร์เรย์ของออบเจกต์รูปแบบที่แสดงถึงออบเจกต์ที่ซ้อนกันในสคีมา

หลังจากรวบรวมข้อมูลที่ผู้ใช้ป้อนระหว่างการปรับใช้ OS แล้ว ฟิลด์นี้จะใช้แสดงถึงค่าสุดท้ายของเทมเพลตที่ระบุในอินสแตนซ์ของไฟล์การตั้งค่าการกำหนดค่าที่สร้างขึ้นสำหรับการปรับใช้ดังกล่าว

ค่าเริ่มต้นเสริมแตกต่างกันไปตามฟิลด์ typeค่าเริ่มต้น
รายละเอียดเสริมสตริงรายละเอียดเกี่ยวกับออบเจกต์
ป้ายเสริมสตริงป้ายกำกับสำหรับการตั้งค่าในส่วนติดต่อผู้ใช้ที่แสดงระหว่างการปรับใช้ OS
สูงสุดเสริมจำนวนเต็มค่าสูงสุดเมื่อตั้งค่า type เป็นจำนวนเต็ม

ค่าเริ่มต้นคือ ไม่จำกัด

maxElementsเสริมจำนวนเต็มจำนวนสูงสุดของรายการในอาร์เรย์สำหรับออบเจกต์นี้
minเสริมจำนวนเต็มค่าต่ำสุดเมื่อตั้งค่า type เป็นจำนวนเต็ม

ค่าเริ่มต้นคือ 0

minElementsเสริมจำนวนเต็มจำนวนต่ำสุดของรายการในอาร์เรย์สำหรับออบเจกต์นี้
nameจำเป็นสตริงชื่อเฉพาะของออบเจกต์

ชื่อสามารถประกอบด้วยอักขระต่อไปนี้เท่านั้น: อักขระตัวเลขและตัวอักษร (a-z, A-Z และ 0-9), ขีดล่าง (_) และขีด (-)

คุณสามารถใช้ name เพื่ออ้างอิงมาโครแบบกำหนดเองในไฟล์แบบอัตโนมัติได้ เมื่ออ้างอิงออบเจกต์ name ที่ซ้อนกัน ให้คั่นแต่ละออบเจกต์ด้วยจุด (เช่น mydeploy.node.locale)

ตัวเลือกเสริมจำเป็นบูลีนบ่งชี้ว่าออบเจกต์เป็นตัวเลือกเสริมหรือไม่ ซึ่งสามารถเป็นค่าใดค่าหนึ่งต่อไปนี้
  • true ฟิลด์นี้เป็นตัวเลือกเสริม

  • false ฟิลด์นี้ต้องระบุข้อมูล

regexเสริมสตริงนิพจน์ปกติสำหรับการตรวจสอบความถูกต้องของค่า (เช่น "[\\w\\.]{1,64}$")
สคริปต์เสริมอาร์เรย์ของสตริงรายการสคริปต์ที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งมีการอ้างอิงข้อมูลในออบเจกต์นี้ (เช่น ["/opt/lenovo/saphana/bin/saphana-create-saphana.sh", "create_hana.sh"])
หมายเหตุ
สคริปต์ต้องใช้ได้กับโปรไฟล์อิมเมจ OS ในรูปแบบสคริปต์การติดตั้งหรือซอฟต์แวร์แบบกำหนดเอง
targetServerเสริมสตริงUUID ของเซิร์ฟเวอร์ที่เป็นเป้าหมายของการปรับใช้ OS

หากฟิลด์ common มีค่าเป็น true ฟิลด์นี้จะว่างเปล่าหรือเป็นนัล และจะมีการระบุเซิร์ฟเวอร์เป้าหมายระหว่างการปรับใช้ OS

เทมเพลตเสริมอาร์เรย์ของออบเจกต์รูปแบบที่แสดงถึงออบเจกต์ที่นำมาใช้ใหม่ได้

ระหว่างการปรับใช้ OS เทมเพลตนี้อาจแสดงถึงอินสแตนซ์หลายรายการของออบเจกต์นี้ ฟิลด์ minElements และ maxElements สามารถใช้จำกัดจำนวนอินสแตนซ์ได้

ตัวอย่างต่อไปนี้จะใช้เทมเพลตเพื่อแสดงถึงอาร์เรย์ของเซิร์ฟเวอร์ NTP 1 - 3 เครื่อง
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"template": [{
"autoCreateInstance": true,
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
หลังจากรวบรวมค่าที่ผู้ใช้ป้อนระหว่างการปรับใช้ OS แล้ว ระบบจะสร้างอินสแตนซ์ของไฟล์การตั้งค่าการกำหนดค่าด้วยเนื้อหาที่เฉพาะเจาะจงสำหรับอุปกรณ์แต่ละเครื่องที่ปรับใช้ OS ดังกล่าว
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"content": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver0",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string",
"value": "192.0.2.1"
}],
"template": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
}
หมายเหตุ
  • จำเป็นต้องมีเทมเพลตที่ระดับบนสุดของออบเจกต์เฉพาะเซิร์ฟเวอร์ (common=false)

  • หาก category ตั้งค่าเป็น static ระบบจะข้ามฟิลด์เทมเพลต

typeจำเป็นสตริงประเภทข้อมูลสำหรับออบเจกต์ ซึ่งสามารถเป็นค่าใดค่าหนึ่งต่อไปนี้
  • array

  • assoc_array

  • บูลีน

  • จำนวนเต็ม

  • password

  • string

  • user_data

valueเสริมสตริงค่าคงที่รายการเดียวสำหรับการตั้งค่าการกำหนดค่า
หมายเหตุ
  • หากมีการตั้งค่า default ฟิลด์นี้อาจว่างเปล่าหรือเป็นค่าว่าง ไม่อย่างนั้น ให้ระบุค่าที่ตรงกับ type

  • หาก type เป็น password ให้ระบุสตริงที่ไม่ได้เข้ารหัส

  • หาก type เป็น assoc_array หรือ array คุณต้องระบุฟิลด์ content ที่ว่างเปล่าด้วย

  • หาก type เป็น user_data ให้ระบุรูปแบบ JSON value ที่ถูกต้อง

  • หากตั้งค่า regex ไว้ ค่านี้จะได้รับการตรวจสอบความถูกต้องโดยใช้นิพจน์ปกติที่ระบุ

การตั้งค่าการกำหนดค่าในตัวอย่างต่อไปนี้จะกำหนดการตั้งค่าตำแหน่งที่ตั้งสำหรับการปรับใช้ SLES ที่สามารถเพิ่มในโปรไฟล์แบบกำหนดเองได้
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"template": [{
"autoCreateInstance": true,
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"template": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
{
"category": "static",
"common": true,
"description": "Directory for post-installation script logging.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
}],
"description": "Custom configuration file for deployment of custom locale, NTP server,
and directory for post-installation script logs.",
"label": "My Custom Deployment",
"name": "myCustomDeploy",
"optional": false,
"type": "array"
}
ตัวอย่างต่อไปนี้คืออินสแตนซ์ของไฟล์การตั้งค่าการกำหนดค่าที่สร้างขึ้นบนระบบโฮสต์ หลังจากที่กำหนดค่าที่ผู้ใช้ป้อนระหว่างการปรับใช้
{
"category": "dynamic",
"content": [{
"category": "dynamic",
"common": false,
"name": "server-settings",
"optional": false,
"content": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server0",
"optional": false,
"type": "assoc_array",
"targetServer": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server1",
"optional": false,
"type": "assoc_array",
"targetServer": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
}],
"template": [{
"category": "dynamic",
"common": false,
"content": [{
"category": "dynamic",
"choices": ["en_US", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the OS language locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "OS Locale",
"name": "locale",
"optional": false,
"type": "string",
"value": "en_US"
},
{
"category": "dynamic",
"choices": ["english-us", "pt_BR", "ja_JP"],
"common": false,
"description": "This parameter defines the keyboard locale to use with this deployment.
English, Brazilian Portuguese, and Japanese are supported.",
"label": "Keyboard Locale",
"name": "keyboardLocale",
"optional": false,
"type": "string",
"value": "english-us"
}],
"name": "server",
"optional": false,
"type": "assoc_array"
}],
"type": "assoc_array"
},
{
"category": "dynamic",
"common": true,
"description": "NTP Servers",
"label": "NTP Servers",
"maxElements": 3,
"minElements": 0,
"name": "common-ntpservers",
"optional": true,
"content": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver0,
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string",
"value": "192.0.2.1"
},
{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver1",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string",
"value": "192.0.2.2"
}],
"template": [{
"category": "dynamic",
"common": true,
"description": "A NTP Server",
"label": "NTP Server",
"name": "ntpserver",
"optional": true,
"regex": "[\\w\\.]{1,64}$",
"type": "string"
}],
"type": "array"
},
{
"category": "static",
"common": true,
"description": "Directory for post-installation script logs.",
"name": "logpath",
"optional": false,
"type": "string",
"value": "/tmp/mylogger.log"
}],
"description": "Custom configuration file for deployment of custom locale, NTP server,
and directory for post-installation script logs.",
"label": "My Custom Deployment",
"name": "myCustomDeploy",
"optional": false,
"type": "array"
}