การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

สภาพแวดล้อมด้านไอทีมีความซับซ้อนมากขึ้นเรื่อยๆ ในเงื่อนไขเหล่านี้ จำเป็นอย่างยิ่งที่ระบบไอทีอัตโนมัติจะต้องมีข้อมูลล่าสุดเกี่ยวกับโหนดที่มีอยู่ในเครือข่ายและอยู่ภายใต้การประมวลผล ใน Red Hat Ansible Automation Platform ปัญหานี้ได้รับการแก้ไขผ่านสิ่งที่เรียกว่าสินค้าคงคลัง (สินค้าคงคลัง) – รายการโหนดที่ได้รับการจัดการ

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

ในรูปแบบที่ง่ายที่สุด สินค้าคงคลังจะเป็นไฟล์คงที่ วิธีนี้เหมาะอย่างยิ่งเมื่อคุณเริ่มทำงานกับ Ansible แต่เมื่อระบบอัตโนมัติเพิ่มขึ้น ระบบจะไม่เพียงพอ

และนี่คือเหตุผล:

  1. คุณจะอัปเดตและรักษารายการโหนดที่ได้รับการตรวจสอบทั้งหมดได้อย่างไร เมื่อสิ่งต่าง ๆ เปลี่ยนแปลงตลอดเวลา เมื่อปริมาณงาน—และโหนดที่โหนดเหล่านั้นทำงานอยู่—เข้ามาและไปในภายหลัง
  2. จะจำแนกส่วนประกอบของโครงสร้างพื้นฐานด้านไอทีเพื่อเลือกโหนดเฉพาะสำหรับการใช้ระบบอัตโนมัติเฉพาะได้อย่างไร

สินค้าคงคลังแบบไดนามิกให้คำตอบสำหรับคำถามทั้งสองนี้ (สินค้าคงคลังแบบไดนามิก) – สคริปต์หรือปลั๊กอินที่ค้นหาโหนดให้เป็นอัตโนมัติโดยอ้างอิงถึงแหล่งที่มาของความจริง นอกจากนี้ สินค้าคงคลังแบบไดนามิกจะจัดประเภทโหนดออกเป็นกลุ่มโดยอัตโนมัติ เพื่อให้คุณสามารถเลือกระบบเป้าหมายสำหรับการดำเนินการอัตโนมัติ Ansible ที่เฉพาะเจาะจงได้มากขึ้น

ปลั๊กอินสินค้าคงคลัง ให้ผู้ใช้ Ansible สามารถเข้าถึงแพลตฟอร์มภายนอกเพื่อค้นหาโหนดเป้าหมายแบบไดนามิก และใช้แพลตฟอร์มเหล่านี้เป็นแหล่งที่มาของความจริงเมื่อสร้างสินค้าคงคลัง รายการแหล่งที่มามาตรฐานใน Ansible ประกอบด้วยแพลตฟอร์มคลาวด์ AWS EC2, Google GCP และ Microsoft Azure และยังมีปลั๊กอินคลังข้อมูลอื่นๆ อีกมากมายสำหรับ Ansible

Ansible Tower มาพร้อมกับจำนวน ปลั๊กอินสินค้าคงคลังซึ่งทำงานได้ทันทีที่แกะกล่อง และนอกเหนือจากแพลตฟอร์มคลาวด์ที่ระบุไว้ข้างต้นแล้ว ยังให้การผสานรวมกับ VMware vCenter, แพลตฟอร์ม Red Hat OpenStack และ Red Hat Satellite สำหรับปลั๊กอินเหล่านี้ คุณเพียงแค่ต้องระบุข้อมูลรับรองเพื่อเชื่อมต่อกับแพลตฟอร์มเป้าหมาย หลังจากนั้นจึงสามารถใช้เป็นแหล่งข้อมูลสินค้าคงคลังใน Ansible Tower ได้

นอกเหนือจากปลั๊กอินมาตรฐานที่มาพร้อมกับ Ansible Tower แล้ว ยังมีปลั๊กอินสินค้าคงคลังอื่นๆ ที่ชุมชน Ansible รองรับอีกด้วย ด้วยการเปลี่ยนไปเป็น คอลเลกชันเนื้อหา Ansible ของ Red Hat ปลั๊กอินเหล่านี้เริ่มรวมอยู่ในคอลเลกชันที่เกี่ยวข้อง

ในโพสต์นี้ เราจะยกตัวอย่างการทำงานกับปลั๊กอินสินค้าคงคลังสำหรับ ServiceNow ซึ่งเป็นแพลตฟอร์มการจัดการบริการไอทียอดนิยมที่ลูกค้ามักจัดเก็บข้อมูลเกี่ยวกับอุปกรณ์ทั้งหมดของตนไว้ใน CMDB นอกจากนี้ CMDB ยังสามารถประกอบด้วยบริบทที่เป็นประโยชน์สำหรับระบบอัตโนมัติ เช่น ข้อมูลเกี่ยวกับเจ้าของเซิร์ฟเวอร์ ระดับการบริการ (การผลิต/ไม่ใช้งานจริง) การอัปเดตที่ติดตั้ง และช่วงเวลาการบำรุงรักษา ปลั๊กอินสินค้าคงคลัง Ansible สามารถทำงานร่วมกับ ServiceNow CMDB และเป็นส่วนหนึ่งของคอลเลกชัน บริการ บนพอร์ทัล galaxy.ansible.com.

พื้นที่เก็บข้อมูล Git

หากต้องการใช้ปลั๊กอินสินค้าคงคลังจากคอลเลกชันใน Ansible Tower จะต้องตั้งค่าเป็นแหล่งที่มาของโปรเจ็กต์ ใน Ansible Tower โปรเจ็กต์คือการผสานรวมกับระบบควบคุมเวอร์ชันบางประเภท เช่น พื้นที่เก็บข้อมูล git ซึ่งสามารถใช้เพื่อซิงโครไนซ์ไม่เพียงแต่เพลย์บุ๊กอัตโนมัติเท่านั้น แต่ยังรวมไปถึงตัวแปรและรายการสินค้าคงคลังด้วย

จริงๆ แล้วพื้นที่เก็บข้อมูลของเรานั้นง่ายมาก:

├── collections
│   └── requirements.yml
└── servicenow.yml

ไฟล์ servicenow.yml มีรายละเอียดสำหรับรายการปลั๊กอิน ในกรณีของเรา เราเพียงแค่ระบุตารางใน ServiceNow CMDB ที่เราต้องการใช้ นอกจากนี้เรายังตั้งค่าฟิลด์ที่จะเพิ่มเป็นตัวแปรโหนด รวมถึงข้อมูลบางอย่างเกี่ยวกับกลุ่มที่เราต้องการสร้าง

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

โปรดทราบว่านี่ไม่ได้ระบุอินสแตนซ์ ServiceNow ที่เราจะเชื่อมต่อไม่ว่าด้วยวิธีใดก็ตาม และไม่ได้ระบุข้อมูลประจำตัวใด ๆ สำหรับการเชื่อมต่อ เราจะกำหนดค่าทั้งหมดนี้ในภายหลังใน Ansible Tower

ไฟล์คอลเลกชัน/requirements.yml จำเป็นเพื่อให้ Ansible Tower สามารถดาวน์โหลดคอลเลกชันที่ต้องการและรับปลั๊กอินสินค้าคงคลังที่จำเป็น มิฉะนั้น เราจะต้องติดตั้งและบำรุงรักษาคอลเลกชันนี้ด้วยตนเองบนโหนด Ansible Tower ทั้งหมดของเรา

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

เมื่อเราผลักดันการกำหนดค่านี้ไปสู่การควบคุมเวอร์ชันแล้ว เราสามารถสร้างโปรเจ็กต์ใน Ansible Tower ที่อ้างอิงพื้นที่เก็บข้อมูลที่เกี่ยวข้องได้ ตัวอย่างด้านล่างเชื่อมโยง Ansible Tower กับพื้นที่เก็บข้อมูล GitHub ของเรา โปรดใส่ใจกับ URL ของ SCM: ช่วยให้คุณสามารถลงทะเบียนบัญชีเพื่อเชื่อมต่อกับพื้นที่เก็บข้อมูลส่วนตัว รวมถึงระบุสาขา แท็ก หรือยืนยันที่จะชำระเงิน

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

การสร้างข้อมูลรับรองสำหรับ ServiceNow

ดังที่กล่าวไว้ การกำหนดค่าในพื้นที่เก็บข้อมูลของเราไม่มีข้อมูลรับรองเพื่อเชื่อมต่อกับ ServiceNow และไม่ได้ระบุอินสแตนซ์ ServiceNow ที่เราจะสื่อสารด้วย ดังนั้น เพื่อตั้งค่าข้อมูลนี้ เราจะสร้างข้อมูลประจำตัวใน Ansible Tower ตาม เอกสารประกอบปลั๊กอินสินค้าคงคลัง ServiceNowมีตัวแปรสภาพแวดล้อมจำนวนหนึ่งที่เราจะตั้งค่าพารามิเตอร์การเชื่อมต่อ เช่น:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

ในกรณีนี้ หากมีการตั้งค่าตัวแปรสภาพแวดล้อม SN_USERNAME ปลั๊กอินสินค้าคงคลังจะใช้เป็นบัญชีเพื่อเชื่อมต่อกับ ServiceNow

นอกจากนี้เรายังต้องตั้งค่าตัวแปร SN_INSTANCE และ SN_PASSWORD

อย่างไรก็ตาม ไม่มีข้อมูลรับรองประเภทนี้ใน Ansible Tower ที่คุณสามารถระบุข้อมูลนี้สำหรับ ServiceNow ได้ แต่ Ansible Tower ช่วยให้เราสามารถกำหนดได้ ประเภทข้อมูลประจำตัวที่กำหนดเองคุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในบทความ "จุดเด่นของ Ansible Tower: ข้อมูลรับรองที่กำหนดเอง".

ในกรณีของเรา การกำหนดค่าอินพุตสำหรับข้อมูลรับรองที่กำหนดเองสำหรับ ServiceNow จะมีลักษณะดังนี้:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

ข้อมูลรับรองเหล่านี้จะถูกเปิดเผยเป็นตัวแปรสภาพแวดล้อมที่มีชื่อเดียวกัน สิ่งนี้อธิบายไว้ในการกำหนดค่าหัวฉีด:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

ดังนั้นเราจึงได้กำหนดประเภทข้อมูลรับรองที่เราต้องการ ในตอนนี้เราสามารถเพิ่มบัญชี ServiceNow และตั้งค่าอินสแตนซ์ ชื่อผู้ใช้ และรหัสผ่าน ได้ดังนี้:

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

เราสร้างสินค้าคงคลัง

ตอนนี้เราทุกคนก็พร้อมที่จะสร้างสินค้าคงคลังใน Ansible Tower แล้ว เรียกมันว่า ServiceNow:

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

หลังจากสร้างสินค้าคงคลังแล้ว เราสามารถแนบแหล่งข้อมูลเข้าไปได้ ที่นี่เราระบุโปรเจ็กต์ที่เราสร้างไว้ก่อนหน้านี้ และป้อนเส้นทางไปยังไฟล์รายการสินค้า YAML ของเราในที่เก็บการควบคุมแหล่งที่มา ในกรณีของเราคือ servicenow.yml ในรูทโปรเจ็กต์ นอกจากนี้ คุณต้องเชื่อมโยงบัญชี ServiceNow ของคุณ

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

หากต้องการตรวจสอบว่าทุกอย่างทำงานอย่างไร ให้ลองซิงโครไนซ์กับแหล่งข้อมูลโดยคลิกปุ่ม "ซิงค์ทั้งหมด" หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง โหนดควรถูกนำเข้าไปยังสินค้าคงคลังของเรา:

การใช้ปลั๊กอินสินค้าคงคลังจาก Ansible Content Collections ใน Ansible Tower

โปรดทราบว่ากลุ่มที่เราต้องการก็ถูกสร้างขึ้นเช่นกัน

ข้อสรุป

ในโพสต์นี้ เราได้ดูวิธีใช้ปลั๊กอินสินค้าคงคลังจากคอลเลกชันใน Ansible Tower โดยใช้ปลั๊กอิน ServiceNow เป็นตัวอย่าง เรายังลงทะเบียนข้อมูลประจำตัวอย่างปลอดภัยเพื่อเชื่อมต่อกับอินสแตนซ์ ServiceNow ของเราอีกด้วย การเชื่อมโยงปลั๊กอินสินค้าคงคลังจากโปรเจ็กต์ใช้งานได้ไม่เพียงแต่กับปลั๊กอินของบุคคลที่สามหรือปลั๊กอินแบบกำหนดเองเท่านั้น แต่ยังสามารถใช้เพื่อแก้ไขการทำงานของสินค้าคงคลังมาตรฐานบางอย่างได้อีกด้วย สิ่งนี้ทำให้ Ansible Automation Platform เป็นเรื่องง่ายและราบรื่นในการผสานรวมกับเครื่องมือที่มีอยู่เมื่อทำให้สภาพแวดล้อมไอทีที่ซับซ้อนมากขึ้นเป็นอัตโนมัติ

คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อที่กล่าวถึงในโพสต์นี้ รวมถึงแง่มุมอื่นๆ ของการใช้ Ansible ได้ที่นี่:

*Red Hat ไม่รับประกันว่ารหัสที่มีอยู่ในที่นี้ถูกต้อง เนื้อหาทั้งหมดจัดทำขึ้นบนพื้นฐานการไม่รับรองเว้นแต่จะระบุไว้เป็นอย่างอื่นโดยชัดแจ้ง

ที่มา: will.com

เพิ่มความคิดเห็น