ΠΠ’ ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈΡΠ΅ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ ΡΓ¨ ΠΏΠΎΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΈ. ΠΠΎ ΠΎΠ²ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈ, ΠΎΠ΄ ΠΊΠ»ΡΡΠ½ΠΎ Π·Π½Π°ΡΠ΅ΡΠ΅ Π΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΠ’ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π΄Π° ΠΈΠΌΠ° Π°ΠΆΡΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠ΅ ΠΏΡΠΈΡΡΡΠ½ΠΈ Π²ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎ 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, ΠΎΠ²Π΄Π΅:
- ΠΠ»ΠΎΠ³ ΠΎΠ΄
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ServiceNow ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Ansible . ΠΠ°ΠΊΠΎ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ .- Π‘ΠΏΠΈΡΠΎΠΊ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ Red Hat Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Automation Hub (
cloud.redhat.com ). ΠΠΊΠ½ΠΈΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Ansible .
*Red Hat Π½Π΅ Π΄Π°Π²Π° Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ΄ΠΎΡ ΡΠΎΠ΄ΡΠΆΠ°Π½ ΠΎΠ²Π΄Π΅ Π΅ ΡΠΎΡΠ΅Π½. Π‘ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π° Π±Π΅Π· ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ΅, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΏΠΎΠΈΠ½Π°ΠΊΡ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ.
ΠΠ·Π²ΠΎΡ: www.habr.com