Мы рассмотрим процесс установки 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
Теперь заходим по имени нашего сервера в веб-консоль, и можем пользоваться. На этом установка завершена.