Instalando a Web Semaphore Ansible UI no CentOS 7


Neste guia, vamos instalar a UI do Semaphore Ansible Web no CentOS 7. O Semaphore é uma solução baseada na Web de código aberto que torna o Ansible fácil de usar para equipes de TI de todos os tipos. Ele fornece uma interface da Web de onde você pode iniciar e gerenciar tarefas do Ansible.

Semaphore depende das seguintes ferramentas:
  • MySQL >= 5.6.4/MariaDB >= 5.3;
  • Ansible;
  • Git >= 2.x.
Vamos iniciar a instalação garantindo que essas dependências estejam instaladas em seu servidor CentOS 7. Portanto, siga as etapas nas próximas seções para garantir que tudo esteja definido.

Etapa 1: Instalar o servidor de banco de dados MariaDB:

 Use este post para instalar o MariaDB em seu CentOS.

OBS: Lembre-se de anotar a senha do root configurada no servidor de banco de dados.

Etapa 2: Instalando a versão mais recente do Git (Git 2.x) no CentOS 7:

Confirme a versão do git.
$ git --version
git version 2.16.5

Etapa 3: Instalar o Ansible:
Instale o Ansible em seu servidor CentOS 7.
sudo yum -y install epel-release
sudo yum -y install ansible

Teste a disponibilidade do Ansible e sua versão com este comando:
$ 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/site-packages/ansible
   executable location = /usr/bin/ansible
   python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

Etapa 4: Baixando o Semaphore:
Visite a pagina de Releases do Semaphore ou copie o link para baixar o mesmo no seu Sistema Operacional.

Agora instale o pacote do Semaphore:
$ sudo rpm -Uvh semaphore_2.5.1_linux_amd64.rpm
 Preparing…                          ################################# [100%]
 Updating / installing…
    1:semaphore-2.5.1-1                ################################# [100%]


Valide se o binário do Semaphore está presente no seu $PATH:
$ which semaphore
/usr/bin/semaphore

$ semaphore  -version
v2.5.1

Etapa 5: Faça o setup do Semaphore:
Execute o seguinte comando para iniciar a configuração (setup) do Semaphore em seu sistema.
# 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:   
   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 

Confirme se esses valores estão corretos para iniciar a configuração.
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

Vamos definir o nome de usuário.
Username: computingforgeeks
Email: computingforgeeks@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 computingforgeeks@example.com or computingforgeeks.

Você pode definir outros valores de configuração no arquivo /root/config.json.

Etapa 6: Configurando o SystemD:

Agora vamos configurar a interface do usuário do Semaphore Ansible para ser gerenciada pelo SystemD. Crie o arquivo da unidade de serviço SystemD.
sudo vim /etc/systemd/system/semaphore.service

E adicione isto:
[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


Crie o diretório de configurações Semaphore:
sudo mkdir /etc/semaphore

Copie seu arquivo de configuração para o diretório criado:
sudo ln -s /root/config.json /etc/semaphore/config.json

Vamos parar a execução das instâncias do Semaphore:
sudo pkill semaphore

Confirme:
ps aux | grep sema

Recarregue o SystemD e inicie o serviço do Semaphore:
sudo systemctl daemon-reload
sudo systemctl start semaphore

Verifique o status para ver se está sendo executado:
$ 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

Configure o serviço para iniciar no boot do Sistema Operacional:
$ sudo systemctl enable semaphore
Created symlink /etc/systemd/system/multi-user.target.wants/semaphore.service → /etc/systemd/system/semaphore.service.

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

Etapa 7: Configurar o Proxy Ngnx (Opcional).
Para poder acessar a interface da Web Semaphore com um nome de domínio, use a guia da URL abaixo para configurar.

URL Como configurar o Proxy Nginx para interface da Web Semaphore Ansible.


Etapa 8: Acessando a interface da Web Semaphore Ansible:
No seu navegador, abra o Web Semaphore Ansible, digitando o IP do seu servidor seguindo da porta 3000. Caso tenha realizado a Etapa 7 digite o domínio configurado. Você deve receber a imagem mostrada a seguir.
Use o nome de usuário ou e-mail criado anteriormente durante a instalação para entrar. O console da Web para o Semaphore deve ser mostrado após a autenticação. Como mostrado na imagem a seguir.

Você está pronto para gerenciar seus servidores com uma interface, o Web Semaphore Ansible UI é poderoso, e muito pratico de usar.

As etapas iniciais necessárias são:
  • Adicionar as chaves (Keys) SSH e chaves (Keys) API usadas pelo Ansible - Em Key Store > Create Key.

  • Criar um arquivo de inventário com servidores que vamos gerenciar - Em Inventory > Create Inventory.

  • Crie os usuários e adicione à(s) equipe(s);
  • Crie os ambientes;
  • Adicione os repositórios dos Playbooks.

  • Crie modelos de tarefas e execute.
Para além disso, verifique um guia detalhado sobre a interface do Web Semaphore Ansible UI, na URL a seguir.


Para instalação em Ubuntu ou Debian, verifique em:


Nenhum comentário

Tecnologia do Blogger.