แพ็คเกจนี้มีรหัสสำหรับโปรแกรมข้อกำหนดอาร์กิวเมนต์ ANSIBLE ผู้ชมหลักคือผู้ดูแลโมดูล Ansible ที่ต้องการลดการทำซ้ำในโมดูลของพวกเขาโดยการสร้างข้อกำหนดอาร์กิวเมนต์โดยตรงจากเอกสารของผู้ใช้โมดูล
ตัวแยกเอกสารถูกเผยแพร่บน PYPI และเราสามารถติดตั้งได้โดยใช้ pip :
$ pip ติดตั้ง ansible-argspec-gen [ฐาน] # สิ่งนี้จะติดตั้ง ansible-base
$ pip ติดตั้ง ansible-argspec-gen [ansible] # สิ่งนี้จะติดตั้ง ansible
$ pip ติดตั้ง ansible-argspec-gen # เราจำเป็นต้องติดตั้ง Ansible หรือ
# ansible-base ตัวเอง
หากคำสั่งก่อนหน้านี้ไม่ล้มเหลวเราก็พร้อมที่จะเริ่มอัปเดตโมดูลของเรา เมื่อเราใช้เครื่องกำเนิดไฟฟ้าเป็นครั้งแรกเราต้องดำเนินการสามขั้นตอนต่อไปนี้:
# AUTOMATIC MODULE ARGUMENTS แต่สามารถเปลี่ยนแปลงได้ด้วยพารามิเตอร์บรรทัดคำสั่ง --marker เครื่องหมายตัวอย่างเช่นให้เราสมมติว่าสองสามบรรทัดแรกของฟังก์ชั่นหลักของโมดูลของเรามีลักษณะเช่นนี้ก่อนที่เครื่องกำเนิดไฟฟ้าจะรัน:
def main ():
# อาร์กิวเมนต์โมดูลอัตโนมัติ
# อาร์กิวเมนต์โมดูลอัตโนมัติ
โมดูล = ansiblemodule (
หากเราเรียกใช้เครื่องกำเนิดไฟฟ้าตอนนี้ในโหมดตรวจสอบด้วยการเปิดการเปิดใช้งานเราจะได้รับอะไรกลับมาเช่นนี้:
$ ansible-argspec-gen-diff-ปลั๊กอิน/dry-run/modules/route.py
--- ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.old
+++ ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.new
@@ -359,6 +359,52 @@
def main ():
# อาร์กิวเมนต์โมดูลอัตโนมัติ
+ argion_spec = {
+ "global": {"default": false, "type": "bool"},
+ "ชื่อ": {"type": "str"}
+ "ซ็อกเก็ต": {"type": "path"}
+ "state": {
+ "ตัวเลือก": ["ปัจจุบัน", "ขาด"],
+ "ค่าเริ่มต้น": "ปัจจุบัน",
+ "type": "str",
-
-
+ ต้องการ _if = [("global", false, ("ชื่อ",), ("state", "ปัจจุบัน", ("ขั้นตอน",))]]
# อาร์กิวเมนต์โมดูลอัตโนมัติ
โมดูล = ansiblemodule (
เมื่อเรามีความสุขกับการเปลี่ยนแปลงที่เสนอเราสามารถเขียนลงในไฟล์:
$ ansible-Argspec-gen plugins/modules/route.py
หากเราอัปเดตเอกสารของโมดูลเราสามารถเรียกใช้คำสั่งก่อนหน้าและเครื่องกำเนิดก่อนหน้านี้จะใช้หรืออัปเดตข้อมูลจำเพาะอีกครั้ง โปรดทราบว่าเครื่องกำเนิดไฟฟ้าจะ เขียนทับ เนื้อหาระหว่างเครื่องหมายดังนั้นตรวจสอบให้แน่ใจว่าคุณไม่ได้แก้ไขส่วนนั้นของไฟล์นั้นด้วยตนเองหรือคุณจะสูญเสียการเปลี่ยนแปลงในการอัปเดตครั้งต่อไป
การสร้างข้อกำหนดอาร์กิวเมนต์สำหรับคลาส AnsibleModule ควรทำงานบนโมดูลใด ๆ ที่มีเอกสาร แต่การให้เครื่องกำเนิดไฟฟ้าเพื่อสร้างพารามิเตอร์อื่น ๆ เช่นข้อกำหนดด้านเงื่อนไขต้องใช้งานเล็กน้อย
ในการสร้างข้อกำหนด required_if พารามิเตอร์ของเราจะต้องมีประโยคในคำอธิบายที่เหมาะกับเทมเพลต ที่จำเป็นถ้าฉัน ({param_name}) คือ C ({param_value}) ตัวอย่างถัดไป:
ตัวเลือก:
ชื่อ:
คำอธิบาย:
- ชื่อของทรัพยากร จำเป็นถ้าฉัน (รัฐ) คือ c (ปัจจุบัน)
จะสร้างข้อกำหนดต่อไปนี้:
จำเป็น _if = [("สถานะ", "ปัจจุบัน", ("ชื่อ",))]]
อีกสิ่งหนึ่งที่เครื่องกำเนิดไฟฟ้ารู้วิธีการผลิตคือข้อกำหนด mutually_exclusive _exclusive รูปแบบที่เครื่องกำเนิดไฟฟ้ากำลังมองหาในกรณีนี้เป็น เอกสิทธิ์เฉพาะบุคคลร่วมกับ i ({param1}), i ({param2}) และ i ({{param3}) ซึ่งจำนวนพารามิเตอร์ที่เราสามารถระบุได้นั้นไม่ จำกัด ตัวอย่าง:
ตัวเลือก:
กระบวนการ:
คำอธิบาย:
- ขีด จำกัด กระบวนการแบบไดนามิก
- พิเศษร่วมกันกับ I (no_processes)
no_processes:
คำอธิบาย:
- ขีด จำกัด กระบวนการคงที่
- พิเศษร่วมกันกับ i (กระบวนการ)
สิ่งนี้จะผลิต:
MATUALULE_EXCLISION = [("NO_PROCESSES", "กระบวนการ")]]
การรับสภาพแวดล้อมการพัฒนาและการทำงานนั้นค่อนข้างง่ายหากเราติดตั้ง pipenv :
การอัปเดต $ pipenv
เพื่อทดสอบตัวแยกเราสามารถเรียกใช้:
$ pipenv เรียกใช้ Ansible-Argspec-gen