В этом руководстве мы установим СемафорAnsible Web UI на CentOS 9. Semaphore — это веб-решение с открытым исходным кодом, которое делает Ansible простым в использовании для ИТ-команд всех видов. Он предоставляет вам веб-интерфейс, с которого вы можете запускать и управлять задачами Ansible.
Установка Semaphore Ansible Web UI на CentOS 9
Семафор зависит от следующих инструментов:
- Базы данных на выбор есть 3 варианта Mysql, BoltDB, PostgreSQL
- Распределённая система управления версиями Git
- Система управления конфигурациями ansible Ansible
Мы начнем установку, убедившись, что эти зависимости установлены на вашем сервере CentOS 9. Поэтому следуйте инструкциям в следующих разделах, чтобы убедиться, что все настроено.
Перед любой установкой мы рекомендуем вам выполнить обновление на уровне ОС:
[s@Semafor ~]$sudo yum update
После обновление желательно перезагрузится.
[s@Semafor ~]$sudo reboot
Шаг 1: Установка сервера базы данных Mysql
У нас есть подробное руководство по установке Mysql на CentOS 9. Выполните команды ниже, чтобы установить последнюю стабильную версию сервера базы данных Mysql.
Выполняем сперва поиск
[s@Semafor ~]$ yum search mysql Extra Packages for Enterprise Linux 9 - x86_64 5.3 MB/s | 22 MB 00:04 =================================================================== Имя и Краткое описание совпадение: mysql =================================================================== mysql.x86_64 : MySQL client programs and shared libraries MySQL-zrm.noarch : MySQL backup manager anope-mysql.x86_64 : MariaDB/MySQL modules for Anope IRC services ansible-collection-community-mysql.noarch : MySQL collection for Ansible apr-util-mysql.x86_64 : APR utility library MySQL DBD driver asterisk-mysql.x86_64 : Applications for Asterisk that use MySQL collectd-mysql.x86_64 : MySQL plugin for collectd dovecot-mysql.x86_64 : MySQL back end for dovecot exim-mysql.x86_64 : MySQL lookup support for Exim mysql-selinux.noarch : SELinux policy modules for MySQL and MariaDB packages mysql-server.x86_64 : The MySQL server and related files mysqltuner.noarch : MySQL configuration assistant nagios-plugins-mysql.x86_64 : Nagios Plugin - check_mysql
Находим подходящий пакет, это будет у нас mysql-server.x86_64
Выполняем установку
[s@Semafor ~]$ yum install mysql-server.x86_64
Шаг 2: Установка git на CentOS 9
Выполняем поиск
[s@Semafor ~]$ yum search git Последняя проверка окончания срока действия метаданных: 0:04:34 назад, Пн 05 авг 2024 16:16:45. ====================================================================================== Имя точное соответствие: git git.x86_64 : Fast Version Control System ================================================================================= Имя и Краткое описание совпадение: git cgit.x86_64 : A fast web interface for git copr-distgit-client.x86_64 : Utility to download sources from dist-git
Находим подходящий пакет, это будет у нас git.x86_64
[s@Semafor ~]$ yum install git.x86_64
Шаг 3: Установку Ansible
Выполняем поиск
[s@Semafor ~]$ yum search ansible ansible.noarch : Curated set of Ansible collections included in addition to ansible-core ansible-collection-ansible-posix.noarch : Ansible Collection targeting POSIX and POSIX-ish platforms ansible-collection-awx-awx.noarch : Ansible modules and plugins for working with AWX ansible-collection-chocolatey-chocolatey.noarch : Ansible collection for Chocolatey ansible-collection-community-crypto.noarch : The community.crypto collection for Ansible ansible-collection-community-docker.noarch : Ansible modules and plugins for working with Docker ansible-collection-community-general.noarch : Modules and plugins supported by Ansible community ansible-collection-community-rabbitmq.noarch : RabbitMQ collection for Ansible ansible-collection-containers-podman.noarch : Podman Ansible collection for Podman containers ansible-collection-mdellweg-filters.noarch : An Ansible collection of random filters I missed at some point
Находим подходящий пакет, это будет у нас ansible.noarch
Шаг 4: Загрузите Semaphore
Посетите страницу релизов Semaphore и скопируйте ссылку на загрузку для вашей ОС. Выбираем подходящий пакет в нашем случае semaphore_2.10.22_linux_386.rpm
Скачиваем с помощью wget
wget https://github.com/semaphoreui/semaphore/releases/download/v2.10.22/semaphore_2.10.22_linux_386.rpm --2024-08-05 16:38:25-- https://github.com/semaphoreui/semaphore/releases/download/v2.10.22/semaphore_2.10.22_linux_386.rpm Распознаётся github.com (github.com)… 140.82.121.3 Подключение к github.com (github.com)|140.82.121.3|:443... соединение установлено. HTTP-запрос отправлен. Ожидание ответа… 302 Found Адрес: https://objects.githubusercontent.com/github-production-release-asset-2e65be/23267883/6c3da6cf-906b-4cf3-933a-62394e4257ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240805%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240805T123826Z&X-Amz-Expires=300&X-Amz-Signature=5dbd45815385649f0e425bd87e044d21e5ff3e65c1c53b23949f644d56bf1900&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=23267883&response-content-disposition=attachment%3B%20filename%3Dsemaphore_2.10.22_linux_386.rpm&response-content-type=application%2Foctet-stream [переход] --2024-08-05 16:38:26-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/23267883/6c3da6cf-906b-4cf3-933a-62394e4257ec?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240805%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240805T123826Z&X-Amz-Expires=300&X-Amz-Signature=5dbd45815385649f0e425bd87e044d21e5ff3e65c1c53b23949f644d56bf1900&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=23267883&response-content-disposition=attachment%3B%20filename%3Dsemaphore_2.10.22_linux_386.rpm&response-content-type=application%2Foctet-stream Распознаётся objects.githubusercontent.com (objects.githubusercontent.com)… 185.199.111.133, 185.199.109.133, 185.199.108.133, ... Подключение к objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... соединение установлено. HTTP-запрос отправлен. Ожидание ответа… 200 OK Длина: 10458620 (10,0M) [application/octet-stream] Сохранение в: «semaphore_2.10.22_linux_386.rpm.1» semaphore_2.10.22_linux_386.rpm.1 100%[===============================================================================================================>] 9,97M 7,27MB/s за 1,4s 2024-08-05 16:38:28 (7,27 MB/s) - «semaphore_2.10.22_linux_386.rpm.1» сохранён [10458620/10458620]
Шаг 5. Устанавливаем Semaphore с помощью rpm
[s@Semafor ~]$ rpm -i semaphore_2.10.22_linux_386.rpm
Проверяем куда установилось
[s@Semafor svet]# which semaphore /bin/semaphore
Шаг 6. Теперь запускаем настройку
semaphore setup
Hello! You will now be guided through a setup to:
- Set up configuration for a MySQL/MariaDB database
- Set up a path for your playbooks (auto-created)
- Run database Migrations
- Set up initial semaphore user & password
What database to use:
1 — MySQL
2 — BoltDB
3 — PostgreSQL
(default 1): 1
db Hostname (default 127.0.0.1:3306):
db User (default root): root
db Password:
db Name (default semaphore): semaphore
Playbook path (default /tmp/semaphore): /opt/semaphore
Public URL (optional, example: https://example.com/semaphore):
Enable email alerts? (yes/no) (default no):
Enable telegram alerts? (yes/no) (default no):
Enable slack alerts? (yes/no) (default no):
Enable Rocket.Chat alerts? (yes/no) (default no):
Enable Microsoft Team Channel alerts? (yes/no) (default no):
Enable LDAP authentication? (yes/no) (default no):
Config output directory (default /var/log): /etc/semaphore
Running: mkdir -p /etc/semaphore..
Configuration written to /etc/semaphore/config.json..
Loading config
Validating config
Pinging db..
Running db Migrations..
Username: sv
Email: sv@gmail.com
Welcome back, sv! (a user with this username/email is already set up..)
Re-launch this program pointing to the configuration file
./semaphore server —config /etc/semaphore/config.json
To run as daemon:
nohup ./semaphore server —config /etc/semaphore/config.json &
You can login with sv@gmail.com or sv.
Шаг 7. Создаем файл в папке /etc/systemd/system/ под названием semaphore.services с таким описанием
[Unit] Description=Semaphore Ansible UI Documentation=https://github.com/ansible-semaphore/semaphore Wants=network-online.target After=network-online.target [Service] Type=simple ExecReload=/bin/kill -HUP $MAINPID ExecStart=/bin/semaphore server --config /home/svet/config.json SyslogIdentifier=semaphore Restart=always [Install] WantedBy=multi-user.target
Шаг 8. Записываем в загрузку и включаем simaphore
[s@Semafor system]# systemctl enable semaphore Created symlink /etc/systemd/system/multi-user.target.wants/semaphore.service → /etc/systemd/system/semaphore.service. [s@Semafor system]# systemctl start semaphore
Шаг 9. Проверяем запустился ли Semaphore и прослушивает ли порт 3000
[s@Semafor system]# systemctl | grep semap run-snapd-ns-semaphore.mnt.mount loaded active mounted /run/snapd/ns/semaphore.mnt var-lib-snapd-snap-semaphore-292.mount loaded active mounted Mount unit for semaphore, revision 292 semaphore.service loaded active running Semaphore Ansible UI [s@Semafor system]# sudo ss -tunelp | grep 3000 tcp LISTEN 0 4096 *:3000 *:* users:(("semaphore",pid=1288,fd=8)) ino:21747 sk:4 cgroup:/system.slice/snap.semaphore.semaphored.service v6only:0 <->
Шаг 10. Заходим на сайт, по умолчанию он запускается на 3000 порту. Логин и пароль который вы указывали при установке.