Подготовка
AWX - это проект, позволяющий выполнять сценарии ansible используя web-интерфейс.
Сначала нужно установить Kustomize на master-server кластера, для этого выполнить команду
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
Создать файл ns-awx.yaml с содержимым
# namespace для awx
kind: Namespace
apiVersion: v1
metadata:
name: awx
Создать файл pv-awx.yaml с содержимым
# PersistentVolume, в котором будет хранится база данных awx
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-volume-1
labels:
type: local
namespace: awx
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteOnce
claimRef:
namespace: awx
name: postgres-13-awx-demo-postgres-13-0 #имя пода с postgres, резервирует хранилище только для этого пода
hostPath:
path: "/mnt/data/pg13" #каталог в котором будут хранится данные на ноде
Создать файл kustomization.yaml со следующим содержимым
В том же каталоге создать файл awx-demo.yaml с содержимым
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/ansible/awx-operator/config/default?ref=1.1.2
- awx-demo.yaml
images:
- name: quay.io/ansible/awx-operator
newTag: 1.1.2
namespace: awx
Вместо 1.1.2 указать последнюю версию отсюда https://github.com/ansible/awx-operator/releases. В том же каталоге создать файл awx-demo.yaml с содержимым
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
Разворот
Namespace
kubectl apply -f ns-awx.yamlPersistentVolume
kubectl apply -f pv-awx.yamlУстановка awx, указывается каталог с файлами kustomization.yaml и awx-demo.yaml.
kubectl apply -k ~/kustomization --kubeconfig /etc/kubernetes/admin.confДля удаления вместо apply подставить delete, выполняя команды в обратном порядке
Если разворот завис, возможно, не может загрузится образ awx-ee на slave-node и нужно загрузить вручную выполнив на слейве команду
docker pull quay.io/ansible/awx-ee:latest
Открыть панель управления можно по адресу http://ip-node:30080.
При развертывании создается секрет, по умолчанию пользователь admin, а пароль находится в секрете awx-demo-admin-password
его можно получить командой
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode
После входа в панель управления AWX можно сменить пароль. Для этого в правом верхнем углу нажать на имя пользователя, затем User Details, в открывшемся окне нажать на кнопку Edit, ввести новый пароль. После этого можно будет входить под этим паролем.
Если панель управления awx не открывается, можно посмотреть логи контейнеров командой
Если есть ошибки вида:
kubectl logs pod/awx-demo-78f476bdb-lzps5 -c awx-demo-web -n awxВторая половина названия под будет отличаться.
Если есть ошибки вида:
[wait-for-migrations] Waiting for database migrations... [wait-for-migrations] Attempt 1 of 30 [wait-for-migrations] Waiting 0.5 seconds before next attempt [wait-for-migrations] Attempt 2 of 30 [wait-for-migrations] Waiting 1 seconds before next attempt [wait-for-migrations] Attempt 3 of 30Нужно выполнить awx-manage migrate --noinput на поде awx-demo-78f476bdb-lzps5 (вторая половина названия будет отличаться), в контейнере awx-demo-web, для этого можно выполнить команду
kubectl -n awx exec -it awx-demo-78f476bdb-lzps5 -c awx-demo-web -- awx-manage migrate --noinput