Как установить Ansible AWX на Kubernetes Minikube

Как установить 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

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

Как установить Ansible AWX на Kubernetes Minikube

Отлично, это подтверждает, что minikube был установлен и успешно запущен. Перейдем к этапам установки AWX.

Шаг 1) Установите AWX Operator

Чтобы установить оператор AWX, выполните следующую команду kubectl,

$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.12.0/deploy/awx-operator.yaml

Вывод

Как установить Ansible AWX на Kubernetes Minikube 1

Выполните команду ниже, чтобы подтвердить, запущена ли панель оператора 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>

Как установить Ansible AWX на Kubernetes Minikube 2

Чтобы получить учетные данные, вернитесь в терминал и выполните команду под командой.

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 3

Отлично, выше подтверждается, что Ansible AWX успешно установлен на Kubernetes minikube. Это все из этой статьи. Я надеюсь, что вы нашли его информативным, и если у вас есть какие-либо вопросы, не стесняйтесь писать нам в разделе комментариев ниже.