Как установить Ansible AWX на CentOS 8 Linux

12 set 2022 5 min di lettura
Как установить Ansible AWX на CentOS 8 Linux
Indice dei contenuti

Введение

AWX расшифровывается как «Ansible Web eXecutable». Это бесплатный проект с открытым исходным кодом, который позволяет вам легко управлять проектом Ansible и контролировать его. Предоставляет пользовательский веб-интерфейс и механизм действий на основе Ansible. Он предоставляет мощный REST API и позволяет управлять инвентарем или синхронизировать его с другими облачными источниками, контролировать доступ и интегрироваться с LDAP.

В этом руководстве мы покажем вам, как установить Ansible AWX с Docker на CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8 с оперативной памятью не менее 4 ГБ.
  • Пользователь без полномочий root с привилегиями sudo.

Если вы хотите установить Ansible AWX на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установить зависимости

Прежде чем начать, вам нужно будет установить репозиторий EPEL в вашей системе. Вы можете установить его с помощью следующей команды:

sudo dnf install epel-release -y

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

sudo dnf install git gcc gcc-c++ ansible nano nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y

После того, как все пакеты будут установлены, вы можете перейти к следующему шагу.

Установите Docker и Docker Compose

Затем вам нужно установить Docker для запуска AWX внутри контейнера Docker. По умолчанию последняя версия Docker недоступна в репозитории по умолчанию CentOS 8. Поэтому вам нужно будет добавить репозиторий Docker в вашу систему. Вы можете добавить репозиторий Docker с помощью следующей команды:

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

После добавления установите последнюю стабильную версию Docker с помощью следующей команды:

sudo dnf install docker-ce-3:18.09.1-3.el7 -y

После установки Docker проверьте установленную версию Docker с помощью следующей команды:

docker --version

Вы должны получить следующий результат:

Docker version 19.03.8, build afacb8b

Затем запустите службу Docker и включите ее запуск после перезагрузки системы с помощью следующей команды:

sudo systemctl start docker
sudo systemctl enable docker

Вы можете проверить статус службы Docker с помощью следующей команды:

sudo systemctl status docker

Вы должны получить следующий результат:

● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active: active (running) since Sat 2020-03-21 18:11:15 CET; 5s ago
 Docs: https://docs.docker.com
 Main PID: 8624 (dockerd)
 Tasks: 18
 Memory: 47.7M
 CGroup: /system.slice/docker.service
 ├─8624 /usr/bin/dockerd -H fd://└─8638 containerd --config /var/run/docker/containerd/containerd.toml --log-level info

Затем установите композитор Docker с помощью следующей команды:

sudo pip3 install docker-compose

После установки проверьте версию Docker composer с помощью следующей команды:

docker-compose --version

Вы должны увидеть следующий вывод:

docker-compose version 1.25.4, build unknown

Наконец, выполните следующую команду, чтобы настроить команду python на использование python 3:

sudo alternatives --set python /usr/bin/python3

Установите Ansible AWX

Сначала загрузите последнюю версию Ansible AWX из репозитория Git Hub с помощью следующей команды:

sudo git clone https://github.com/ansible/awx.git

Затем сгенерируйте секретный ключ для шифрования файла инвентаризации с помощью следующей команды:

sudo openssl rand -base64 30

Вы должны получить вывод, подобный следующему:

cAP5Ag+/Lwlg2i5+e8iZXKfHNbpjtUfW3dp/ZfGE
Примечание: запомните приведенный выше код, вам нужно будет вставить его в файл инвентаря.

Затем измените каталог на awx/installer/ и отредактируйте файл inventory:

cd awx/installer/
sudo nano inventory

Отредактируйте файл следующим образом:

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

 [all:vars]
 dockerhub_base=ansible
 awx_task_hostname=awx
 awx_web_hostname=awxweb
 postgres_data_dir="/var/lib/pgdocker"
 host_port=80
 host_port_ssl=443
 docker_compose_dir="~/.awx/awxcompose"
 pg_username=awx
 pg_password=awxpass
 pg_database=awx
 pg_port=5432
 pg_admin_password=password
 rabbitmq_password=awxpass
 rabbitmq_erlang_cookie=cookiemonster
 admin_user=admin
 admin_password=password
 create_preload_data=True
 secret_key=cAP5Ag+/Lwlg2i5+e8iZXKfHNbpjtUfW3dp/ZfGE
 awx_official=true
 awx_alternate_dns_servers="8.8.8.8,8.8.4.4"
 project_data_dir=/var/lib/awx/projects

Сохраните и закройте файл, когда закончите. Затем создайте каталог для Postgres:

sudo mkdir /var/lib/pgdocker

Наконец, выполните следующую команду для установки AWX:

sudo ansible-playbook -i inventory install.yml

После успешного завершения установки вы должны получить следующий вывод:

...

 skipping: [localhost]

 TASK [local_docker: Load web image] **********************************************************************************************************
 skipping: [localhost]

 TASK [local_docker: Load task image] *********************************************************************************************************
 skipping: [localhost]

 TASK [local_docker: Set full image path for local install] ***********************************************************************************
 skipping: [localhost]

 TASK [local_docker: Set DockerHub Image Paths] ***********************************************************************************************
 ok: [localhost]

 TASK [local_docker: Create ~/.awx/awxcompose directory] **************************************************************************************
 changed: [localhost]

 TASK [local_docker: Create Docker Compose Configuration] *************************************************************************************
 changed: [localhost] => (item=environment.sh)
 changed: [localhost] => (item=credentials.py)
 changed: [localhost] => (item=docker-compose.yml)
 changed: [localhost] => (item=nginx.conf)

 TASK [local_docker: Render SECRET_KEY file] **************************************************************************************************
 changed: [localhost]

 TASK [local_docker: Start the containers] ****************************************************************************************************
 changed: [localhost]

 TASK [local_docker: Update CA trust in awx_web container] ************************************************************************************
 changed: [localhost]

 TASK [local_docker: Update CA trust in awx_task container] ***********************************************************************************
 changed: [localhost]

 PLAY RECAP ************************************************************************************************************************************
 localhost: ok=14 changed=6 unreachable=0 failed=0 skipped=95 rescued=0 ignored=0...

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

sudo docker ps

Вы должны увидеть следующий вывод:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 3a7ffee91018 ansible/awx_task:9.3.0 "/tini -- /bin/sh -c…" 13 minutes ago Up 13 minutes 8052/tcp awx_task
 179208933b55 ansible/awx_web:9.3.0 "/tini -- /bin/sh -c…" 13 minutes ago Up 13 minutes 0.0.0.0:80->8052/tcp awx_web
 86e4341934ca postgres:10 "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 5432/tcp awx_postgres
 40538e9ddc0f memcached:alpine "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 11211/tcp awx_memcached
 dfff98445d8e redis "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 6379/tcp awx_redis

Настройте SELinux и брандмауэр (необязательно)

По умолчанию SELinux включен в CentOS 8. Рекомендуется отключить его для работы на AWX в среде Docker. Вы можете отключить его, отредактировав следующий файл:

sudo nano /etc/sysconfig/selinux

Найдите строку SELINUX и измените ее следующим образом:

SELINUX = disabled

Сохраните и закройте файл, когда закончите. Затем перезагрузите систему, чтобы изменения вступили в силу. Затем вам нужно будет разрешить службу http и https через firewalld, если она включена. Вы можете разрешить их с помощью следующих команд:

sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Затем перезапустите службу firewalld, чтобы изменения вступили в силу:

sudo firewall-cmd --reload

Войдите в веб-интерфейс AWX

Теперь откройте веб-браузер и введите URL-адрес вашего доменного имени или IP-адреса, http://DOMINIO_O_IP. Вы будете перенаправлены на страницу входа в AWX.

Введите имя пользователя и пароль, указанные в файле инвентаризации, и нажмите кнопку ВХОД. Вы должны увидеть панель инструментов AWX по умолчанию.

Вывод

Вы успешно установили AWX с Docker на CentOS 8. Теперь вы можете легко управлять проектом Ansible и контролировать его с помощью веб-интерфейса AWX.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.