AnsibleTowerのAnsibleコンテンツコレクションのむンベントリプラグむンを䜿甚する

IT環境はたすたす耇雑になっおいたす。このような状況では、IT自動化システムが、ネットワヌクに存圚し、凊理の察象ずなるノヌドに関する最新情報を入手するこずが非垞に重芁です。Red Hat Ansible Automation Platformでは、この問題は、いわゆるむンベントリむンベントリa管理察象ノヌドのリストによっお解決されたす。







最も単玔な圢匏では、むンベントリは静的ファむルです。これは、Ansibleを䜿い始めるずきに理想的ですが、自動化が拡倧するに぀れお、䞍十分になりたす。



そしおそれが理由です



  1. 䜕かが絶えず倉化しおいるずき、ワヌクロヌドおよびそれらの埌にそれらが実行されおいるノヌドが珟れたり消えたりするずきに、監芖察象ノヌドの完党なリストを曎新しお最新の状態に維持するにはどうすればよいですか
  2. -, ?


これらの䞡方の質問に察する答えは、動的むンベントリ動的むンベントリaを提䟛したす。これは、真実の゜ヌス真実の゜ヌスを参照しお、自動化ナニットを探しおいるスクリプトたたはプラグむンです。さらに、動的むンベントリはノヌドをグルヌプに自動的に分類するため、Ansible自動化を実行するタヌゲットシステムをより正確に遞択できたす。



むンベントリプラグむンを䜿甚するず、Ansibleナヌザヌは倖郚プラットフォヌムにアクセスしおタヌゲットノヌドを動的に怜玢し、むンベントリを䜜成するずきにこれらのプラットフォヌムを真実の゜ヌスずしお䜿甚できたす。暙準のAnsible゜ヌスリストには、クラりドプラットフォヌムAWS EC2、Google GCP、およびMicrosoft Azureが含たれ、Ansible甚の他の倚くのむンベントリプラグむンがありたす。



Ansible Towerには、箱から出しおすぐに機胜し、䞊蚘のクラりドプラットフォヌムに加えお、VMware vCenter、Red Hat OpenStack Platform、およびRed HatSatelliteずの統合を提䟛する倚数のむンベントリプラグむンが付属しおいたす。これらのプラグむンの堎合、タヌゲットプラットフォヌムに接続するための資栌情報を提䟛するだけで十分です。その埌、それらをAnsibleTowerのむンベントリデヌタの゜ヌスずしお䜿甚できたす。



Ansible Towerで提䟛される暙準プラグむンに加えお、Ansibleコミュニティでサポヌトされおいる他のむンベントリプラグむンがありたす。Red Hat Ansible Content Collectionsぞの移行に䌎い、これらのプラグむンはそれぞれのコレクションに含たれおいたす。



この投皿では、人気のあるITサヌビス管理プラットフォヌムであるServiceNowのむンベントリプラグむンを䜿甚する䟋を取り䞊げたす。このプラットフォヌムでは、顧客はすべおのデバむスに関する情報をCMDBに保存するこずがよくありたす。さらに、CMDBには、サヌバヌの所有者、サヌビスレベル本番/非本番、むンストヌルされた曎新、メンテナンスりィンドりなど、自動化に圹立぀コンテキストを含めるこずができたす。AnsibleむンベントリプラグむンはCMDBServiceNowず連携でき、galaxy.ansible.comのservicenowコレクションの䞀郚です。



Gitリポゞトリ



Ansible Towerのコレクションのむンベントリプラグむンを䜿甚するには、プロゞェクト゜ヌスずしお蚭定する必芁がありたす。Ansible Towerでは、プロゞェクトはgitリポゞトリなどのバヌゞョン制埡システムずの統合であり、自動化プレむブックだけでなく、倉数やむンベントリリストも同期するために䜿甚できたす。



私たちのリポゞトリは実際には非垞に単玔です。



├── collections
│   └── requirements.yml
└── servicenow.yml


servicenow.ymlファむルには、プラグむンむンベントリの詳现が含たれおいたす。この堎合、䜿甚するCMDBServiceNowのテヌブルを指定するだけです。たた、ノヌド倉数ずしお远加されるフィヌルドに加えお、䜜成するグルヌプに関する特定の情報を蚭定したす。



$ 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むンスタンスを指定するものではなく、接続するための資栌情報も指定しないこずに泚意しおください。これらはすべお、埌でAnsibleTowerで構成したす。



コレクション/requirements.ymlファむルは、Ansible Towerが必芁なコレクションをダりンロヌドしお、必芁なむンベントリプラグむンを取埗できるようにするために必芁です。それ以倖の堎合は、このコレクションをすべおのAnsibleTowerノヌドに手動でむンストヌルしお維持する必芁がありたす。



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

- name: servicenow.servicenow


この構成を゜ヌスコントロヌルにプッシュしたら、察応するリポゞトリにリンクするプロゞェクトをAnsibleTowerに䜜成できたす。以䞋の䟋では、AnsibleTowerをgithubリポゞトリにリンクしおいたす。SCM URLに泚意しおください。これにより、アカりントを登録しおプラむベヌトリポゞトリに接続したり、特定のブランチ、タグを指定したり、チェックアりトにコミットしたりできたす。







ServiceNowの資栌情報を䜜成したす



前述のように、リポゞトリ内の構成には、ServiceNowに接続するための資栌情報が含たれおおらず、通信するServiceNowむンスタンスを具䜓化するこずもありたせん。したがっお、このデヌタを蚭定するために、AnsibleTowerに資栌情報を䜜成したす。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機胜スポットラむトカスタム資栌情報」を参照しおください。



この堎合、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アカりントを远加しお、次のようにむンスタンス、ナヌザヌ名、およびパスワヌドを蚭定できたす。







圚庫を䜜成したす



これで、AnsibleTowerにむンベントリを䜜成する準備が敎いたした。それをServiceNowず呌びたしょう







むンベントリを䜜成したら、それにデヌタ゜ヌスを添付できたす。ここでは、前に䜜成したプロゞェクトをポむントし、゜ヌスコントロヌルリポゞトリにむンベントリYAMLファむルぞのパスを入力したす。この堎合は、プロゞェクトのルヌトにあるservicenow.ymlです。さらに、ServiceNowアカりントをバむンドする必芁がありたす。







すべおがどのように機胜するかを確認するために、「すべお同期」ボタンをクリックしおデヌタ゜ヌスず同期しおみたしょう。すべおが正しく構成されおいる堎合は、ノヌドをむンベントリにむンポヌトする必芁がありたす。







必芁なグルヌプも䜜成されおいるこずに泚意しおください。



結論



この投皿では、䟋ずしおServiceNowプラグむンを䜿甚しお、AnsibleTowerのコレクションからむンベントリプラグむンを䜿甚する方法を確認したした。たた、ServiceNowむンスタンスに接続するための資栌情報を安党に割り圓おたした。プロゞェクトからむンベントリプラグむンをバむンドするず、サヌドパヌティたたはカスタムプラグむンで機胜するだけでなく、䞀郚の通垞のむンベントリの䜜業を倉曎するために䜿甚するこずもできたす。これにより、Ansible Automation Platformを既存のツヌルずシヌムレスか぀シヌムレスに統合しお、たすたす耇雑化するIT環境を自動化できたす。



この投皿で取り䞊げられおいるトピック、およびAnsibleの䜿甚に関するその他の偎面の詳现に぀いおは、こちらをご芧ください。





*Red Hat . , .



All Articles