IT ํ๊ฒฝ์ ์ ์ ๋ ๋ณต์กํด์ง๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์กฐ๊ฑด์์๋ IT ์๋ํ ์์คํ ์ด ๋คํธ์ํฌ์ ์กด์ฌํ๊ณ ์ฒ๋ฆฌ ๋์์ธ ๋ ธ๋์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ๋ณด์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. Red Hat Ansible Automation Platform์์๋ ์ด ๋ฌธ์ ๊ฐ ์์ ์ธ๋ฒคํ ๋ฆฌ() โ ๊ด๋ฆฌ ๋ ธ๋ ๋ชฉ๋ก์ ๋๋ค.

๊ฐ์ฅ ๊ฐ๋จํ ํํ์ ์ธ๋ฒคํ ๋ฆฌ๋ ์ ์ ํ์ผ์
๋๋ค. Ansible๋ก ์์
์ ์์ํ ๋๋ ์ด๊ฒ์ด ์ด์์ ์ด์ง๋ง ์๋ํ๊ฐ ์ฆ๊ฐํ ์๋ก ๋ถ์ถฉ๋ถํด์ง๋๋ค.
๊ทธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํฉ์ด ์ง์์ ์ผ๋ก ๋ณํ ๋, ์ํฌ๋ก๋์ ๊ทธ์ ๋ฐ๋ผ ์คํ๋๋ ๋ ธ๋๊ฐ ์๋ค ๊ฐ๋ค ํ ๋ ๋ชจ๋ํฐ๋ง๋๋ ๋ ธ๋์ ์ ์ฒด ๋ชฉ๋ก์ ์ด๋ป๊ฒ ์ ๋ฐ์ดํธํ๊ณ ์ ์ง ๊ด๋ฆฌํฉ๋๊น?
- ํน์ ์๋ํ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ๋ ธ๋๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ ํํ๊ธฐ ์ํด IT ์ธํ๋ผ์ ๊ตฌ์ฑ ์์๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฅํฉ๋๊น?
๋์ ์ฌ๊ณ ๋ ์ด ๋ ๊ฐ์ง ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์ ๊ณตํฉ๋๋ค() โ ์ง์ค์ ์์ค๋ฅผ ์ฐธ์กฐํ์ฌ ์๋ํํ ๋ ธ๋๋ฅผ ๊ฒ์ํ๋ ์คํฌ๋ฆฝํธ ๋๋ ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ๋ํ ๋์ ์ธ๋ฒคํ ๋ฆฌ๋ ํน์ Ansible ์๋ํ๋ฅผ ์ํํ๊ธฐ ์ํ ๋์ ์์คํ ์ ๋ณด๋ค ์ ํํ๊ฒ ์ ํํ ์ ์๋๋ก ๋ ธ๋๋ฅผ ์๋์ผ๋ก ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฅํฉ๋๋ค.
Ansible ์ฌ์ฉ์์๊ฒ ์ธ๋ถ ํ๋ซํผ์ ์ก์ธ์คํ์ฌ ๋์ ๋ ธ๋๋ฅผ ๋์ ์ผ๋ก ๊ฒ์ํ๊ณ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ด๋ฌํ ํ๋ซํผ์ ์ ๋ณด ์์ค๋ก ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Ansible์ ํ์ค ์์ค ๋ชฉ๋ก์๋ ํด๋ผ์ฐ๋ ํ๋ซํผ AWS EC2, Google GCP ๋ฐ Microsoft Azure๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ Ansible์ ์ํ ๋ค๋ฅธ ๋ง์ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ๋ ์์ต๋๋ค.
Ansible Tower์๋ ๋ค์ํ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ์์ ๋์ด๋ ํด๋ผ์ฐ๋ ํ๋ซํผ ์ธ์๋ VMware vCenter, Red Hat OpenStack Platform ๋ฐ Red Hat Satellite์์ ํตํฉ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ ๋์ ํ๋ซํผ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์๊ฒฉ ์ฆ๋ช ์ ์ ๊ณตํ๊ธฐ๋ง ํ๋ฉด Ansible Tower์์ ์ธ๋ฒคํ ๋ฆฌ ๋ฐ์ดํฐ ์์ค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
Ansible Tower์ ํฌํจ๋ ํ์ค ํ๋ฌ๊ทธ์ธ ์ธ์๋ Ansible ์ปค๋ฎค๋ํฐ์์ ์ง์ํ๋ ๋ค๋ฅธ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ด ์์ต๋๋ค. ์ ํ๊ณผ ํจ๊ป ์ด๋ฌํ ํ๋ฌ๊ทธ์ธ์ ํด๋น ์ปฌ๋ ์ ์ ํฌํจ๋๊ธฐ ์์ํ์ต๋๋ค.
์ด ๊ฒ์๋ฌผ์์๋ ๊ณ ๊ฐ์ด ์์ ์ ๋ชจ๋ ์ฅ์น์ ๋ํ ์ ๋ณด๋ฅผ CMDB์ ์ ์ฅํ๋ ์ธ๊ธฐ ์๋ IT ์๋น์ค ๊ด๋ฆฌ ํ๋ซํผ์ธ ServiceNow์ฉ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ํ 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์์ ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌ์ฑํ๊ฒ ์ต๋๋ค.
Ansible Tower๊ฐ ํ์ ์ปฌ๋ ์ ์ ๋ค์ด๋ก๋ํ์ฌ ํ์ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ์ป์ ์ ์๋๋ก ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ 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 ๊ณ์ ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.

๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด "๋ชจ๋ ๋๊ธฐํ" ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ฐ์ดํฐ ์์ค์ ๋๊ธฐํํด ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋๋ฉด ๋ ธ๋๋ฅผ ์ธ๋ฒคํ ๋ฆฌ๋ก ๊ฐ์ ธ์์ผ ํฉ๋๋ค.

ํ์ํ ๊ทธ๋ฃน๋ ์์ฑ๋์์ต๋๋ค.
๊ฒฐ๋ก
์ด๋ฒ ํฌ์คํ ์์๋ ServiceNow ํ๋ฌ๊ทธ์ธ์ ์๋ก ๋ค์ด Ansible Tower ์ปฌ๋ ์ ์ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์์ต๋๋ค. ๋ํ ServiceNow ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์๊ฒฉ ์ฆ๋ช ์ ์์ ํ๊ฒ ๋ฑ๋กํ์ต๋๋ค. ํ๋ก์ ํธ์ ์ธ๋ฒคํ ๋ฆฌ ํ๋ฌ๊ทธ์ธ ์ฐ๊ฒฐ์ ํ์ฌ ๋๋ ์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ์๋ํ ๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ํ์ค ์ธ๋ฒคํ ๋ฆฌ์ ์๋์ ์์ ํ๋ ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ์ ๋ณต์กํด์ง๋ IT ํ๊ฒฝ์ ์๋ํํ ๋ Ansible Automation Platform์ ๊ธฐ์กด ๋๊ตฌ์ ์ฝ๊ณ ์ํํ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
์ด ๊ฒ์๋ฌผ์์ ๋ ผ์๋ ์ฃผ์ ์ Ansible ์ฌ์ฉ์ ๋ค๋ฅธ ์ธก๋ฉด์ ๋ํ ์์ธํ ์ ๋ณด๋ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
- ๋ธ๋ก๊ทธ ์์ฑ์: .
- .
- Automation Hub ์น์ฌ์ดํธ์ Red Hat ์ง์ ์ปฌ๋ ์ ๋ชฉ๋ก().
- .
*Red Hat์ ์ฌ๊ธฐ์ ํฌํจ๋ ์ฝ๋๊ฐ ์ ํํ๋ค๋ ์ ์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๋ฌ๋ฆฌ ๋ช
์๋์ง ์๋ ํ ๋ชจ๋ ์๋ฃ๋ ๋น๋ณด์ฆ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : habr.com
