# Instalação com Ansible

## Introdução

Este manual descreve os procedimentos de instalação do GBDS.

## Preparativos para Instalação

Esta seção abrange as etapas essenciais necessárias para a instalação do GBDS.

{% hint style="warning" %}
Todas as etapas devem ser executadas com privilégios de root em todos os nós, salvo indicação em contrário.
{% endhint %}

Para instalar totalmente o GBDS, você precisará de:

* Permissão de root no servidor
* Link do pacote de ferramentas GBDS
* Link do pacote Ambari Ansible
* Link do pacote OpenCV
* Arquivos .rpm e .sql do GBDS
* Arquivos .war e .sql dos softwares do Griaule Biometric Suite (opcional)

{% hint style="info" %}
Caso não tenha os links do repositório ou os arquivos, entre em contato com a equipe de suporte da Griaule.
{% endhint %}

Em seguida, você deve seguir os passos apresentados abaixo. Essas etapas serão totalmente descritas em suas seções.

1. Faça login no servidor como root
2. [Instale o GBDS Tools](#instalando-o-gbds-tools)
3. [Configure os arquivos de configuração do GBDS Tools](#configurando-o-gbds-tools)
4. [Execute a configuração automática do ambiente GBDS Tools](#executando-a-configuracao-automatica-do-ambiente)
5. [Instale o RDB](#instalando-o-rdb)
6. [Instale o Ambari via Ansible](#instalando-o-ambari)
7. [Instale o GBDS](#instalando-o-gbds)
8. [Instale as aplicações GBS (opcional)](#instalando-as-aplicacoes-gbs)

{% hint style="success" %}
Antes de começar, certifique-se de que o `hostname` da máquina está correto. Para verificar, execute o comando:

```shell
hostname
```

Se não estiver correto, rode o comando:

```shell
hostnamectl set-hostname <hostname-desejado>
                         ^^^^^^^^^^^^^^^^^^^
```

{% endhint %}

Se o hostname for modificado, reinicie a máquina antes de prosseguir.

## GBDS Tools

GBDS Tools é uma compilação de scripts bash com características específicas e usabilidade dinâmica. O objetivo principal da ferramenta é facilitar, aprimorar e acelerar a criação, configuração e gerenciamento de aplicações do ambiente.

Todos os scripts usam um único arquivo de configuração chamado `properties.ini` e um único arquivo de lista chamado `cluster.list`, que deve conter todas as informações do grupo de servidores.

{% hint style="success" %}
Antes de começar, certifique-se de que o `wget` está instalado:

```shell
wget --version
```

Se não estiver, rode o comando:

```shell
yum install wget -y
```

{% endhint %}

### Instalando o GBDS Tools

Você tem dois métodos para escolher instalar o GBDS Tools, um se tiver o repositório Griaule já configurado no seu servidor e outro se não tiver. Estes são explicados abaixo.

{% hint style="info" %}
Escolha apenas uma alternativa. Após terminar um, não há necessidade de realizar o outro.
{% endhint %}

#### Repositório já configurado

Se você já configurou o repositório Griaule no seu servidor, você pode concluir todas as instalações com apenas um comando.

```shell
yum install gbds-tools
```

{% hint style="danger" %}
Se o repositório Griaule não estiver configurado, rodar o comando acima resultará no seguinte erro:

```default
No package gbds-tools available
Error: Nothing to do
```

Neste caso, prossiga para [Repositório não configurado](#repositorio-nao-configurado).
{% endhint %}

#### Repositório não configurado

Caso não tenha o repositório configurado, você deve garantir o bom funcionamento da ferramenta. Para fazer isso, você **DEVE** inserir a ferramenta no diretório `/opt/griaule`.

Inicie criando o diretório:

```shell
mkdir -p /opt/griaule
```

Entre no diretório criado:

```shell
cd /opt/griaule
```

Em seguida, baixe o pacote de ferramentas GBDS:

```shell
wget <link do pacote de ferramentas GBDS>
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```

{% hint style="info" %}
Caso não tenha o link, entre em contato com a Equipe de Suporte da Griaule.
{% endhint %}

{% hint style="success" %}
Nos comandos abaixo, certifique-se de substituir `<versão>` pela versão do pacote que foi baixado.
{% endhint %}

Então, instale-o:

```shell
rpm -ivh gbds-tools-<versão>.el7.noarch.rpm
                    ^^^^^^^^
```

E crie um link simbólico:

```shell
ln -s /opt/griaule/gbds-tools-<versão>/ /opt/griaule/tools
                              ^^^^^^^^
```

Após uma instalação bem-sucedida, siga para a [seção de configuração](#configurando-o-gbds-tools).

### Configurando o GBDS Tools

Os arquivos de configuração utilizados pelo GBDS Tools se encontram no diretório: `/opt/griaule/tools/shared`. Neste diretório, há três arquivos que devem ser editados:

* `properties.ini` - arquivo de configuração principal
* `cluster.list` - arquivo principal de lista de nomes de host
* `ip.list`- arquivo secundário de nomes de host

Os arquivos são pré-configurados com valores padrão na maioria dos parâmetros. Observe se algo precisa ser alterado para atender às necessidades do seu ambiente.

{% hint style="warning" %}
Alterar os **nomes de host** nos arquivos para corresponder aos do ambiente é imperativo.
{% endhint %}

{% hint style="success" %}
No arquivo `properties.ini`, procure as configurações `SPECIFIC TO` e execute as alterações necessárias para corresponder ao seu ambiente.

Na seção `SPECIFIC TO AUTO_ENVSETUP`, certifique-se de que o **nome de usuário** e **senha** estejam configurados corretamente em `usernm`, `userpw` e `rootpw`.

Na seção `SPECIFIC TO INSTALL_MYSQL`, anote a **senha do RDB**, configurada em `dbuspw`, pois ela [será usada posteriormente](#configurando-a-senha-do-rdb).
{% endhint %}

{% hint style="success" %}
No arquivo `cluster.list`, certifique-se de mudar os **nomes de host** e de adaptar o **número de hosts** em cada componente para que corresponda ao ambiente.

Por padrão, o arquivo é configurado para um cluster de **três** nós. Se o ambiente tiver, por exemplo, somente **um nó**, remova as menções aos nós 2 e 3 e substitua todos os nomes pelo nome de host do seu servidor.
{% endhint %}

{% hint style="success" %}
No arquivo `ip.list`, certifique-se de mudar os **nomes de host** e os **endereços IP** para corresponder ao ambiente, seguindo o formato `<nome de host>|<endereço IP>` em cada linha.
{% endhint %}

### Executando a configuração automática do ambiente

A configuração automática do ambiente, denominada `auto_envsetup.sh`, é a automação para configurar o ambiente. Você precisa executar este script ao construir um novo servidor do zero.

Para executar o script, execute o seguinte comando:

```shell
/opt/griaule/tools/auto_envsetup/auto_envsetup.sh --all
```

Em seguida, é recomendável atualizar todos os pacotes, se possível:

```shell
yum update -y
```

## Instalando o RDB

Para usar o GBDS, você precisará de um banco de dados relacional instalado e configurado. Você pode escolher entre [MySQL Server](#mysql-server) ou [NDB Cluster](#ndb-cluster).

{% hint style="warning" %}
Você só precisa executar **uma** instalação do RDB.
{% endhint %}

### MySQL Server

{% hint style="warning" %}
Recomenda-se instalar o MySQL no nó mestre.
{% endhint %}

Para instalar o MySQL Server, execute:

```shell
/opt/griaule/tools/install_mysql/install_mysql.sh --single
```

Então, siga para [Configurando a senha do RDB](#configurando-a-senha-do-rdb).

### NDB Cluster

{% hint style="warning" %}
A instalação do NDB **DEVE** ser no nó **MESTRE**.
{% endhint %}

**Ou**, se você optar por instalar o NDB Cluster, execute:

```shell
/opt/griaule/tools/install_mysql/install_mysql.sh --cluster
```

Então, siga para [Configurando a senha do RDB](#configurando-a-senha-do-rdb).

### Configurando a senha do RDB

Após a instalação, tente logar no MySQL executando o comando:

```shell
mysql -u root -p
```

E inserindo a senha configurada no arquivo `properties.ini` em `dbuspw`, como mencionado na [etapa anterior](#configurando-o-gbds-tools).

Se for possível logar, a instalação e configuração da senha foram bem sucedidas e você pode prosseguir para [Configurando o MySQL](#configurando-o-mysql).

***

Se não for possível logar e você ver o seguinte erro:

```html
Error: Access denied for user '<username>'@'<host>' (using password: YES)
```

Será preciso modificar a senha manualmente. Para fazer isso, use o seguinte comando para obter a senha temporária criada durante a instalação:

```shell
grep "temporary password" /var/log/mysqld.log
```

Copie a senha temporária mostrada.

Então, mude a senha usando o seguinte comando:

{% hint style="info" %}
Certifique-se de substituir `<senha_desejada>` pela senha desejada. Mantenha as apas.
{% endhint %}

```shell
mysqladmin -u root -p password "<senha_desejada>"
                                ^^^^^^^^^^^^^^^^
```

Quando solicitado, insira a senha temporária.

Então, tente logar no MySQL novamente usando a nova senha.

Se for possível logar, a instalação e configuração da senha foram bem sucedidas e você pode prosseguir para [Configurando o MySQL](#configurando-o-mysql).

### Configurando o MySQL

Finalmente, configure o banco de dados para seu ambiente.

O arquivo de configuração encontra-se em: `/etc/my.cnf`.

{% hint style="warning" %}
As configurações padrão da instalação do RDB podem não ser as configurações desejadas. Verifique-as no arquivo de configuração `my.cnf` e adapte-as para atender às necessidades do ambiente.
{% endhint %}

Após realizar as alterações necessárias, aplique-as reiniciando o serviço:

```shell
systemctl restart mysqld
```

## Instalando o Ambari

Para instalar o Ambari via Ansible, é necessário acessar o repositório Griaule.

{% hint style="warning" %}
Se o seu GBDS RDB não estiver no nó **MESTRE**, é recomendável iniciar outra instância RDB para o Ambari.
{% endhint %}

{% hint style="info" %}
A instalação requer uma conexão com a internet e pode levar 45 minutos para ser concluída sem erros. Antes de instalar, verifique se sua conexão está estável.
{% endhint %}

Para iniciar a instalação do Ambari, entre no diretório do Ansible:

```shell
cd /etc/ansible
```

Então, baixe o pacote:

```shell
wget <link do pacote Ambari Ansible>
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```

{% hint style="info" %}
Caso não tenha o link, entre em contato com a Equipe de Suporte da Griaule.
{% endhint %}

Em seguida, extraia os arquivos no diretório principal do Ansible, `/etc/ansible`, com o seguinte comando:

{% hint style="success" %}
No comando abaixo, certifique-se de substituir `<versão>` pela versão do pacote que foi baixado.
{% endhint %}

```shell
tar -xvf ansible_hdp-<versão>.tar
                     ^^^^^^^^
```

Entre no diretório extraído:

```shell
cd /etc/ansible/ansible-hadoop
```

{% hint style="success" %}
Como o processo leva algum tempo para ser concluído, é recomendável executar o script de instalação usando o `screen` para evitar interrupções.

Para isso, instale o *screen*:

```shell
yum install screen -y
```

Inicie uma nova sessão no *screen*:

```shell
screen -S ambari-install
```

Então, siga para a execução do script de instalação conforme descrito abaixo.

—

Caso a conexão com o servidor seja perdida, o script não será interrompido e você poderá retomar a sessão reconectando-se ao servidor e executando:

```shell
screen -r ambari-install
```

{% endhint %}

Então, execute o script de instalação:

```shell
./full-hadoop.sh
```

Responda às perguntas de instalação e prossiga até terminar.

{% hint style="warning" %}
Uma vez iniciado, **NÃO interrompa** nenhum dos scripts. Caso ocorra algum problema, entre em contato com a equipe de suporte da Griaule.
{% endhint %}

## Instalando o GBDS

Para instalar o GBDS, você precisará de:

* .rpm do GBDS Cluster
* .rpm do GBDS Distribution
* .sql do script de dump do RDB do GBDS
* Link do pacote OpenCV

Comece movendo os dois arquivos `.rpm` para o diretório `/opt/griaule/tools/deploy_application/files`.

O arquivo `.sql` do script de dump do RDB deve ser salvo em outro diretório.

{% hint style="warning" %}
Após a execução do script a seguir, todo o conteúdo do diretório `/opt/griaule/tools/deploy_application/files` será excluído.
{% endhint %}

Então, execute o seguinte comando para instalar o GBDS:

```shell
/opt/griaule/tools/deploy_application/deploy_application.sh --gbds
```

{% hint style="info" %}
Após tentar executar o script acima, se você receber o erro:

```
[ERROR] No OPENCV RPM found to be deployed. Make sure to stage the desired RPM
```

Entre no diretório `files`:

```shell
cd /opt/griaule/tools/deploy_application/files
```

E faça o download do pacote OpenCV:

```shell
wget <OpenCV package link>
     ^^^^^^^^^^^^^^^^^^^^^
```

Então, tente executar o script `deploy_application.sh` novamente.
{% endhint %}

Em seguida, execute o script de dump do RDB no servidor SQL.

```shell
mysql -u root -p < /PATH/DO/ARQUIVO/clear-rdb-<versão>.sql
                   ^^^^^^^^^^^^^^^^^          ^^^^^^^^
```

{% hint style="success" %}
A senha do RDB foi configurada [aqui](#configurando-a-senha-do-rdb).
{% endhint %}

Após terminar a instalação do GBDS, configure-o executando:

```shell
/opt/griaule/tools/auto_appconfig/auto_appconfig.sh --gbds
```

Para revisar ou alterar manualmente as configurações, edite o arquivo de configuração localizado em: `/etc/griaule/conf/gbds/application.conf`. Para mais informações sobre as configurações, consulte o [Manual de Configuração do GBDS](/configuracao-do-gbds/gbds4conf.md).

{% hint style="warning" %}
Certifique-se de que o **hostname** no arquivo de configuração (`application.conf`) corresponde ao **hostname** do servidor.
{% endhint %}

Então, inicie a API do GBDS:

```shell
service gbsapid start
```

Teste se a API está em execução:

```shell
curl http://<host-ip>:8085/gbds/v2/operations/ping
            ^^^^^^^^^
```

A resposta esperada é:

```json
{
	"data": "pong!"
}
```

Finalmente, inicie o GBDS:

```shell
gbdsstart
```

E acompanhe o *log* de execução:

```shell
gbdslogt
```

## Instalando as aplicações GBS

Para instalar as Aplicações GBS, você precisará de:

* Arquivo *.war* para cada aplicação
* Script de dump *.sql* para cada aplicação

Primeiro, instale e configure o Tomcat para as aplicações web. Isto deve ser feito somente no servidor que hospedará as aplicações web. Use o seguinte comando:

```shell
/opt/griaule/tools/install_services/install_services.sh
```

Em seguida, mova os arquivos `.war` para o diretório `/opt/griaule/tools/deploy_application/files` e execute o comando:

```shell
/opt/griaule/tools/deploy_application/deploy_application.sh --services
```

Depois disso, configure as aplicações com o seguinte comando:

```shell
/opt/griaule/tools/auto_appconfig/auto_appconfig.sh --services
```

{% hint style="info" %}
Para explorar as configurações individuais de cada aplicação, consulte os manuais de configuração correspondentes listados [aqui](/componentes-web/gbsappssetup.md).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/instalacao-do-gbds/gbds4ansibleinstall.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
