User Tools

Site Tools


Sidebar


Здравствуйте!

Меня зовут Михаил!
Я системный администратор
и наполняю эту wiki,
решая разнообразные IT-задачки.

Моя специализация - виртуализация!

Я всегда готов помочь Вам
наладить IT-инфраструктуру
за скромное вознаграждение!

mike@autosys.tk
+7 (910) 911-96-23

linux_faq:ansible_with_semaphore_ui

https://github.com/ansible-semaphore/semaphore/wiki/Installation

sudo apt-get update && sudo apt-get upgrade                                                                                                                                                            
sudo apt-get install git ansible mysql-server
wget https://github.com/ansible-semaphore/semaphore/releases/download/v2.5.1/semaphore_2.5.1_linux_amd64.deb
sudo dpkg -i ./semaphore_2.5.1_linux_amd64.deb

Создаем базу данных:

 sudo mysql


mysql> CREATE DATABASE semaphore;
Query OK, 1 row affected (0.04 sec)

mysql> CREATE USER 'semaphore'@'localhost' IDENTIFIED BY 'superpassword';
Query OK, 0 rows affected (0.06 sec)

mysql> GRANT ALL PRIVILEGES ON semaphore.* TO 'semaphore'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

mysql> exit

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

sudo semaphore -setup

Для аутентификации пользователей из AD нужно включить LDAP. Эта часть конфига должна выглядеть так:

        "ldap_binddn": "semaphore",
        "ldap_bindpassword": "semaphore_password",
        "ldap_server": "dc.local:389",
        "ldap_searchdn": "OU=Users,DC=domain,DC=local",
        "ldap_searchfilter": "(sAMAccountName=%s)",
        "ldap_mappings": {
                "dn": "dn",
                "mail": "mail",
                "uid": "sAMAccountName",
                "cn": "cn"
        },
        "ldap_enable": true,
        "ldap_needtls": false

С начала я пытался сконфигурировать параметр “ldap_binddn” в виде CN=semaphore,OU=Users,DC=domain,DC=local, однако это приводило к ошибкам вида:

time="2018-09-26T08:48:22Z" level=info msg="LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 52e, v3839"

После довольно продолжительных попыток я обнаружил, что “ldap_binddn” должен содержать просто логин (а не distinguished name) пользователя, который будет обращаться к LDAP.
Также, вместо uid нужно использовать sAMAccountName. В противном случае можно увидеть такую ошибку:

time="2018-09-26T13:45:35Z" level=info msg="User does not exist or too many entries returned"

Запуск semaphore в виде сервиса

/etc/systemd/system/semaphore.service

[Unit]
Description=Ansible Semaphore
After=syslog.service
Before=nginx.service
Requires=network.target

[Service]
Type=forking
EnvironmentFile=-/etc/default/ansible-semaphore
ExecStart=/bin/sh -c "/usr/bin/semaphore -config ${SEMAPHORE_CONFIG} >> ${SEMAPHORE_LOGS} 2>&1 &"
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target


/etc/default/ansible-semaphore

#Ansible Semaphore Defaults

SEMAPHORE_CONFIG=/data/ansible-semaphore/semaphore_config.json
SEMAPHORE_LOGS=/var/log/semaphore.log

Discussion

Enter your comment. Wiki syntax is allowed:
R G C​ Z V
 
linux_faq/ansible_with_semaphore_ui.txt · Last modified: 2018/10/13 22:23 by admin