🖍 Как настроить Semaphore Ansible Web UI в Ubuntu / Debian |

🖍 Как настроить Semaphore Ansible Web UI в Ubuntu / Debian

Мануал

Добро пожаловать в наше руководство по установке Semaphore Ansible Web UI в Ubuntu / Debian.

Semaphore – это альтернатива Ansible Tower с открытым исходным кодом. Он позволяет запускать и управлять Ansible Tasks из веб-интерфейса.

Semaphore имеет следующие зависимости:

  • MySQL >= 5.6.4/MariaDB >= 5.3
  • ansible
  • git >= 2.x

Мы рассмотрим установку Semaphore в линейке дистрибутивов Debian и Ubuntu.

Как установить Semaphore в Ubuntu / Debian

Вот шаги, которые вы должны выполнить, чтобы установить Semaphore в системе Ubuntu / Debian.

Шаг 1: Обновите систему и установите git

Начните работу с обновленной системы с установленным git.

sudo apt-get update
sudo apt-get -y install git curl wget

Убедитесь, что установлена версия Git = 2.x.

# Ubuntu 18.04
$ git --version
git version 2.17.1

# Debian 9
$ git --version
git version 2.11.0

Шаг 2: Установите Ansible

Добавьте Ansible PPA репозиторий и установите Ansible.

Для Ubuntu

sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible -y

Для Debian 9

echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/ansible.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt update
sudo apt-get install ansible -y

Подтвердите, что Ansible установлен.

$ ansible --version
ansible 2.7.9
   config file = /etc/ansible/ansible.cfg
   configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
   ansible python module location = /usr/lib/python2.7/dist-packages/ansible
   executable location = /usr/bin/ansible
   python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]

Шаг 3: Установите сервер базы данных MariaDB / MySQL

Вы можете выбрать сервер базы данных MySQL или MariaDB.

Мы сделаем на примере MariaDB в этом уроке.

sudo apt-get -y install mariadb-server

Установите пароль root при появлении запроса.

Шаг 4: Скачайте Semaphore

Посетите страницу релизов и скопируйте ссылку на скачивание для вашей ОС.

wget https://github.com/ansible-semaphore/semaphore/releases/download/v2.5.1/semaphore_2.5.1_linux_amd64.deb

Установите загруженный пакет Debian.

$ sudo dpkg -i semaphore_2.5.1_linux_amd64.deb
Selecting previously unselected package semaphore.
(Reading database … 38297 files and directories currently installed.)
Preparing to unpack semaphore_2.5.1_linux_amd64.deb …
Unpacking semaphore (2.5.1) …
Setting up semaphore (2.5.1) …

Проверьте, есть ли у вас двоичный файл в вашем $PATH.

$ which semaphore
/usr/bin/semaphore

$ semaphore  -version
v2.5.1

Шаг 4: Настройка Semaphore

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

# 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 
   DB Hostname (default 127.0.0.1:3306): 127.0.0.1:3306
   DB User (default root): root
   DB Password: <root Password>  
   DB Name (default semaphore): semaphore
   Playbook path (default /tmp/semaphore): /opt/semaphore
   Web root URL (optional, example http://localhost:8010/):  http://localhost:8010/
   Enable email alerts (y/n, default n): n
   Enable telegram alerts (y/n, default n): n
   Enable LDAP authentication (y/n, default n): n 

Если вы решите включить оповещения по электронной почте / телеграмме или аутентификацию LDAP, установите соответствующие значения.

Подтвердите сгенерированную конфигурацию и согласитесь начать установку.

Generated configuration:
  {
      "mysql": {
          "host": "127.0.0.1:3306",
          "user": "root",
          "pass": "password",
          "name": "semaphore"
      },
      "port": "",
      "tmp_path": "/opt/semaphore",
      "cookie_hash": "0Jpz8DrxGg02+Bx7P3lDPa+Tdu0nOEw6HwKMu22Oo60=",
      "cookie_encryption": "I3hI3Fgitr5OMOOWmnaR59hxLUP6FlnAPdL/WJbSlO0=",
      "email_sender": "",
      "email_host": "",
      "email_port": "",
      "web_host": "http://localhost:8010/",
      "ldap_binddn": "",
      "ldap_bindpassword": "",
      "ldap_server": "",
      "ldap_searchdn": "",
      "ldap_searchfilter": "",
      "ldap_mappings": {
          "dn": "",
          "mail": "",
          "uid": "",
          "cn": ""
      },
      "telegram_chat": "",
      "telegram_token": "",
      "concurrency_mode": "",
      "max_parallel_tasks": 0,
      "email_alert": false,
      "telegram_alert": false,
      "ldap_enable": false,
      "ldap_needtls": false
  }

Убедитесь, что эти значения верны, чтобы начать настройку.

 Is this correct? (yes/no): yes
 Config output directory (default /root): 
 WARN[0037] An input error occured:unexpected newline    
 Running: mkdir -p /root..
 Configuration written to /root/config.json..
 Pinging db.. 
 Running DB Migrations..
 Checking DB migrations
 Creating migrations table
......
Migrations Finished

Установите имя пользователя

Username: itsecforu
Email: itsecforus@example.com
WARN[0268] sql: no rows in result set                    level=Warn
 Your name: computingforgeeks
 Password: StrongPassword 
 You are all setup computingforgeeks!
 Re-launch this program pointing to the configuration file
 ./semaphore -config /root/config.json

To run as daemon:
 nohup ./semaphore -config /root/config.json &
You can login with itsecforu@example.com or itsecforu.

Вы можете установить другие значения конфигурации в файле /root/config.json.

Шаг 5: Запустите cервис

Теперь, когда мы завершили настройку, давайте начнем.

semaphore -config /root/config.json &

Шаг 6: Настройте Systemd

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

Создайте файл системного сервисного модуля.

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

Добавьте

[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=/usr/bin/semaphore -config /etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always

[Install]
WantedBy=multi-user.target

Создать каталог конфигураций:

sudo mkdir /etc/semaphore

Скопируйте файл конфигурации в созданный каталог:

sudo ln -s /root/config.json /etc/semaphore/config.json

Убейте процесс

sudo pkill semaphore

Подтверждение:

ps aux | grep sema

Перезагрузите systemd и запустите сервис.

sudo systemctl daemon-reload
sudo systemctl start semaphore

Проверьте статус, чтобы увидеть, что служба работает:

$ systemctl status semaphore 
 ● semaphore.service - Semaphore Ansible UI
    Loaded: loaded (/etc/systemd/system/semaphore.service; disabled; vendor preset: enabled)
    Active: active (running) since Thu 2019-04-04 22:49:24 CEST; 31s ago
      Docs: https://github.com/ansible-semaphore/semaphore
  Main PID: 9779 (semaphore)
    CGroup: /system.slice/semaphore.service
            └─9779 /usr/bin/semaphore -config /etc/semaphore/config.json
 Apr 04 22:49:24 mydebian systemd[1]: Started Semaphore Ansible UI.
 Apr 04 22:49:24 mydebian semaphore[9779]: Using config file: /etc/semaphore/config.json
 Apr 04 22:49:24 mydebian semaphore[9779]: Semaphore v2.5.1
 Apr 04 22:49:24 mydebian semaphore[9779]: Port :3000
 Apr 04 22:49:24 mydebian semaphore[9779]: MySQL root@127.0.0.1:3306 semaphore
 Apr 04 22:49:24 mydebian semaphore[9779]: Tmp Path (projects home) /opt/semaphore
 Apr 04 22:49:24 mydebian semaphore[9779]: Checking DB migrations

Установите службу для запуска при загрузке системы.

$ sudo systemctl enable semaphore
Created symlink /etc/systemd/system/multi-user.target.wants/semaphore.service → /etc/systemd/system/semaphore.service.

Порт 3000 должен быть открыт

# ss -tunelp | grep 3000
 tcp    LISTEN     0      128      :::3000  :::*   users:(("semaphore",pid=9779,fd=3)) uid:999 ino:45866 sk:6 v6only:0 <->

Шаг 7: Доступ к веб-интерфейсу Semaphore

В вашем веб-браузере откройте IP-адрес сервера семафора на порту 3000.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий