awx_docker


Установка роли Ansible AWX

статус теста
Роль протестирована на Ubuntu с установленным Docker с помощью моей роли bsmeding.docker на дистрибутиве Linux.

Эта роль установит AWX в контейнерах Docker на хосте, в настоящее время последняя стабильная версия Docker (17.1.0) протестирована.

Более новые версии будут собираться в контейнере Docker и официально не поддерживаются Ansible для продакшн использования.

Запуск дважды

Эта роль создаст файл после успешного развертывания в директории docker_compose с именем awx_playbook_complete.
Если роль запустить снова, она пропустит всю установку и выполнит только часть конфигурации. Это сделано для ускорения работы роли.
Если вы хотите повторно развернуть, сначала удалите этот файл с хоста.

Зависимости:

Установите коллекцию awx.awx для конфигурации AWX после установки:
ansible-galaxy collection install awx.awx

Для RedHat сначала необходимо установить репозиторий EPEL (см. geerlingguy.ansible_role_epel).

Ansible до версии 17.1 (по умолчанию)

Эта версия устанавливает AWX в контейнерах Docker, так как нормальный способ для более новых версий - использовать Kubernetes вместо Docker.
Хотя возможно установить более новые версии в Docker, это рекомендуется только для среды разработки.

Ansible 18 и выше

Пока не поддерживается!
В будущих версиях этой роли будет возможность собирать более новые версии напрямую на хосте, но, как уже сказано выше, это рекомендуется только для среды разработки.

Создание суперпользователя

В новых версиях нельзя добавить суперпользователя через переменные окружения, необходимо выполнить команду в контейнере:
Войдите на хост Docker и выполните следующую команду для создания суперпользователя:
docker exec -ti tools_awx_1 awx-manage createsuperuser
Ответьте на вопросы (имя пользователя, email, пароль).

Создание виртуальных окружений (Ansible AWX до версии 17.1)

Для версий AWX до 17.1.0 используется Python виртуальное окружение. Они могут быть установлены с помощью данного плейбука, установив переменную custom_venv со списком создаваемых виртуальных окружений.
Также необходим путь custom_venv_dir, который будет создан на хосте и связан с контейнером AWX, эта переменная затем нужна в настройках AWX как custom_venv.

Опционально для виртуального окружения можно использовать отдельную версию Python, установив переменную python_version. Если не указано, будет использоваться версия 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: {
  "Netwerk beheer": {
    "users": [
      "cn=awx,ou=groups,dc=example,dc=com"
    ],
    "organization": "MyOrg",
    "remove": true
  },
  "Netwerk developer": {
    "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/ansible_role_awx_docker
Лицензия
Unknown
Загрузки
252
Владелец
Freelance Network Automation Consultant | DevNetOps | Home Automation