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
ライセンス
Unknown
ダウンロード
541
所有者
Freelance Network Automation Consultant | DevNetOps | Home Automation