Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux_faq:ansible_awx_setup [2019/07/25 13:31] – 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-репозитория: | ||