Как установить Ansible AWX на Kubernetes Minikube
Привет, надеюсь, вы знаете об Ansible AWX , если нет, то Ansible AWX — это веб-инструмент с графическим интерфейсом для управления доступными плейбуками. Помимо выполнения сценариев Ansible, в AWX есть много других функций, таких как интеграция управления исходным кодом, ведение журнала RBAC и многое другое.
Другими словами, можно сказать, что Ansible AWX рассматривается как восходящий проект Red HAT Ansible Tower . Начиная с AWX версии 18.x и новее, фокус установки перемещается с докера на Kubernetes. Итак, в этой статье мы рассмотрим пошаговую установку Ansible AWX на Kubernetes Minikube.
Я предполагаю, что Minikube уже установлен в вашей системе Linux.
Примечание. Убедитесь, что вы запускаете кластер minikube с достаточным количеством ресурсов (как минимум 4 виртуальных ЦП и 8 ГБ ОЗУ). В моем случае я запустил minikube со следующими ресурсами и параметрами.
$ minikube start --addons=ingress --cpus=4 --cni=flannel --install-addons=true --kubernetes-version=stable --memory=8g
Проверьте установку кластера Minikube
Выполните следующие команды, чтобы проверить установку minikube и состояние кластера.
$ minikube status $ kubectl cluster-info $ kubectl get nodes
Вывод вышеперечисленных команд должен выглядеть следующим образом:
Отлично, это подтверждает, что minikube был установлен и успешно запущен. Перейдем к этапам установки AWX.
Шаг 1) Установите AWX Operator
Чтобы установить оператор AWX, выполните следующую команду kubectl,
$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.12.0/deploy/awx-operator.yaml
Вывод
Выполните команду ниже, чтобы подтвердить, запущена ли панель оператора AWX. Если не запустился, подождите пару минут, это займет время,
root@infoit.com.ua:~$ kubectl get pods NAME READY STATUS RESTARTS AGE awx-operator-79bc95f78-pb7tz 1/1 Running 0 5m23s root@infoit.com.ua:~$
Шаг 2) Создайте yaml-файл экземпляра AWX
Создайте файл ansible-awx.yml со следующим содержимым
$ vi ansible-awx.yml --- apiVersion: awx.ansible.com/v1beta1 kind: AWX metadata: name: ansible-awx spec: service_type: nodeport ingress_type: none hostname: ansible-awx.example.com
сохраните и закройте файл.
Шаг 3) Разверните экземпляр Ansible AWX
Теперь давайте развернем экземпляр AWX в нашем кластере, выполнив команду ниже:
root@infoit.com.ua:~$ kubectl apply -f ansible-awx.yml awx.awx.ansible.com/ansible-awx created root@infoit.com.ua:~$
Выше будет создано развертывание с именем ansible-awx , и это развертывание будет иметь два модуля и службы.
Через пару минут Ansible AWX будет развернут, и если вы хотите отслеживать журналы установки, используйте команду ниже:
$ kubectl logs -f deployment/awx-operator
Выполните команду ниже, чтобы проверить статус стручков AWX,
root@infoit.com.ua:~$ kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" NAME READY STATUS RESTARTS AGE ansible-awx-5ddfccf664-vrdq2 4/4 Running 0 7m40s ansible-awx-postgres-0 1/1 Running 0 8m24s root@infoit.com.ua:~$
Выполните следующую команду, чтобы просмотреть статус службы,
root@infoit.com.ua:~$ kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator" NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ansible-awx-postgres ClusterIP None <none> 5432/TCP 8m31s ansible-awx-service NodePort 10.97.206.89 <none> 80:32483/TCP 7m55s root@infoit.com.ua:~$
Обратите внимание на порт узла ansible-awx-service, мы будем использовать его позже для переадресации портов.
Шаг 4) Доступ к порталу AWX через туннелирование
Чтобы получить доступ к порталу AWX за пределами кластера minikube, мы должны настроить туннелирование, запустить
root@infoit.com.ua:~$ nohup minikube tunnel & [3] 35709 root@infoit.com.ua:~$ root@infoit.com.ua:~$ kubectl get svc ansible-awx-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ansible-awx-service NodePort 10.97.206.89 <none> 80:32483/TCP 90m root@infoit.com.ua:~$
Настройте переадресацию портов таким образом, чтобы, если запрос поступает на IP-адрес minikube на порт узла ‘ 32483 ‘, он должен быть перенаправлен на порт 80 пода awx.
root@infoit.com.ua:~$ kubectl port-forward svc/ansible-awx-service --address 0.0.0.0 32483:80 &> /dev/null & [4] 46686 root@infoit.com.ua:~$
Теперь попробуйте получить доступ к порталу AWX из веб-браузера, используя IP-адрес minikube и порт узла 32483.
http://<minikube-ip>:<node-port>
Чтобы получить учетные данные, вернитесь в терминал и выполните команду под командой.
root@infoit.com.ua:~$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" | base64 --decode PWrwGWBFCmpd1b47DJffCtK5SqYGzxXF root@infoit.com.ua:~$
Используйте имя пользователя как « admin » и пароль как результат вышеуказанной команды, после ввода учетных данных мы получим следующую панель инструментов
Отлично, выше подтверждается, что Ansible AWX успешно установлен на Kubernetes minikube. Это все из этой статьи. Я надеюсь, что вы нашли его информативным, и если у вас есть какие-либо вопросы, не стесняйтесь писать нам в разделе комментариев ниже.