Как установить Ansible Semaphore на Debian 11

Ansible Semaphore — это веб-интерфейс с открытым исходным кодом для плейбуков Ansible. Он позволяет выполнять развёртывание с помощью автоматизации Ansible через веб-браузер. Ansible Semaphore написан исключительно на языке Go и может быть запущен на Linux, Windows и macOS. Ansible Semaphore позволяет выполнять развертывание с помощью Ansible через интуитивно понятную и отзывчивую панель веб-администрирования. Вы всегда можете откатиться назад, восстановить конфигурацию, управлять окружениями, секретами, инвентарем и ключами доступа. Он позволяет запускать игровые книги по расписанию с подробными журналами и уведомлениями.

Ansible Semaphore обеспечивает безопасное развертывание и конфигурирование. Предоставляет контроль доступа, который может быть использован для управления пользователями и позволяет запускать определенные игровые книги.

В этом руководстве вы установите Ansible Semaphore на сервер Debian 11. Вы настроите Ansible Semaphore с помощью последней версии Ansible, используя сервер PostgreSQL для хранения данных пользователей, а также используя веб-сервер Nginx в качестве обратного прокси для веб-приложений Ansible Semaphore.

Предварительные условия

Чтобы завершить этот учебник, вы должны обладать следующими требованиями:

  • Сервер Linux под управлением Debian 11 — В этом примере используется сервер Debian с именем хоста ‘семафор‘.
  • Некорневой пользователь с привилегиями sudo/root — В этом примере используется некорневой пользователь ‘bob‘.
  • Доменное имя, указывающее на IP-адрес сервера — В этом примере используется доменное имя ‘ansible.local’.

Установка зависимостей

Сначала вы установите некоторые зависимости пакетов, которые будут использоваться для установки Ansible Semaphore. Вы установите последнюю версию Ansible, сервер базы данных PostgreSQL и веб-серверы Nginx. Все эти пакеты по умолчанию доступны в репозитории Debian.

Для начала введите следующую команду, чтобы обновить индекс пакетов Debian.

sudo apt update

После обновления индекса пакетов выполните следующую команду apt для установки некоторых основных зависимостей в вашу систему. Введите y, когда появится запрос, и нажмите ENTER, чтобы продолжить.

sudo apt install git curl wget software-properties-common

установить deps

Далее необходимо установить некоторые зависимости пакетов, которые будут использоваться для запуска Ansible Semaphore. К ним относятся последняя версия Ansible, сервер PostgreSQL и веб-сервер Nginx. Все эти пакеты по умолчанию доступны в репозитории Debian.

Введите следующую команду для установки Ansible, PostgreSQL и Nginx. Когда появится запрос, введите y и нажмите ENTER.

sudo apt install ansible postgresql nginx

установить ansible nginx postgresql

Установив Ansible, PostgreSQL и Nginx, введите следующую команду, чтобы проверить состояние служб PostgreSQL и Nginx.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Приведенный ниже результат подтверждает, что сервер PostgreSQL включен и автоматически запускается при старте системы. Кроме того, он будет запущен по умолчанию после завершения установки.

проверить postgresql

Ниже приведена команда для проверки службы Nginx.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Приведенный ниже результат подтверждает, что веб-сервер Nginx включен и будет автоматически запускаться при старте системы. Кроме того, он запускается по умолчанию после завершения установки.

проверить nginx

Таким образом, вы установили зависимости пакетов для Ansible Semaphore, которые включают в себя последнюю версию Ansible, сервер базы данных PostgreSQL и веб-сервер Nginx.

Настройка базы данных PostgreSQL

По умолчанию Ansible Semaphore поддерживает несколько баз данных, таких как MySQL/MariaDB, BoldDB и сервер PostgreSQL. После установки сервера PostgreSQL вам предстоит настроить базу данных PostgreSQL и пользователя, который будет использоваться Ansible Semaphore.

Войдите в оболочку PostgreSQL, введя следующую команду. После входа в систему приглашение PostgreSQL примет вид ‘postgres=#’.

sudo -u postgres psql

Теперь введите следующие запросы, чтобы создать новую базу данных PostgreSQL и пользователя, который будет использоваться Ansible Semaphore. В этом примере вы создадите нового пользователя под именем ‘семафор‘ и база данных ‘semaphoredb‘. Также не забудьте изменить пароль в этом запросе.

CREATE USER semaphore WITH PASSWORD 'p4ssw0rdSemaphore';
CREATE DATABASE semaphoredb OWNER semaphore;

создание базы данных и пользователя

Далее введите следующие запросы, чтобы проверить список пользователей и баз данных на сервере PostgreSQL. Если база данных создана, вы должны увидеть базу данных под названием ‘semaphoredb‘ в списке баз данных. Что касается пользователя PostgreSQL, вы должны увидеть пользователя ‘семафор‘ в списке пользователей.

\du
\l

Список пользователей на сервере PostgreSQL.

список пользователей

Список баз данных на сервере PostgreSQL.

список баз данных

Теперь, когда вы создали базу данных и пользователя для Ansible Semaphore. Теперь перейдите к следующему разделу, чтобы начать установку Ansible Semaphore.

Установка Ansible Semaphore

После установки зависимостей пакетов, создания базы данных PostgreSQL и пользователя необходимо установить пакет Ansible Semaphore. Существует несколько пакетов для различных дистрибутивов Linux, посетите официальную страницу Ansible Semaphore на GitHub, чтобы получить подробные версии.

Введите следующую команду, чтобы загрузить файл пакета Debian для Ansible Semaphore. В этом примере вы загрузите последнюю версию Ansible Semaphore с официальной страницы Ansible Semaphore на GitHub.

VER=$(curl -s https://api.github.com/repos/ansible-semaphore/semaphore/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g')
wget -q https://github.com/ansible-semaphore/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.deb

После загрузки файла пакета Debian вы должны увидеть файл ‘semaphore_2.8.77_linux_amd64.deb‘ в текущем рабочем каталоге. Кроме того, во время написания этой статьи последняя версия Ansible Semaphore была следующей 2.8.77.

Теперь введите следующую команду dpkg для установки файла пакета Ansible Semaphore Debian ‘semaphore_${VER}_linux_amd64.deb‘.

sudo dpkg -i semaphore_${VER}_linux_amd64.deb

установить семафор

После установки Ansible Semaphore бинарный файл под названием ‘семафор‘ будет доступен в каталоге ‘/usr/bin’.

Выполните следующую команду, чтобы проверить полный путь к директории ‘семафор‘ двоичный файл.

which semaphore

Затем выполните следующие команды ‘semaphore’, чтобы проверить текущую версию Ansible Semaphore, установленную в вашей системе, и страницу справки команды ‘semaphore’.

semaphore version
semaphore help

проверить семафор

Таким образом, семафор Ansible установлен. Но чтобы продвинуться дальше, вы также можете настроить завершение в bash для ‘семафор‘ командная утилита.

Для этого сначала установите ‘bash-completion‘ пакет в вашу систему Debian с помощью команды apt, приведенной ниже.

sudo apt install bash-completion

После установки ‘bash-completion‘ установлен, откройте файл конфигурации bash ‘~/.bashrc‘ с помощью следующей команды редактора nano.

sudo nano ~/.bashrc

Добавьте следующие конфигурации в конец строки.

if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

source

Save and close the file when finished.

Next, reload the ‘~/.bashrc‘ config file and type the ‘semaphore’ command and press the TAB button to get the list of available options/parameters of the Ansible Semaphore command utility.

source ~/.bashrc
semaphore TAB

Когда автозавершение для Ansible Semaphore настроено, вы должны увидеть список доступных параметров команды следующим образом.

автозаполнение семафора

В этом разделе вы установили пакет Ansible Semaphore из файла пакета Debian. Вы также настроили автозаполнение для ‘семафор‘ командная утилита. На следующем этапе вы настроите установку Ansible Semaphore.

Настройка Ansible Semaphore

После установки Ansible Semaphore вы установите и настроите вашу установку с PostgreSQL по умолчанию в качестве сервера базы данных. Также вы создадите конфигурацию Ansible Semaphore, которая будет храниться в ‘/etc/semaphore‘ директория.

Сначала создайте новый каталог конфигурации ‘/etc/semaphore‘, и переместите в него свой рабочий каталог. Этот каталог будет использоваться для хранения конфигурации семафора Ansible.

mkdir -p /etc/semaphore; cd /etc/semaphore

Теперь введите следующую команду ‘семафор‘ команда для установки и настройки установки Ansible Semaphore.

semaphore setup

После выполнения команды вам будет предложено задать некоторые настройки Ansible Semaphore.

  • Во-первых, выберите номер 3, чтобы настроить Ansible Semaphore с сервером базы данных PostgreSQL. Затем введите имя базы данных PostgreSQL, пользователя и пароль.
  • Что касается пути к Playbook, введите новую директорию, например ‘/opt/playbook’.
  • Для остальных настроек нажмите ENTER, чтобы оставить настройки по умолчанию. Вы сможете настроить их позже, после завершения установки.

Изображение

Далее вам также будет предложено создать нового пользователя-администратора для Ansible Semaphore. Введите свое имя пользователя, адрес электронной почты и пароль. После завершения настройки вы должны получить результат, похожий на этот. Также вы увидите сгенерированный файл конфигурации Ansible Semaphore ‘/etc/semaphore/config.json‘.

настроить семафор

Таким образом, вы настроили установку Ansible Semaphore с сервером базы данных PostgreSQL, а также настроили пользователя и пароль администратора для Ansible Semaphore. Кроме того, вы также настроили каталог пути Playbookj по умолчанию на ‘/opt/semaphore‘.

Теперь вы готовы к запуску Ansible Semaphore. На следующем этапе вы настроите и запустите Ansible Semaphore через Systemd.

Запуск Ansible Semaphore с помощью Systemd

В этом разделе вы создадите новый файл блока systemd, который будет использоваться для управления Ansible Semaphore p[rocessЭтопозволитвамлегкоуправлятьAnsibleSemaphoreспомощьюкоманднойутилитыsystemctl[rocessThisallowsyoueasilytomanageAnsibleSemaphoreviathesystemctlcommandutility

Создайте новый файл блока systemd ‘/etc/systemd/system/semaphore.service’ с помощью следующей команды редактора nano.

sudo nano /etc/systemd/system/semaphore.service

Добавьте в файл следующие строки.

[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore service —config=/etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора после завершения работы.

Теперь введите следующую команду, чтобы перезагрузить менеджер systemd и применить новый файл systemd unit. Теперь вы можете запустить службу Ansible Semaphore с помощью команды systemctl.

sudo systemctl daemon-reload

Введите следующую команду ‘systemctl‘ команда для запуска и включения ‘семафор‘ служба. По умолчанию она запущена на TCP-порту ‘3000‘.

sudo systemctl start semaphore
sudo systemctl enable semaphore

семафор systemd

Затем проверьте значение ‘семафор‘, чтобы убедиться, что служба запущена и включена.

sudo systemctl status semaphore

Выходной сигнал ‘включено‘ подтверждает, что Ansible Semaphore будет запускаться автоматически при старте системы. А статус Ansible Semaphore — запущен.

проверка семафора Ansible

Наконец, вы также можете получить доступ к семафору Ansible через веб-браузер. Откройте веб-браузер и зайдите на IP-адрес сервера, за которым следует порт по умолчанию 3000 (т.е: http://192.168.5.10:3000/). Когда Ansible Semaphore будет запущен, вы увидите страницу входа в веб-приложение Ansible Semaphore.

вход в систему семафора

Теперь, когда семафор Ansible запущен в фоновом режиме как служба systemd и работает на порту по умолчанию 3000. На следующем этапе вы настроите Nginx в качестве обратного прокси для Ansible Semaphore.

Запуск Ansible Semaphore с помощью обратного прокси Nginx

На данный момент вы завершили установку Ansible Semaphore, и теперь он работает на стандартном порту 3000. В этом разделе вы настроите Nginx в качестве обратного прокси для Ansible Semaphore. Прежде чем начать, убедитесь, что у вас есть доменное имя для вашей установки.

Создайте новый файл блока сервера Nginx ‘/etc/nginx/sites-available/semaphore.conf’ с помощью следующей команды редактора nano.

sudo nano /etc/nginx/sites-available/semaphore.conf

Добавьте в файл следующие строки и не забудьте изменить параметр ‘server_name’ на имя вашего домена.

upstream semaphore {
    server 127.0.0.1:3000;
  }

server {
listen 80;
server_name ansible.local;
client_max_body_size 0;
chunked_transfer_encoding on;

location / {
proxy_pass http://semaphore/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_buffering off;
proxy_request_buffering off;
}

location /api/ws {
proxy_pass http://semaphore/api/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_set_header Origin «»;
}
}

Сохраните и закройте файл после завершения работы.

Далее введите следующую команду, чтобы активировать конфигурацию серверного блока ‘semaphore.conf‘. Затем проверьте конфигурацию Nginx, чтобы убедиться, что у вас есть правильные и корректные конфигурационные файлы. После успешного завершения операции вы должны увидеть вывод типа ‘синтаксис в порядке — проверка успешна’.

sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled
sudo nginx -t

Наконец, перезапустите службу Nginx, чтобы применить изменения. Теперь установка Ansible Semaphore доступна с вашего доменного имени.

sudo systemctl restart nginx

настройка семафора nginx

Настройка UFW

В этом примере вы установите и включите брандмауэр на вашей системе Debian с помощью UFW. Вы будете использовать UFW для открытия служб SSH, HTTP и HTTPS.

Сначала установите пакет UFW с помощью команды apt, приведенной ниже. Введите и нажмите ENTER, чтобы продолжить.

sudo apt install ufw

установить ufw

Далее выполните следующую команду, чтобы добавить приложения OpenSSH и ‘Nginx Full’ в UFW. Приложение OpenSSH откроет порт SSH по умолчанию 22 и ‘Nginx Full‘ приложение будет открывать как HTTP, так и HTTPS порты.

sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full"

Теперь выполните следующую команду, чтобы запустить и включить UFW. Введите y и нажмите ENTER для подтверждения.

sudo ufw enable

включить ufw

И наконец, проверьте состояние UFW с помощью следующей команды. Вы должны увидеть UFW с ‘Status: Active»; оба приложения OpenSSH и ‘Nginx Full’ добавлены и доступны в списке правил.

sudo ufw status

статус ufw

Защита семафора Ansible с помощью Letsencrypt

После настройки UFW вам предстоит настроить и защитить Ansible Semaphore с помощью SSL/TLS-сертификатов через Certbot и Letsencrypt. Вы установите Certbot с помощью плагина Certbot-Nginx, а затем сгенерируете SSL/TLS сертификаты с помощью letsencrypt.

Введите следующую команду для установки Certbot и плагина Certbot-Nginx. Когда появится запрос, введите y для подтверждения и нажмите ENTER, чтобы продолжить.

sudo apt install certbot python3-certbot-nginx

установить certbot

После установки Certbot выполните следующую команду, чтобы сгенерировать SSL-сертификаты для вашего доменного имени и защитить установку Ansible Semaphore. Не забудьте изменить адрес электронной почты и доменное имя в этой команде.

sudo certbot --nginx --agree-tos --no-eff-email  --redirect --email [email protected] -d ansible.local

По окончании процесса сертификаты SSL/TLS будут сгенерированы по адресу ‘/etc/letsencrypt/live/yourdomain.com/’ каталог. Также семафор Ansible теперь доступен через защищенное HTTPS-соединение и будет автоматически перенаправлять любые HTTP-запросы на защищенное HTTPS-соединение.

Теперь откройте веб-браузер и зайдите на доменное имя вашей установки Ansible Semaphore (т.е: https://ansible.local/auth/login). Когда вы правильно настроите Nginx и SSL Letsencrypt будет работать, вы должны увидеть страницу входа в Ansible Semaphore.

Введите пользователя и пароль администратора для Ansible Semaphore, затем нажмите SIGN IN для подтверждения.

 

После успешного выполнения вам будет предложено создать первый проект для вашей установки. Введите название проекта и нажмите CREATE.

создание первого проекта

После создания первого проекта вы должны увидеть панель администрирования Ansible Semaphore.

панель управления семафором

Заключение

В этом руководстве вы установили и настроили Ansible Semaphore на сервере Debian 11 с PostgreSQL в качестве сервера базы данных и Nginx в качестве обратного прокси для Ansible Semaphore. Вы узнали о базовом использовании PostgreSQL для создания базы данных и пользователя, а также о базовой конфигурации серверного блока Nginx для обратного прокси.

Кроме того, вы также обеспечили безопасность установки Ansible Semaphore с помощью UFW и SSL/TLS-сертификатов, сгенерированных Letsencrypt.

Теперь вы можете интегрировать свой сборник пьес Ansible в Ansible Semaphore через панель веб-администрирования. Вы также можете настроить несколько систем уведомлений по Email, Slack и многие другие. Для получения более подробной информации посетите официальную документацию приложения Ansible Semaphore.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *