bsmeding.awx_docker
Ansible AWX インストールロール
このロールは、私のロール bsmeding.docker を使用して Docker がインストールされた Ubuntu の Linux ディストリビューションでテストされています。
このロールは、ホスト上の Docker コンテナに AWX をインストールします。現在の最新の Docker バージョン(17.1.0)は安定しており、テスト済みです。
それ以上のバージョンは Docker コンテナにビルドされますが、Ansible による本番利用は正式にサポートされていません。
2回実行する
このロールは、成功裏にデプロイされた後に docker_compose
ディレクトリに awx_playbook_complete
というファイルを配置します。
再度このロールを実行した場合、すべてのインストールをスキップし、構成部分のみを実行します。これは、ロールの実行を高速化するためです。
再デプロイを行いたい場合は、まずホストからこのファイルを削除してください。
依存関係:
AWXのインストール後の構成のために、コレクション awx.awx をインストールする必要があります。ansible-galaxy collection install awx.awx
RedHat では、最初に EPEL リポジトリをインストールする必要があります(geerlingguy.ansible_role_epelを参照)。
Ansible 17.1 まで(デフォルト)
これは Docker コンテナにインストールされます。より高いバージョンの一般的な方法は Kubernetes を使用することです。
Docker に高いバージョンをインストールすることも可能ですが、開発環境での使用のみが推奨されます。
Ansible 18 以降
現在は未サポートです!
将来のリリースでは、ホスト上に直接高いバージョンをビルドできるようになりますが、これも開発環境での使用のみが推奨されます。
スーパーユーザーの作成
新しいバージョンでは、環境変数を介してスーパーユーザーを追加することができません。コンテナ内でコマンドを実行する必要があります:
Docker ホストにログインして、以下のコマンドを実行します。docker exec -ti tools_awx_1 awx-manage createsuperuser
質問に答えてください(ユーザー名、メールアドレス、パスワード)。
仮想環境の作成(Ansible AWX 17.1 まで)
AWX バージョン 17.1.0 までのために Python 仮想環境が使用されます。
これらは、custom_venv
変数に作成する仮想環境のリストを設定することで、このプレイブックを使ってインストールできます。
また、ホストに作成され、AWX コンテナにリンクされるパス custom_venv_dir
が必要です。この変数は AWX 設定で custom_venv として必要です。
オプションとして、python_version
変数を設定することで、仮想環境に別の Python バージョンを使用できます。設定しなければ、OS のデフォルト Python バージョンが使用されます。
custom_venv_delete_before_install: false
custom_venv_dir: /opt/awx/venv
# 別の仮想環境を構築するためのカスタム Python ディレクトリ
custom_python_dir: /opt/python
custom_venvs:
- name: ansible2_10_3
python_version: 3.6.8
ansible_pip_packages:
- ansible==2.10.3
- ansible-lint
- pynautobot
- jmespath
- napalm
- netmiko
- paramiko
仮想環境のパスは自動的に AWX インスタンスに追加されます。
LDAP 設定
必要に応じて LDAP 設定を追加できます。現在はデフォルトおよび 1 の LDAP サーバーが設定されています。
# awx__ldap_server_uri: ldap://ldap.example.com:3380
# awx__ldap_bind_dn: CN=readonly,OU=people,DC=example,DC=com
# awx__ldap_bind_password: password
# awx__ldap_group_type: NestedMemberDNGroupType
# awx__ldap_user_dn_template: uid=%(user)s,ou=people,dc=example,dc=com
# awx__ldap_require_group: cn=AWX,ou=groups,dc=example,dc=com
# awx__ldap_deny_group: ''
# awx__ldap_user_search: []
# awx__ldap_group_search: []
# awx__ldap_user_attr_map: {}
# awx__ldap_group_type_parameters: {}
# awx__ldap_user_flags_by_group: {}
# awx__ldap_organization_map: {}
# awx__ldap_team_map: {}
例:LDAP サポートと自動グループ設定のための設定
awx__ldap_server_uri: ldap://192.168.71.10:3380
awx__ldap_bind_dn: CN=readonly,OU=people,DC=example,DC=com
awx__ldap_bind_password: password
awx__ldap_group_type: NestedMemberDNGroupType
awx__ldap_user_dn_template: uid=%(user)s,ou=people,dc=example,dc=com
awx__ldap_require_group: cn=AWX,ou=groups,dc=example,dc=com
awx__ldap_deny_group: ''
awx__ldap_user_search: [
"cn=people,dc=example,dc=com",
"SCOPE_SUBTREE",
"(uid=%(user)s)"
]
awx__ldap_group_search: [
"ou=groups,dc=example,dc=com",
"SCOPE_SUBTREE",
"(objectClass=posixGroup)"
]
awx__ldap_user_attr_map: {
"first_name": "givenName",
"last_name": "sn"
}
awx__ldap_group_type_parameters: {
"name_attr": "cn",
"member_attr": "member"
}
awx__ldap_user_flags_by_group: {
"is_superuser": [
"cn=lldap_admin,ou=groups,dc=example,dc=com"
]
}
awx__ldap_organization_map: {}
awx__ldap_team_map: {
"ネットワーク管理": {
"users": [
"cn=awx,ou=groups,dc=example,dc=com"
],
"organization": "MyOrg",
"remove": true
},
"ネットワーク開発": {
"users": [
"cn=awx__developer,ou=groups,dc=example,dc=com"
],
"organization": "MyOrg",
"remove": true
}
}
組織とチーム
組織やチームを追加するには、以下の変数を追加します:
awx__organizations:
- name: MyOrg
# custom_virtualenv: ansible3
teams:
- name: DevOps
description: DevOps
- name: Support
description: サポートチーム
Role to Install Ansible AWX (opensource Tower) in Docker container
ansible-galaxy install bsmeding.awx_docker