Мы рассмотрим процесс установки Ansible AWX, веб-интерфейса с открытым исходным кодом для управления проектами Ansible, с помощью однонодового K3S и awx-operator, на базе Ubuntu 22.04.
Ansible AWX — это мощный веб-интерфейс с открытым исходным кодом для управления проектами Ansible, плейбуками, списками инвентори и планированием заданий по расписанию. С Ansible AWX можно эффективно и наглядно управлять инфраструктурой, организовывать задачи и оптимизировать процессы DevOps.
| Версия | ПО |
|---|---|
| Client Version | v1.30.5+k3s1 |
| Kustomize Version | v5.0.4-0.20230601165947-6ce0bf390ce3 |
| Server Version | v1.30.5+k3s1 |
| Оператор AWX | 2.9.1 |
| PostgreSQL | 15 |
Минимальные требования:
- CPU: 2
- RAM: 4 Gb
- SSD: 50 Gb
- OS: Ubuntu 22.04
Рекомендованные:
- CPU: 4
- RAM: 8 Gb
- SSD: 50 Gb
- OS: Ubuntu 22.04
Для чистой установки потребуется не менее 20 Gb для /var/lib/rancher.
Оба показателя будут увеличиваться в течение срока использования, а фактическое потребление во многом зависит от варианта использования, поэтому следует обращать внимание на потребление и при необходимости увеличивать объём.
Директория /var/lib/rancher будет создана автоматически для K3S и связанных с ним данными, такими как образы контейнеров и оверлеи.
Все действия можно производить как от пользователя с правами sudo, так и от root (sudo -s)
Шаг 1. Подготовка хоста
Обновить пакеты и систему
| |
Отключаем Firewall и swap
| |
Открываем файл на редактирование:
| |
Удаляем строку
| |
Установить git, curl, jq и необходимые пакеты
| |
Шаг 2. Установка K3S - облегченный Kubernetes
Указываем параметр --write-kubeconfig-mode 644, чтобы иметь доступ к конфигу на чтение без root привилегий
| |
Кластер установится автоматически. Следующим шагом проверяем нашу установку k3s с помощью команды:
| |

Создаём пространство имен для оператора
| |
Шаг 3. Установка Ansible AWX
Клонируем официальный репозиторий awx-operator к себе на локальную машину
| |
Шаг 4. Конфигурирование и запуск
Изменяем текущий контекст на тот, который мы задали в переменной (awx)
| |
Переходим в директорию awx
| |
Сохраняем последнюю версию из релизов AWX Operator как переменную RELEASE TAG, а затем выполняем извлечение в ветку с помощью git’a
| |
И выполняем развёртывание
| |

После чего можно наблюдать запуск подов в реальном времени командой
| |

- *P.S. Если хотите
удалитьдеплой, то выполните команду
| |
Через примерно 5 минут под с AWX запустится
AWX-operator установлен. Далее устанавливаем веб-интерфейс
Создать файл
| |
| |
Применяем файл
| |
Ожидаем развёртывания…
Просматриваем на каком порту слушает сервис ansible
| |

Получаем пароль от веб-интерфейса
| |
И заходим по IP:Port
| |

Шаг 5. Устанавливаем Ingress-conroller и Load Balancer
Порт генерируется случайным образом и нас это не особо устраивает. Установим ingress-controller и изменим тип сервиса
Для этого деплоим конфиг ingress-nginx:
| |
Конфигурируем файл awx-demo.yaml
| |
Удаляем старый сервис
| |
И применяем новый
| |
Создаём файл ingress.yaml
| |
Добавляем содержимое:
| |
Применяем созданный конфиг
| |
Создаём файл для Load Balancer
| |
Добавляем содержимое:
| |
Применяем конфиг балансировщика
| |
Проверяем наш ingress
| |

На этом этапе имя сервера уже должно быть создано в DNS и резолвиться
При входе по IP вы получите ошибку 404

Теперь заходим по имени нашего сервера в веб-консоль, и можем пользоваться. На этом установка завершена.


