Ansible Semaphore – это веб-интерфейс с открытым исходным кодом для плейбуков Ansible. Он позволяет выполнять развёртывание с помощью автоматизации Ansible через веб-браузер. Ansible Semaphore написан исключительно на языке Go. Его можно запускать на Linux, Windows и macOS.
Ansible Semaphore позволяет развертывать системы через Ansible с помощью интуитивно понятной и отзывчивой панели веб-администрирования. Вы всегда можете откатить и восстановить конфигурацию, а также управлять средами, секретами, инвентарем и ключами доступа. Он также позволяет запускать игровые книги по расписанию с подробными журналами и уведомлениями.
В этом руководстве мы рассмотрим установку Ansible Semaphore на сервер Debian 12. Вы установите Semaphore с PostgreSQL в качестве базы данных и Nginx в качестве обратного прокси.
Предварительные условия
Чтобы начать работу с этим руководством, убедитесь, что у вас есть следующее:
- Сервер Debian 12.
- Некорневой пользователь с правами администратора.
Установка зависимостей
Чтобы установить Ansible Semaphore, необходимо установить в системе такие зависимости, как Ansible, PostgreSQL и Nginx. Вы будете использовать PostgreSQL в качестве базы данных и Nginx в качестве обратного прокси.
Во-первых, выполните приведённую ниже команду для обновления индекса пакетов Debian и установки зависимостей, таких как ansible
, postgresql
база данных, и nginx
веб-сервер.
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx
Вход Y
, чтобы подтвердить установку.
После завершения установки проверьте postgresql
с помощью приведенной ниже команды.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Вы увидите postgresql
служба запущена.
Теперь проверьте nginx
состояние службы с помощью следующих действий:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
В следующем окне вы можете увидеть nginx
веб-сервер запущен.
Наконец, проверьте ansible
версию с помощью команды ниже. Ansible 2.14 должен быть установлен на вашей системе Debian.
ansible –version
Настройка базы данных
Теперь, когда вы установили зависимости, настройте PostgreSQL и создайте новую базу данных и пользователя, которые будет использовать Ansible Semaphore.
Войдите на сервер PostgreSQL, выполнив следующую команду:
sudo -u postgres psql
Теперь выполните приведенные ниже запросы, чтобы создать новую базу данных semaphoredb
и пользователя semaphore
. Настройте пароль в соответствии с вашими данными.
CREATE USER semaphore WITH PASSWORD ‘passw0rd’;
CREATE DATABASE semaphoredb OWNER semaphore;
Далее выполните следующие запросы, чтобы проверить список баз данных и пользователей в PostgreSQL. Вы увидите нового пользователя semaphore
и база данных semaphoredb
доступны.
\du
\l
Наконец, введите quit
для выхода из PostgreSQL.
Установка Ansible Semaphore
Ansible Semaphore предоставляет пакеты для различных дистрибутивов Linux, включая Debian/Ubuntu. Вы можете скачать DEB-файл Ansible Semaphore и установить его с помощью команды dpkg
командой.
Загрузите пакет Ansible Semaphore debian с помощью следующей команды:
VER=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest|grep tag_name | cut -d ‘”‘ -f 4|sed ‘s/v//g’)
wget -q https://github.com/semaphoreui/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.deb
После загрузки установите Ansible Semaphore с помощью команды dpkg
командой ниже:
sudo dpkg -i semaphore_${VER}_linux_amd64.deb
Ниже вы можете видеть, что установка завершена.
Теперь выполните приведенную ниже команду, чтобы найти semaphore
двоичный файл, который должен быть доступен по адресу /usr/bin/semaphore
.
какой семафор
Проверьте версию Ansible Semaphore с помощью следующей команды. Вы увидите, что установлен Ansible Semaphore 2.9.
версия семафора
помощь по семафору
Настройка семафора в Ansible
В этом разделе вы настроите директорию установки Ansible Semaphore, интегрируете Semaphore с PostgreSQL, а затем установите пользователя и пароль администратора для Semaphore. После этого вы также запустите Semaphore в фоновом режиме как службу systemd.
Создайте новый каталог конфигурации /etc/semaphore
и войдите в него. Затем запустите программу semaphore setup
команду для настройки Ansible Semaphore.
mkdir -p /etc/semaphore; cd /etc/semaphore semaphore setup
- Вход
3
для использования PostgreSQL в качестве базы данных. - Вход
/opt/playbook
для настройки каталога плейбуков по умолчанию. - Нажмите ENTER и оставьте публичный URL по умолчанию.
- Нажмите ENTER, чтобы использовать настройки уведомлений по умолчанию.
- Введите имя пользователя, пароль и адрес электронной почты администратора. Это имя будет использоваться для входа в веб-приложение Ansible Semaphore.
После завершения процесса вы увидите подтверждение, показанное ниже:
Теперь, когда вы настроили Ansible Semaphore, создайте новую службу systemd и запустите Ansible Semaphore в фоновом режиме.
Создание нового файла службы 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
Сохраните файл и выйдите из редактора.
Далее запустите программу systemctl
команду ниже, чтобы перезагрузить менеджер systemd и применить внесенные изменения.
sudo systemctl daemon-reload
Наконец, выполните приведенную ниже команду, чтобы запустить и включить semaphore
службу. Затем проверьте службу, чтобы убедиться, что она запущена.
sudo systemctl enable –now semaphore
sudo systemctl status semaphore
Ниже вы можете видеть, как semaphore
служба запущена. По умолчанию она работает на порту 3000
.
Настройка Nginx в качестве обратного прокси-сервера
Теперь, когда Semaphore запущен, вам нужно настроить Nginx в качестве обратного прокси для вашей установки Semaphore. Убедитесь, что у вас готово доменное имя (локальное или публичное).
Создайте новую конфигурацию серверного блока /etc/nginx/sites-available/semaphore.conf
с помощью nano
редактором.
sudo nano /etc/nginx/sites-available/semaphore.conf
Вставьте следующую конфигурацию, чтобы настроить Nginx в качестве обратного прокси для Ansible Semaphore, работающего на порту 3000
. Обязательно измените server_name
на ваше доменное имя.
upstream semaphore {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name auto.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. Если синтаксис правильный, вы увидите вывод test is successful - syntax is ok
.
sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t
Наконец, выполните следующие действия systemctl
, чтобы перезапустить Nginx и применить изменения.
sudo systemctl restart nginx
Защита Ansible Semaphore с помощью HTTPS
Чтобы обезопасить установку Ansible Semaphore, вы включите HTTPS поверх обратного прокси Nginx. Вы будете использовать Certbot для генерации и настройки HTTPS для Semaphore.
Установить certbot
и python3-certbot-nginx
пакеты с помощью следующей команды:
sudo apt install certbot python3-certbot-nginx -y
После завершения установки запустите команду certbot
, чтобы сгенерировать SSL/TLS-сертификаты для установки Ansible Semaphore. Не забудьте изменить домен и адрес электронной почты на свои данные.
sudo certbot –nginx –agree-tos –no-eff-email –redirect –email [email protected] -d auto.local
После завершения процесса ваши SSL-сертификаты будут доступны по адресу /etc/letsencrypt/live/domain.com
, и ваша установка Semaphore будет защищена HTTPS.
Вход в Ansible Semaphore
Зайдите на свой домен Semaphore, который находится по адресу https://auto.local/. Если установка прошла успешно, вы увидите страницу входа в Ansible Semaphore.
Введите пользователя admin и пароль, а затем нажмите кнопку ВОЙТИ подтвердить.
Теперь введите название вашего первого проекта и нажмите кнопку Далее , чтобы продолжить.
Вы увидите приборную панель Semaphore, как показано ниже:
Заключение
Поздравляем! Вы завершили установку Ansible Semaphore на сервер Debian 12. Вы установили Semaphore с сервером PostgreSQL и веб-сервером Nginx. Вы также защитили Семафор с помощью HTTPS через certbot
и Letsencrypt.