bsmeding.awx_docker


Instalacja roli Ansible AWX

status testów Rola jest testowana na Ubuntu z Dockerem zainstalowanym za pomocą mojej roli bsmeding.docker na dystrybucji Linux.

Rola ta zainstaluje AWX w kontenerach Docker na hoście. Aktualnie najnowsza stabilna i testowana wersja Dockera to 17.1.0.

Wyższe wersje będą budowane w kontenerach docker i nie są oficjalnie wspierane przez Ansible do użycia produkcyjnego.

Uruchomienie dwa razy

Po udanej instalacji, rola umieści plik w katalogu docker_compose o nazwie awx_playbook_complete. Jeżeli rola zostanie uruchomiona ponownie, pominie wszystkie instalacje i uruchomi tylko część konfiguracyjną. Robi to, aby przyspieszyć proces. Jeśli chcesz przeinstalować, najpierw usuń ten plik z hosta.

Zależności:

Zainstaluj kolekcję awx.awx do konfiguracji AWX po instalacji: ansible-galaxy collection install awx.awx

Dla RedHat konieczne jest najpierw zainstalowanie repozytorium EPEL (zobacz geerlingguy.ansible_role_epel).

Ansible do wersji 17.1 (domyślnie)

Instalacja odbywa się w kontenerach Docker, ponieważ w przypadku wyższych wersji zaleca się korzystanie z Kubernetes zamiast Dockera. Chociaż możliwe jest zainstalowanie wyższych wersji w Dockerze, jest to zalecane tylko dla środowisk deweloperskich.

Ansible 18 i nowsze

Obecnie jeszcze nie wspierane! W przyszłych wydaniach tej roli możliwe będzie budowanie wyższych wersji bezpośrednio na hoście, ale jak już wspomniano, zaleca się to tylko dla środowisk deweloperskich.

Utworzenie superużytkownika

W nowych wersjach nie można dodać superużytkownika za pomocą zmiennych środowiskowych, należy uruchomić polecenie w kontenerze: Zaloguj się do hosta Docker i wykonaj następujące polecenie, aby utworzyć superużytkownika: docker exec -ti tools_awx_1 awx-manage createsuperuser Odpowiedz na pytania (nazwa użytkownika, e-mail, hasło).

Tworzenie Środowisk Wirtualnych (Ansible AWX do wersji 17.1)

W przypadku wersji AWX do 17.1.0 używane jest wirtualne środowisko Pythona. Można je zainstalować za pomocą tego playbooka, ustawiając zmienną custom_venv z listą środowisk wirtualnych do utworzenia. Potrzebna jest również ścieżka custom_venv_dir, która zostanie utworzona na hoście i połączona z kontenerem AWX; ta zmienna jest później potrzebna w ustawieniach AWX jako custom_venv.

Opcjonalnie można użyć oddzielnej wersji Pythona dla venv, ustawiając zmienną python_version. Jeśli nie będzie ustawiona, zostanie użyta domyślna wersja Pythona systemu operacyjnego.

custom_venv_delete_before_install: false
custom_venv_dir: /opt/awx/venv
# Niestandardowy katalog Pythona, potrzebny do budowy różnych środowisk wirtualnych
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

Ścieżka do środowiska wirtualnego zostanie automatycznie dodana do instancji AWX.

Konfiguracja LDAP

Jeśli potrzebne, możliwe jest dodanie konfiguracji LDAP, obecnie skonfigurowane są domyślne i 1 serwery 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: hasło
# 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: {}

Przykład: konfiguracja dla wsparcia LDAP i automatycznej konfiguracji grup.

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: hasło
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
  }
}

Organizacje i zespoły

Aby dodać organizacje i/lub zespoły, dodaj następujące zmienne:

awx__organizations:
  - name: MyOrg
    # custom_virtualenv: ansible3
    teams:
    - name: DevOps
      description: DevOps
    - name: Support
      description: Zespół wsparcia
O projekcie

Role to Install Ansible AWX (opensource Tower) in Docker container

Zainstaluj
ansible-galaxy install bsmeding.awx_docker
Licencja
Unknown
Pobrania
541
Właściciel
Freelance Network Automation Consultant | DevNetOps | Home Automation