Ansibleでの管理は便利ですが、Red Hat Identity Managementを利用しているとAnsibleを利用しはじめる時のセットアップ作業がさらに便利になります。
レッドハットの森若です。
Ansibleでの管理は便利ですが、Red Hat Identity Managementを利用しているとAnsibleを利用しはじめる時のセットアップ作業がさらに便利になります。
Ansibleでの管理の前にやること
Ansibleでの管理をはじめる前に行う典型的な準備として以下のようなものがあります。
- 管理対象ホストにansibleユーザを作成する
- 管理対象ホストでansibleユーザがrootになれるようsudoerを設定する
- ansibleホストから管理対象ホストにsshで接続可能にする
- インベントリに管理対象ホストを追加する
これらの操作は簡単なものですが、ノードが増えると面倒になってきます。
Identity Managementと一緒にAnsibleを使う
運用環境で Red Hat Identity Management(以下IdM)を利用している場合、これらの準備をほとんど自動にできます。
- ansibleユーザはIdMに一回登録しておけばどのホストにも存在
- IdMはsudoerの管理もできるので、ansibleユーザがrootになれるポリシーも都度の作成は不要
- sshでの接続に必要ansibleホストの公開鍵、管理者のssh公開鍵の配布もIdMが実施。管理者もIdM内のユーザであれば認証はKerberosで完了するのでパスワードによる認証を(一時的にも)許可する必要がない
- IdMのAPIを利用して、AnsibleのダイナミックインベントリでIdMに登録されたホストを参照できる https://github.com/ansible/ansible/blob/devel/contrib/inventory/freeipa.py
特にsshとの連携は強力で、ansibleを普段実行しないホストから実行したいような場合にも、新しいssh公開鍵をssh-copy-idで配布するのではなくIdMのansibleユーザに登録するだけで利用できます。
Identity Managerを利用する場合に管理対象ホストの設定
適切にIdMを設定できていれば、管理対象ではわずかな操作で上記が実現できます。
ipa-client-installコマンドでドメインに参加します。
# ipa-client-install --domain=EXAMPLE.COM --server=ipa.example.com
これだけで管理対象側の設定作業がおしまいで、ansibleでの接続が可能になります。
参考文献
- Linux ドメイン ID、認証、およびポリシーガイド 「5.3. IdM クライアントとして Linux システムを設定する」 https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/Installing_the_IPA_Client_on_Linux.html#client-basic-setup