เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก IT เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” IT เบ—เบตเปˆเบˆเบฐเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบเปˆเบฝเบงเบเบฑเบšเป‚เบซเบ™เบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡. เปƒเบ™ Red Hat Ansible Automation Platform, เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบœเปˆเบฒเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡ (เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡) โ€“ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ nodes เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบกเบฑเบ™, เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Ansible, เปเบ•เปˆเป€เบกเบทเปˆเบญเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป.

เปเบฅเบฐเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™:

  1. เบ—เปˆเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐเบฎเบฑเบเบชเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบปเบšเบ–เป‰เบงเบ™เบ‚เบญเบ‡ nodes เบ—เบตเปˆเบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเปเบ™เบงเปƒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เป€เบกเบทเปˆเบญเบกเบตเบงเบฝเบเบซเบ™เบฑเบ - เปเบฅเบฐเบ•เปเปˆเบกเบฒ nodes เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ - เบกเบฒเปเบฅเบฐเป„เบ›?
  2. เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ”เป‰เบฒเบ™เป„เบญเบ—เบตเป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ nodes เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ?

เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเปƒเบซเป‰เบ„เปเบฒเบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เบ„เปเบฒเบ–เบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง) โ€“ script เบซเบผเบท plugin เบ—เบตเปˆเบŠเบญเบเบซเบฒ nodes เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เป‚เบ”เบเบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบชเปˆเปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบˆเบดเบ‡. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบˆเบฐเบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบ›เบฑเบ™เบเบธเปˆเบกเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบฅเบฐเบšเบปเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” Ansible เบชเบฐเป€เบžเบฒเบฐ.

เบ›เบฅเบฑเบเบญเบดเบ™เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡ เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰ Ansible เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบžเบฒเบเบ™เบญเบเป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒเป‚เบซเบกเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ„เบงเบฒเบกเบˆเบดเบ‡เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡เบชเบฒเบ‡. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เปƒเบ™ Ansible เบ›เบฐเบเบญเบšเบกเบตเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบŸเบฑเบ‡ AWS EC2, Google GCP เปเบฅเบฐ Microsoft Azure, เปเบฅเบฐเบเบฑเบ‡เบกเบต plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบš Ansible.

Ansible Tower เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡เปเบฅเบฐ, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเป€เบงเบ—เบตเบŸเบฑเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš VMware vCenter, Red Hat OpenStack Platform เปเบฅเบฐ Red Hat Satellite. เบชเปเบฒเบฅเบฑเบš plugins เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เปเบซเบฅเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เปƒเบ™ Ansible Tower.

เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ plugins เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบฅเบงเบกเบเบฑเบš Ansible Tower, เบเบฑเบ‡เบกเบต plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบŠเบธเบกเบŠเบปเบ™ Ansible. เบ”เป‰เบงเบเบเบฒเบ™เบซเบฑเบ™เป„เบ›เบชเบนเปˆ เบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เป€เบ™เบทเป‰เบญเบซเบฒ Red Hat Ansible เบ›เบฑเปŠเบเบญเบดเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฅเบตเปˆเบกเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™.

เปƒเบ™เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš plugin เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบชเปเบฒเบฅเบฑเบš ServiceNow, เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ IT เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเบกเบฑเบเบˆเบฐเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™ CMDB. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, CMDB เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบˆเบธเบšเปเบฅเบดเบšเบปเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เป€เบŠเบฑเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เบเบฒเบ™เบœเบฐเบฅเบดเบ” / เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”), เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡, เปเบฅเบฐเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒ. เบ›เบฅเบฑเบเบญเบดเบ™เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡ Ansible เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš ServiceNow CMDB เปเบฅเบฐเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ เบšเปเบฅเบดเบเบฒเบ™ เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบ•เบนเป„เบ”เป‰ galaxy.ansible.com.

Git repository

เป€เบžเบทเปˆเบญเปƒเบŠเป‰ plugin เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบเบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เปƒเบ™ Ansible Tower, เบกเบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™. เปƒเบ™ Ansible Tower, เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™, เบ„เบทเบเบฑเบš git repository, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญ synchronize เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เบซเบผเบตเป‰เบ™เปเบšเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบ•เปˆเบเบฑเบ‡เบ•เบปเบงเปเบ›เปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡.

เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง repository เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ:

โ”œโ”€โ”€ collections
โ”‚   โ””โ”€โ”€ requirements.yml
โ””โ”€โ”€ servicenow.yml

เป„เบŸเบฅเปŒ servicenow.yml เบ›เบฐเบเบญเบšเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบชเปเบฒเบฅเบฑเบš plugin inventory. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบธเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปƒเบ™ ServiceNow CMDB เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ› node, เบšเบงเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบธเปˆเบกเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡.

$ 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.

เป„เบŸเบฅเปŒเบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ/requirements.yml เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰ Ansible Tower เบชเบฒเบกเบฒเบ”เบ”เบฒเบงเป‚เบซเบฅเบ”เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบš plugin เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เปเบฅเบฐเบฎเบฑเบเบชเบฒเบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เบ™เบตเป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เบ—เบธเบ nodes Ansible Tower เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบนเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™ Ansible Tower เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Ansible Tower เบเบฑเบš github repository เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบš SCM URL: เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบŠเบตเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบชเปˆเบงเบ™เบ•เบปเบง, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฐเบšเบธเบชเบฒเบ‚เบฒเบชเบฐเป€เบžเบฒเบฐ, เปเบ—เบฑเบเบซเบผเบทเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบš.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเบชเปเบฒเบฅเบฑเบš ServiceNow

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒ, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš ServiceNow เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ•เบปเบงเบขเปˆเบฒเบ‡ ServiceNow เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเปƒเบ™ Ansible Tower. เบญเบตเบ‡โ€‹เบ•เบฒเบก เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฅเบฑเบเบญเบดเบ™เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡ ServiceNow, เบกเบตเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

= 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 เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ” เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก "Ansible Tower Feature Spotlight: เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡".

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบญเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ 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

เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเบณเบ•เบปเบงเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบญเบฐเบ—เบดเบšเบฒเบเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ injector:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบšเบฑเบ™เบŠเบต ServiceNow เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡, เบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบชเบฒเบ‡

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ—เบธเบเบ„เบปเบ™เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบชเบฒเบ‡เปƒเบ™ Ansible Tower. เปƒเบซเป‰เป‚เบ—เบซเบฒเบกเบฑเบ™ ServiceNow:

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปเบ™เบšเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบกเบฑเบ™. เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบฅเบฐเบšเบธเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡ YAML เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเปเบซเบผเปˆเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบ™เปเบกเปˆเบ™ servicenow.yml เปƒเบ™เบฎเบฒเบเป‚เบ„เบ‡เบเบฒเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเบฑเบ™เบŠเบต ServiceNow เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”, เปƒเบซเป‰เบฅเบญเบ‡เบŠเบดเป‰เบ‡เบเบฑเบšเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบเบฒเบ™เบ„เบฅเบดเบเบ—เบตเปˆเบ›เบธเปˆเบก โ€œSync allโ€. เบ–เป‰เบฒเบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เป‚เบ™เบ”เบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบฑเบ‡เบชเบดเบ™เบ„เป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบ Ansible Content Collections เปƒเบ™ Ansible Tower

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบเบธเปˆเบกเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™.

เบชเบฐเบซเบฅเบธเบš

เปƒเบ™เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปƒเบ™ Ansible Tower เป‚เบ”เบเปƒเบŠเป‰ plugin ServiceNow เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡ ServiceNow เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ plugins เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบซเบผเบท plugins เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡, เปเบ•เปˆเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ”เบฑเบ”เปเบ›เบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบšเบฒเบ‡เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ Ansible Automation Platform เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบ เปเบฅเบฐเบšเปเปˆเบกเบตเบฎเบญเบเบ•เปเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก IT เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Ansible, เบ—เบตเปˆเบ™เบตเป‰:

*เปเบงเบเปเบ”เบ‡เบšเปเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ™เบตเป‰เบ–เบทเบเบ•เป‰เบญเบ‡. เบงเบฑเบ”เบชเบฐเบ”เบธเบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบšเปเปˆเบฎเบฑเบšเบฎเบญเบ‡ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™