Поиск по сайту:

Как установить Ansible AWX на CentOS 7


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Минимальные системные требования для сервера AWX
  2. Установка Ansible AWX
  3. Настройка Nginx
  4. Настроить вход без пароля с сервера AWX
  5. Справочник

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