みなさんこんにちは。レッドハットの杉村です。Ansible のテクニカルサポートをしています。
Ansible から Windows Active Directory を操作してみるというものを紹介したことがありました。
その環境を使いまして、今回は Ansible Tower の認証をこの Active Directory を使って行う方法について紹介してみようと思います。Windows 2019 で Active Directory はあらかじめ構築されているものとして進めます。
- Ansible Tower 3.7.2 (RHEL 8.2)
- Windows 2019 (192.168.0.158)
設定のためのドキュメントはこちらです。
Active Directory への接続を確認
まず Active Directory 上に接続のためのユーザを1つ作ります。このユーザを通して Tower は検索を行います。
Domain Users として、binduser ユーザを作成しました。
「属性エディター」のタブで、distinguishedName を調べておきます。
次に、Ansible Tower からこの Active Directory に LDAP 接続してみます。接続を確認するためには、ldapsearch コマンドを使うのが便利です。標準ではインストールされていませんので、openldap-clients パッケージをインストールしてください。
$ sudo dnf install openldap-clients
binduser を使って接続できることを確認してみます。
$ ldapsearch -x -H ldap://192.168.0.158 \ -D "CN=binduser,CN=Users,DC=ANSIBLE,DC=JP,DC=REDHAT,DC=COM" \ -b "CN=Users,DC=ANSIBLE,DC=JP,DC=REDHAT,DC=COM" \ -w <binduserのパスワード>
ここで覚えておかなければいけないオプションはこのようになっています。
オプション | 値 |
---|---|
-H | LDAPサーバのURL (Active Directory) |
-D | bind DN |
-b | base DN (どのツリーから探すか) |
-w | bind DN に対応するパスワード |
search result として、0 Success が出力されていれば正しく接続できています。
# search result search: 2 result: 0 Success # numResponses: 28 # numEntries: 27
これで LDAP としての接続が確認できたので、Ansible Tower で設定していきます。
Ansible Tower での設定
admin ユーザでログインして、「設定」→「認証」→「LDAP」の画面で設定します。これまでに調べた値を利用して、次のようにフォームに入力してください。
- LDAPサーバーURI: ldap://192.168.0.158
- LDAPバインドDN: CN=binduser,CN=Users,DC=ANSIBLE,DC=JP,DC=REDHAT,DC=COM
- LDAPバインドパスワード: <binduserのパスワード>
- LDAPユーザーDNテンプレート: (空欄)
- LDAPグループタイプ: PosixGroupType
- LDAP要求グループ: (空欄)
- LDAP拒否グループ: (空欄)
- LDAP START TLS: off
- LDAPユーザー検索:
[ "CN=Users,DC=ANSIBLE,DC=JP,DC=REDHAT,DC=COM", "SCOPE_SUBTREE", "(sAMAccountName=%(user)s)" ]
- LDAPグループ検索:
[ "CN=Users,DC=ANSIBLE,DC=JP,DC=REDHAT,DC=COM", "SCOPE_SUBTREE", "(objectClass=group)" ]
- LDAPユーザー属性マップ:
{ "first_name": "givenName", "last_name": "sn", "email": "mail" }
- LDAPグループタイプパラメーター:
{ "name_attr": "cn" }
他の欄はデフォルト設定のままで、「保存」を押して設定を保存してください。
Active Directory でユーザを作成
アカウント名を user46 としてユーザを一つ作りました。「姓」「名」「電子メール」の欄は Ansible Tower の設定に反映されるので、適切に入力してください。
作成したユーザで Ansible Tower からログイン
ユーザ名とパスワードでログインできることを確認してください。Active Directory 側で設定した項目がうまくマッピングされています。
ログインはできましたが、いまのところ何も権限が付与されていません。適宜 admin ユーザなどの管理者権限を持つユーザからそれぞれに対して適切なパーミッションを付与して使う必要があります。
「LDAP組織マップ」や「LDAPチームマップ」の設定で自動的に「組織」や「チーム」にユーザを割り当てることにより、このパーミッションの付与作業を軽減することもできます。今回は触れることができませんでしたが、詳しくはこちらのドキュメントをご確認ください。
Ansible Towerの評価ライセンスリクエストはこちらからご利用いただけますのでお試しください。
Happy Automation!