Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| linux_faq:ansible_awx_setup [2020/06/09 15:10] – [Установка AWX в кластере kubernetes] admin | linux_faq:ansible_awx_setup [2020/06/10 08:58] (current) – admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Установка AWX на Ubuntu 19.04 ====== | ||
| + | Вот рабочая последовательность команд для установки **Ansible AWX** на **Ubuntu 19.04** в виде контейнеров **docker**. \\ | ||
| + | **Docker** обязательно нужно ставить последний из https:// | ||
| + | < | ||
| + | export https_proxy=http:// | ||
| + | |||
| + | echo "deb http:// | ||
| + | sudo apt-key adv --keyserver hkp:// | ||
| + | sudo apt-get update | ||
| + | sudo apt install ansible -y | ||
| + | sudo rm -f / | ||
| + | sudo ln -s / | ||
| + | |||
| + | sudo snap remove --purge docker | ||
| + | sudo apt-get purge docker docker-engine docker.io docker-ce docker-ce-cli containerd.io containerd runc -y | ||
| + | sudo rm -rf / | ||
| + | sudo rm -rf / | ||
| + | sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common | ||
| + | curl -fsSL https:// | ||
| + | sudo apt-key fingerprint 0EBFCD88 | ||
| + | sudo add-apt-repository "deb [arch=amd64] https:// | ||
| + | sudo apt-get update | ||
| + | sudo apt-get install docker-ce docker-ce-cli containerd.io -y | ||
| + | sudo service docker start | ||
| + | sudo rm -f / | ||
| + | sudo ln -s / | ||
| + | sudo apt-get install python3-pip -y | ||
| + | sudo pip3 --proxy=http:// | ||
| + | sudo apt install nodejs npm -y | ||
| + | sudo npm install npm --global | ||
| + | git clone https:// | ||
| + | cd awx/ | ||
| + | sudo ansible-playbook -i inventory install.yml | ||
| + | </ | ||
| + | ====== Установка AWX в кластере kubernetes ====== | ||
| + | Для установки в Kubernetes есть несколько опций: | ||
| + | * Штатный ansible-инсталлятор - https:// | ||
| + | * operator (в июне 2020 - alpha) - https:// | ||
| + | * helm chart (в июне 2020 уже несколько устарел - там все еще rabbitmq вместо redis) - https:// | ||
| + | \\ | ||
| + | На старых версиях плейбуков AWX при установке в кластер kubernetes версии 1.16 playbook вываливался с ошибкой на задаче **TASK [kubernetes : Apply Deployment]**. Сейчас такого не происходит. \\ | ||
| + | Для начала - нужно включить логирование, | ||
| + | Apply Deployment | ||
| + | и в ней комментируем строку | ||
| + | no_log: yes | ||
| + | В итоге можем увидеть сообщение об ошибке: | ||
| + | no matches for kind " | ||
| + | Это означает, | ||
| + | Открываем файл **roles/ | ||
| + | kind: StatefulSet | ||
| + | и исправляем версию строкой выше.\\ | ||
| + | Версии **kubernetes API** в вашем кластере можно посмотреть так: | ||
| + | for kind in `kubectl api-resources | tail +2 | awk '{ print $1 }'`; do kubectl explain $kind; done | grep -e " | ||
| + | В моем случае | ||
| + | apiVersion: apps/ | ||
| + | нужно заменить на | ||
| + | apiVersion: apps/v1 | ||
| + | В результате - характер ошибки изменился и теперь сообщение такое: | ||
| + | missing required field " | ||
| + | Отлично. Оказалось, | ||
| + | spec: | ||
| + | serviceName: | ||
| + | replicas: 1 | ||
| + | selector: | ||
| + | matchLabels: | ||
| + | app: {{ kubernetes_deployment_name }} | ||
| + | Также в моей конфигурации оказалось проще удалить секции **resources**, | ||
| + | \\ | ||
| + | ====== Обновление AWX в кластере kubernetes ====== | ||
| + | Бекапим базу. На сервере postgres выполняем: | ||
| + | sudo su - postgres | ||
| + | su - postgres | ||
| + | pg_dump awx > awx_`date +" | ||
| + | Клонируем свежий репозиторий AWX: | ||
| + | git clone https:// | ||
| + | Настраиваем **inventory**: | ||
| + | cd awx/ | ||
| + | nano inventory | ||
| + | | ||
| + | | ||
| + | ====== Ошибки ====== | ||
| + | ===== cannot import name errors ===== | ||
| + | Вот такая ошибка появлялась, | ||
| + | < | ||
| + | TASK [local_docker : Start the containers] ************************************************************************************************************************************************************************************************************************************ | ||
| + | fatal: [localhost]: | ||
| + | </ | ||
| + | |||
| + | ===== read-only file system ===== | ||
| + | При [[linux_faq: | ||
| + | Cannot start service postgres: b" | ||
| + | Гугление показало, | ||
| + | |||
| + | ===== awx on kubernetes - high CPU usage erl_child_setup ===== | ||
| + | **AWX** в маленьком кластере **kubernetes**. В простое постоянно высокая нагрузка на **CPU** - процесс **erl_child_setup**.\\ | ||
| + | Причина - **liveness** и **readyness** пробы в контейнере **awx-rabbit**. \\ | ||
| + | Решение - отредактировать **StatefullSet** и удалить **liveness** и **readyness** пробы. | ||
| + | kubectl edit sts awx -n awx | ||
| + | |||
| + | ====== Установка AWX из репозиториев ====== | ||
| + | Это уже древний вариант. Сейчас актуальна установка в контейнеры **docker**. \\ | ||
| + | CentOS 7 1810 | ||
| + | yum install -y epel-release | ||
| + | yum install -y https:// | ||
| + | yum install -y postgresql96-server | ||
| + | yum install -y rabbitmq-server wget memcached nginx ansible | ||
| + | wget -O / | ||
| + | yum install -y awx | ||
| + | |||
| + | / | ||
| + | |||
| + | systemctl start rabbitmq-server | ||
| + | systemctl enable rabbitmq-server | ||
| + | systemctl enable postgresql-9.6 | ||
| + | systemctl start postgresql-9.6 | ||
| + | systemctl enable memcached | ||
| + | systemctl start memcached | ||
| + | |||
| + | sudo -u postgres createuser -S awx | ||
| + | sudo -u postgres createdb -O awx awx | ||
| + | sudo -u awx / | ||
| + | |||
| + | echo "from django.contrib.auth.models import User; User.objects.create_superuser(' | ||
| + | sudo -u awx / | ||
| + | sudo -u awx / | ||
| + | sudo -u awx / | ||
| + | |||
| + | cd /etc/nginx/ | ||
| + | cp nginx.conf nginx.conf.bak | ||
| + | wget -O / | ||
| + | |||
| + | systemctl start nginx | ||
| + | systemctl enable nginx | ||
| + | systemctl start awx-cbreceiver | ||
| + | systemctl start awx-channels-worker | ||
| + | systemctl start awx-daphne | ||
| + | systemctl start awx-dispatcher | ||
| + | systemctl start awx-web | ||
| + | | ||
| + | systemctl enable awx-cbreceiver | ||
| + | systemctl enable awx-channels-worker | ||
| + | systemctl enable awx-daphne | ||
| + | systemctl enable awx-dispatcher | ||
| + | systemctl enable awx-web | ||
| + | ====== Ссылки ====== | ||
| + | https:// | ||
| + | https:// | ||
| + | Установка AWX из rpm-репозитория: | ||