ΠΠ’-ΡΡΠ΅Π΄Ρ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π ΡΡΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ’-Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ ΡΠ·Π»Π°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅. Π Red Hat Ansible Automation Platform ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ (
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ». ΠΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Ansible, Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, Π΅Π³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ:
- ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ·Π»ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ β Π° Π²ΡΠ»Π΅Π΄ Π·Π° Π½ΠΈΠΌΠΈ ΠΈ ΡΠ·Π»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ β ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΡΠΎ ΠΈΡΡΠ΅Π·Π°ΡΡ?
- ΠΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΠ’-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ·Π»Ρ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ?
ΠΡΠ²Π΅ΡΡ Π½Π° ΠΎΠ±Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΠ° Π΄Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ (
Ansible Tower ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠ΄ΠΎΠΌ
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°ΡΠ½ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Ansible Tower Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΠ»Π°ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Ansible. Π‘ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠΌ Π½Π°
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Π΄Π»Ρ ServiceNow, ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΠ’-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, Π² CMDB ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Ρ
ΡΠ°Π½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ
ΡΠ²ΠΎΠΈΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, CMDB ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°Ρ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎΠ²Π½ΡΡ
ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ (production/non-production), ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡ
ΠΈ ΠΎΠΊΠ½Π°Ρ
ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½ Ansible ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ CMDB ServiceNow ΠΈ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Ansible Tower ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π Ansible Tower ΠΏΡΠΎΠ΅ΠΊΡ β ΡΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, Π²ΡΠΎΠ΄Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ.
ΠΠ°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ:
βββ collections
β βββ requirements.yml
βββ servicenow.yml
Π€Π°ΠΉΠ» servicenow.yml ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π² CMDB ServiceNow, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·Π»Π°, ΠΏΠ»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ.
$ 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: ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°ΡΡΠ½ΠΎΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ, ΠΌΠ΅ΡΠΊΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ credentials Π΄Π»Ρ ServiceNow
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΅ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ServiceNow ΠΈ Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΡΠ°Π½Ρ ServiceNow, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ credentials Π² 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 Π½Π΅Ρ credentials ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ServiceNow. ΠΠ°ΡΠΎ Ansible Tower ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ input-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ credentials Π΄Π»Ρ 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
ΠΡΠΈ credentials Π±ΡΠ΄ΡΡ ΡΠΊΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ injector-Π°:
env:
SN_INSTANCE: '{{ SN_INSTANCE }}'
SN_PASSWORD: '{{ SN_PASSWORD }}'
SN_USERNAME: '{{ SN_USERNAME }}'
ΠΡΠ°ΠΊ, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΡΠΈΠΏ credential, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ServiceNow ΠΈ Π·Π°Π΄Π°ΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, Π²ΠΎΡ ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ Π² Ansible Tower. ΠΠ°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ ServiceNow:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ ΠΊ Π½Π΅ΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΡΠ°ΠΉΠ»Ρ YAML Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ servicenow.yml Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΈ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ServiceNow.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ Β«Sync allΒ». ΠΡΠ»ΠΈ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ ΡΠ·Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π½Π°Ρ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°ΠΌ Π³ΡΡΠΏΠΏΡ ΡΠΎΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π»ΠΈΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ Π² Ansible Tower ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° ServiceNow. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΈΠ½ΡΡΠ°Π½ΡΡ ServiceNow. ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ-ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, Π½ΠΎ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΠ½ΡΡ ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Ansible Automation Platform Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅ΡΡΠΎΠ²Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΠ’-ΡΡΠ΅Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΠ°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΡΠ΅ΠΌΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Ansible ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ:
- ΠΠ»ΠΎΠ³ ΠΏΠΎ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ServiceNow Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ansible . ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ .- Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
Red Hat ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅ Automation Hub (
cloud.redhat.com ). ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Ansible Automation Platform .
*Red Hat Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π΄Π΅ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ
ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠ΅ Π½Π° Π·Π°ΡΠ²Π»Π΅Π½ΠΎ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com