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:


Share:

Aviso importante!

Não realizamos upload dos ficheiros, apenas reportamos os links que encontramos na própria Internet. Assim, toda e qualquer responsabilidade não caberá ao administrador deste blog. Este blog não tem como objetivo reproduzir as obras, apenas divulgar o que foi encontrado na Internet. Os filmes aqui informados são de cunho científico assim como as séries, as quais são produzidas para exibição em TV aberta. Uma vez que a série não tenha sido ripada de um DVD, ou seja, a mesma foi gravada do sinal de TV aberta com o respectivo selo da emissora. Não é caracterizado crime, pois a mesma foi produzida para exibição pública. Será crime quando for realizado venda desta série ou filme. Quem efetuar download de qualquer ficheiro deste blog, que não tenha seu conteúdo de base Open Source (Código Aberto), ou FOSS (Free Open Source Software), deverá estar ciente que terá 24 horas para eliminar os ficheiros que baixou. Após assistir e gostar do filme ou série, adquira o original via lojas especializadas. Se algo contido no blog lhe causa dano ou prejuízo, entre em contato que iremos retirar o ficheiro ou post o mais rápido possível. Se encontrou algum post que considere de sua autoria, favor enviar e-mail para suporte@delphini.com.br informando o post e comprovando sua veracidade. Muito obrigado a todos que fizeram deste blog um sucesso.

Creative CommonsEsta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra.Você não pode criar obras derivadas.

Nossos 10 Posts Mais Populares