สภาพแวดล้อมด้านไอทีมีความซับซ้อนมากขึ้นเรื่อยๆ ในเงื่อนไขเหล่านี้ จำเป็นอย่างยิ่งที่ระบบไอทีอัตโนมัติจะต้องมีข้อมูลล่าสุดเกี่ยวกับโหนดที่มีอยู่ในเครือข่ายและอยู่ภายใต้การประมวลผล ใน Red Hat Ansible Automation Platform ปัญหานี้ได้รับการแก้ไขผ่านสิ่งที่เรียกว่าสินค้าคงคลัง (
ในรูปแบบที่ง่ายที่สุด สินค้าคงคลังจะเป็นไฟล์คงที่ วิธีนี้เหมาะอย่างยิ่งเมื่อคุณเริ่มทำงานกับ Ansible แต่เมื่อระบบอัตโนมัติเพิ่มขึ้น ระบบจะไม่เพียงพอ
และนี่คือเหตุผล:
- คุณจะอัปเดตและรักษารายการโหนดที่ได้รับการตรวจสอบทั้งหมดได้อย่างไร เมื่อสิ่งต่าง ๆ เปลี่ยนแปลงตลอดเวลา เมื่อปริมาณงาน—และโหนดที่โหนดเหล่านั้นทำงานอยู่—เข้ามาและไปในภายหลัง
- จะจำแนกส่วนประกอบของโครงสร้างพื้นฐานด้านไอทีเพื่อเลือกโหนดเฉพาะสำหรับการใช้ระบบอัตโนมัติเฉพาะได้อย่างไร
สินค้าคงคลังแบบไดนามิกให้คำตอบสำหรับคำถามทั้งสองนี้ (
Ansible Tower มาพร้อมกับจำนวน
นอกเหนือจากปลั๊กอินมาตรฐานที่มาพร้อมกับ Ansible Tower แล้ว ยังมีปลั๊กอินสินค้าคงคลังอื่นๆ ที่ชุมชน Ansible รองรับอีกด้วย ด้วยการเปลี่ยนไปเป็น
ในโพสต์นี้ เราจะยกตัวอย่างการทำงานกับปลั๊กอินสินค้าคงคลังสำหรับ ServiceNow ซึ่งเป็นแพลตฟอร์มการจัดการบริการไอทียอดนิยมที่ลูกค้ามักจัดเก็บข้อมูลเกี่ยวกับอุปกรณ์ทั้งหมดของตนไว้ใน CMDB นอกจากนี้ CMDB ยังสามารถประกอบด้วยบริบทที่เป็นประโยชน์สำหรับระบบอัตโนมัติ เช่น ข้อมูลเกี่ยวกับเจ้าของเซิร์ฟเวอร์ ระดับการบริการ (การผลิต/ไม่ใช้งานจริง) การอัปเดตที่ติดตั้ง และช่วงเวลาการบำรุงรักษา ปลั๊กอินสินค้าคงคลัง Ansible สามารถทำงานร่วมกับ ServiceNow CMDB และเป็นส่วนหนึ่งของคอลเลกชัน
พื้นที่เก็บข้อมูล 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
$ cat collections/requirements.yml
---
collections:
- name: servicenow.servicenow
เมื่อเราผลักดันการกำหนดค่านี้ไปสู่การควบคุมเวอร์ชันแล้ว เราสามารถสร้างโปรเจ็กต์ใน Ansible Tower ที่อ้างอิงพื้นที่เก็บข้อมูลที่เกี่ยวข้องได้ ตัวอย่างด้านล่างเชื่อมโยง Ansible Tower กับพื้นที่เก็บข้อมูล GitHub ของเรา โปรดใส่ใจกับ URL ของ SCM: ช่วยให้คุณสามารถลงทะเบียนบัญชีเพื่อเชื่อมต่อกับพื้นที่เก็บข้อมูลส่วนตัว รวมถึงระบุสาขา แท็ก หรือยืนยันที่จะชำระเงิน
การสร้างข้อมูลรับรองสำหรับ ServiceNow
ดังที่กล่าวไว้ การกำหนดค่าในพื้นที่เก็บข้อมูลของเราไม่มีข้อมูลรับรองเพื่อเชื่อมต่อกับ ServiceNow และไม่ได้ระบุอินสแตนซ์ ServiceNow ที่เราจะสื่อสารด้วย ดังนั้น เพื่อตั้งค่าข้อมูลนี้ เราจะสร้างข้อมูลประจำตัวใน Ansible Tower ตาม
= 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 ช่วยให้เราสามารถกำหนดได้
ในกรณีของเรา การกำหนดค่าอินพุตสำหรับข้อมูลรับรองที่กำหนดเองสำหรับ 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 Tower แล้ว เรียกมันว่า ServiceNow:
หลังจากสร้างสินค้าคงคลังแล้ว เราสามารถแนบแหล่งข้อมูลเข้าไปได้ ที่นี่เราระบุโปรเจ็กต์ที่เราสร้างไว้ก่อนหน้านี้ และป้อนเส้นทางไปยังไฟล์รายการสินค้า YAML ของเราในที่เก็บการควบคุมแหล่งที่มา ในกรณีของเราคือ servicenow.yml ในรูทโปรเจ็กต์ นอกจากนี้ คุณต้องเชื่อมโยงบัญชี ServiceNow ของคุณ
หากต้องการตรวจสอบว่าทุกอย่างทำงานอย่างไร ให้ลองซิงโครไนซ์กับแหล่งข้อมูลโดยคลิกปุ่ม "ซิงค์ทั้งหมด" หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง โหนดควรถูกนำเข้าไปยังสินค้าคงคลังของเรา:
โปรดทราบว่ากลุ่มที่เราต้องการก็ถูกสร้างขึ้นเช่นกัน
ข้อสรุป
ในโพสต์นี้ เราได้ดูวิธีใช้ปลั๊กอินสินค้าคงคลังจากคอลเลกชันใน Ansible Tower โดยใช้ปลั๊กอิน ServiceNow เป็นตัวอย่าง เรายังลงทะเบียนข้อมูลประจำตัวอย่างปลอดภัยเพื่อเชื่อมต่อกับอินสแตนซ์ ServiceNow ของเราอีกด้วย การเชื่อมโยงปลั๊กอินสินค้าคงคลังจากโปรเจ็กต์ใช้งานได้ไม่เพียงแต่กับปลั๊กอินของบุคคลที่สามหรือปลั๊กอินแบบกำหนดเองเท่านั้น แต่ยังสามารถใช้เพื่อแก้ไขการทำงานของสินค้าคงคลังมาตรฐานบางอย่างได้อีกด้วย สิ่งนี้ทำให้ Ansible Automation Platform เป็นเรื่องง่ายและราบรื่นในการผสานรวมกับเครื่องมือที่มีอยู่เมื่อทำให้สภาพแวดล้อมไอทีที่ซับซ้อนมากขึ้นเป็นอัตโนมัติ
คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อที่กล่าวถึงในโพสต์นี้ รวมถึงแง่มุมอื่นๆ ของการใช้ Ansible ได้ที่นี่:
- บล็อกโดย
การบริการอัตโนมัติทันทีโดยใช้ Ansible . วิธีสร้างคอลเลกชันของคุณเอง .- รายชื่อคอลเลกชันที่ Red Hat รองรับบนเว็บไซต์ Automation Hub (
cloud.redhat.com ). eBooks แพลตฟอร์มการทำงานอัตโนมัติแบบ Ansible .
*Red Hat ไม่รับประกันว่ารหัสที่มีอยู่ในที่นี้ถูกต้อง เนื้อหาทั้งหมดจัดทำขึ้นบนพื้นฐานการไม่รับรองเว้นแต่จะระบุไว้เป็นอย่างอื่นโดยชัดแจ้ง
ที่มา: will.com