Как установить Ansible AWX на CentOS 7
Это руководство существует для этих версий ОС
- CentOS 8
- CentOS 7
На этой странице
- Минимальные системные требования для сервера AWX
- Установка Ansible AWX
- Настройка Nginx
- Настроить вход без пароля с сервера AWX
- Справочник
В предыдущем руководстве я показал вам, как развернуть Ansible AWX через докер. Тем временем я нашел два проекта, которые собирают пакеты rpm для AWX. Итак, в этом руководстве я покажу вам, как установить Ansible AWX из файлов RPM в CentOS 7. Ansible AWX — это версия программного обеспечения Ansible Tower с открытым исходным кодом.
Я буду использовать 3 сервера с минимальной установкой CentOS 7 и SELinux в разрешительном режиме.
- 192.168.1.25 Сервер AWX
- 192.168.1.21 клиент1
- 192.168.1.22 клиент2
Минимальные системные требования для сервера AWX
- Не менее 4 ГБ памяти
- Не менее 2 ядер процессора
- Не менее 20 ГБ свободного места
- Запуск Docker, Openshift или Kubernetes
Проверьте конфигурацию SELinux.
[ ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: permissive Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28 [ ~]#
Добавьте записи хоста в
/etc/hosts
[ ~]# cat /etc/hosts 192.168.1.25 awx.sunil.cc awx 192.168.1.21 client1.sunil.cc client1 192.168.1.22 client2.sunil.cc client2 [ ~]#
Добавьте правила брандмауэра
[ ~]# systemctl enable firewalld Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service. Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service. [ ~]# systemctl start firewalld [ ~]# firewall-cmd --add-service=http --permanent;firewall-cmd --add-service=https --permanent success success [ ~]# systemctl restart firewalld [ ~]#
Включите репозиторий CentOS EPEL.
[ ~]# yum install -y epel-release
Нам нужен postgresql 9.6 для установки AWX.
Включить репозиторий postgreSQL.
[ ~]# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Установка постгрескл.
[ ~]# yum install postgresql96-server -y
Установка других необходимых оборотов.
[ ~]# yum install -y rabbitmq-server wget memcached nginx ansible
Установка Ansible AWX
Добавление репозитория AWX.
[ ~]# wget -O /etc/yum.repos.d/awx-rpm.repo https://copr.fedorainfracloud.org/coprs/mrmeee/awx/repo/epel-7/mrmeee-awx-epel-7.repo
Установка оборотов
[ ~]# yum install -y awx
Инициализация базы данных
[ ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdb Initializing database ... OK [ ~]#
Запуск службы Rabbitmq
[ ~]# systemctl start rabbitmq-server [ ~]# systemctl enable rabbitmq-server Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service. [ ~]#
Запуск службы PostgreSQL
[ ~]# systemctl enable postgresql-9.6 Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service. [ ~]# systemctl start postgresql-9.6
Запуск службы Memcached
[ ~]# systemctl enable memcached Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service. [ ~]# systemctl start memcached
Создание пользователя Postgres
[ ~]# sudo -u postgres createuser -S awx could not change directory to "/root": Permission denied [ ~]#
Создание базы данных
[ ~]# sudo -u postgres createdb -O awx awx could not change directory to "/root": Permission denied [ ~]#
Импорт данных в базу данных
[ ~]# sudo -u awx /opt/awx/bin/awx-manage migrate
Инициализация конфигурации для AWX
[', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell [ ~]# sudo -u awx /opt/awx/bin/awx-manage create_preload_data Default organization added. Demo Credential, Inventory, and Job Template added. [ ~]# sudo -u awx /opt/awx/bin/awx-manage provision_instance --hostname=$(hostname) Successfully registered instance awx.sunil.cc (changed: True) [ ~]# sudo -u awx /opt/awx/bin/awx-manage register_queue --queuename=tower --hostnames=$(hostname) Creating instance group tower Added instance awx.sunil.cc to tower (changed: True) [ ~]#
Настроить Nginx
Сделайте резервную копию nginx.conf
[ ~]# cd /etc/nginx/ [ nginx]# pwd /etc/nginx [ nginx]# cp nginx.conf nginx.conf.bkp
Замените файл конфигурации nginx
[ nginx]# wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf
Включить и запустить службу nginx
[ ~]# systemctl start nginx [ ~]# systemctl enable nginx
Запустите сервисы awx
[ ~]# systemctl start awx-cbreceiver [ ~]# systemctl start awx-celery-beat [ ~]# systemctl start awx-celery-worker [ ~]# systemctl start awx-channels-worker [ ~]# systemctl start awx-daphne [ ~]# systemctl start awx-web
Убедитесь, что служба запущена во время перезапуска
[ ~]# systemctl enable awx-cbreceiver Created symlink from /etc/systemd/system/multi-user.target.wants/awx-cbreceiver.service to /usr/lib/systemd/system/awx-cbreceiver.service. [ ~]# systemctl enable awx-celery-beat Created symlink from /etc/systemd/system/multi-user.target.wants/awx-celery-beat.service to /usr/lib/systemd/system/awx-celery-beat.service. [ ~]# systemctl enable awx-celery-worker Created symlink from /etc/systemd/system/multi-user.target.wants/awx-celery-worker.service to /usr/lib/systemd/system/awx-celery-worker.service. [ ~]# systemctl enable awx-channels-worker Created symlink from /etc/systemd/system/multi-user.target.wants/awx-channels-worker.service to /usr/lib/systemd/system/awx-channels-worker.service. [ ~]# systemctl enable awx-daphne Created symlink from /etc/systemd/system/multi-user.target.wants/awx-daphne.service to /usr/lib/systemd/system/awx-daphne.service. [ ~]# systemctl enable awx-web Created symlink from /etc/systemd/system/multi-user.target.wants/awx-web.service to /usr/lib/systemd/system/awx-web.service. [ ~]#
Настройте вход без пароля с сервера AWX
Создайте пользователя на всех трех хостах.
В этом уроке я создаю пользователя ansible на всех трех серверах.
[ ~]# useradd ansible [ ~]# useradd ansible [ ~]# useradd ansible
Генерация ssh-ключа на сервере awx
[ nginx]# su - ansible [ ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ansible/.ssh/id_rsa): Created directory '/home/ansible/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ansible/.ssh/id_rsa. Your public key has been saved in /home/ansible/.ssh/id_rsa.pub. The key fingerprint is: SHA256:RW/dhTsxcyGicleRI0LpLm+LyhAVinm0xktapodc8gY The key's randomart image is: +---[RSA 2048]----+ | . . ..o. +ooo| | = o . +.oo+*.o| | E @ . ..oo.+ o*.| |. # o oo.. o | | = * S . | | o . . . | | . o | | o .o | | o..... | +----[SHA256]-----+ [ ~]$
Добавление записи sudoers на всех 3 серверах в качестве последней записи в файл
[ nginx]# visudo ansible ALL=(ALL) NOPASSWD: ALL
Скопируйте содержимое id_rsa.pub в author_keys на всех 3 серверах.
[ .ssh]$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANFTnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxIkEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyqGjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [ .ssh]$ [ .ssh]$ cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANFTnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxIkEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyqGjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [ .ssh]$ chmod 600 authorized_keys
Клиент1
[ ~]# su - ansible [ ~]$ mkdir .ssh [ ~]$ chmod 700 .ssh [ ~]$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANFTnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxIkEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyqGjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [ ~]$ chmod 600 .ssh/authorized_keys
Клиент2
[ ~]# su - ansible [ ~]$ mkdir .ssh [ ~]$ chmod 700 .ssh [ ~]$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANFTnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxIkEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyqGjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [ ~]$ chmod 600 .ssh/authorized_keys
Проверьте вход без пароля с сервера AWX.
[ ~]$ ssh client1 Last login: Sun Mar 11 13:14:06 2018 from 192.168.1.25 [ ~]$ exit logout Connection to client1 closed. [ ~]$ ssh client2 Last login: Sun Mar 11 12:50:14 2018 from 192.168.1.25 [ ~]$
Подтвердите вход:
Данные для входа:
Имя пользователя: \admin\
Пароль: \password\
В следующем туториале будет показано, как добавить плейбук и запустить задание.
Ссылка
- https://github.com/MrMEEE/awx-сборка
- https://github.com/subuk/awx-rpm