ΠΠ’ ΡΡΠ΅Π΄ΠΈΡΠ΅ ΡΡΠ°Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ. Π ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π·Π° ΠΠ’ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ Π°ΠΊΡΡΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠ·Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. Π 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. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° SCM URL Π°Π΄ΡΠ΅ΡΠ°: ΡΠΎΠΉ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ Π°ΠΊΠ°ΡΠ½Ρ, Π·Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ ΡΠ°ΡΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΊΠ»ΠΎΠ½, Π΅ΡΠΈΠΊΠ΅Ρ ΠΈΠ»ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° 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 Automation Platform .
*Red Hat Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈΡΡ ΡΠ΅ ΡΡΠΊ ΠΊΠΎΠ΄ Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½. ΠΡΠΈΡΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π±Π΅Π· ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com