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

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 , чтобы подтвердить установку.

установить deps

После завершения установки проверьте postgresql с помощью приведенной ниже команды.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Вы увидите postgresql служба запущена.

проверить postgresql

Теперь проверьте nginx состояние службы с помощью следующих действий:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

В следующем окне вы можете увидеть nginx веб-сервер запущен.

проверить nginx

Наконец, проверьте ansible версию с помощью команды ниже. Ansible 2.14 должен быть установлен на вашей системе Debian.

ansible –version

проверить версию ansible

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

Теперь, когда вы установили зависимости, настройте 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.

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

После завершения процесса вы увидите подтверждение, показанное ниже:

создание пользователя admin

Теперь, когда вы настроили 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

семафор 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.

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

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