Ir ao conteúdo

Categoria: Ubuntu

Adicionando repositório S3 da OCI no Elasticsearch

Esses dias eu tive um problema que trocamos toda infraestrutura da empresa para outra nuvem, para constar eu mesmo fiz essa migração “OK”, mas agora sem brincadeiras, dai tivemos o problema de migrar os dados da AWS para OCI e pensei em usar um Bucket da OCI.

Imaginem a primeira coisa que fiz foi procurar no Google se alguém já havia feito, e claro encontrei um artigo na própria OCI, mas era para Elasticsearch 5, isso foi um problema pois não estava funcionando na versão 8 mas, porque o Bucket S3 da OCI ele tem uma peculiaridade em sua, URL.

Sem mais de longas… Vamos ao que interessa!

Primeiramente precisamos começar acessando cada nó do nosso Elasticsearch para configurar.

1 – Configurando nossas AccessKey e SecretKey

Agora iremos configurar o AccessKey e SecretKey do Bucket S3 em cada nó do servidor de elasticsearch. Para isto temos duas opções de comando um mais automático e outro que você insere esses dados ou o que já passa como variável que é mais simples e automatizado.

1 – Configurar AccessKey

Para configurar basta digitar o comando abaixo

bin/elasticsearch-keystore add s3.client.default.access_key

2 – Configurando SecretKey

Utilize o esse comando abaixo

bin/elasticsearch-keystore add s3.client.default.secret_key

3 – Forma automatizada

Para forma automatiza usaremos o script que ira aparecer logo abaixo, mas antes para explicar precisa-se substituir as variáveis pelas suas chaves de acesso ACCESS_KEY e SECRET_KEY para ele configurar corretamente

ACCESS_KEY=<SUA ACCESKEY AQUI>
SECRET_KEY=<SUA SECRETKEY AQUI>
echo $ACCESS_KEY | sudo /usr/share/elasticsearch/bin/elasticsearch-keystore add s3.client.default.access_key
echo $SECRET_KEY | sudo /usr/share/elasticsearch/bin/elasticsearch-keystore add s3.client.default.secret_key

2 – Recarregar as configurações de segurança do cluster

Você tem dois caminhos para fazer isso pelo Kibana no DevTools que usará esse comando

POST _nodes/reload_secure_settings

Ou essa outra opção utilizando CURL

curl -X POST "$(hostname -i):9200/_nodes/reload_secure_settings"

3 – Configurando o Repositório no Elasticsearch

Para isso você terá de me pagar 100 mil reais, brincadeira, mas para isso tem de prestar a atenção e substituir corretamente os campos, utilize o DevTools do Kibana para executar esse comando

PUT _snapshot/{nome_para_identificar_o_repo_s3}
{
  "type": "s3",
  "settings": {
    "bucket": "{nome_do_bucket}",
    "client": "default",
    "region": "{regiao}",
    "endpoint": "https://{namespace}.compat.objectstorage.{regiao}.oraclecloud.com/",
    "path_style_access": true
  }
}

Basicamente nesse código você está definindo o tipo de repositório de snapshot vai ser configurado, em bucket é o nome do próprio bucket, em client deixe em default, em region coloque a região da OCI que está seu bucket, em endpoint temos de colocar o namespace do bucket a região do bucket novamente e só isso, o último campo path_style_access manter em true.

Para ter um exemplo irei mostrar um exemplo de como ficou o meu

PUT _snapshot/oci-bucket-s3
{
  "type": "s3",
  "settings": {
    "bucket": "meu-bucket-de-snapshots",
    "client": "default",
    "region": "sa-saopaulo-1",
    "endpoint": "https://gredciaac9ma.compat.objectstorage.sa-saopaulo-1.oraclecloud.com/",
    "path_style_access": true
  }
}

E pronto agora pode fazer seus snapshots para o bucket da OCI sem nenhum problema!

Se vemos na próxima!

Deixe um comentário

Como configurar seu NGINX e PHP7 para subir uma aplicacao feita em laravel

Prazer me chamo Luis Justin, esses dias me deparei com a necessidade de configurar o Nginx para rodar o laravel, então comecei arduamente a pesquisar na internet a melhor forma de fazer isso, então agora que sei como faz e já faço isso direto na empresa que eu trabalho resolvi passar esse conhecimento a frente.

Lembrando não sou nenhum expert no assunto, então pode ter algo que eu tenha esquecido de falar dai peço que me avisem se faltou algo que corrijo o tutorial.

Primeiramente temos que avaliar a questão de qual sistema operacional está utilizando, pois cada sistema operacional tem uma maneira de configura. Quando digo que tem uma maneira para cada não me refiro que o nginx muda seu funcionamento em cada SO, mas muda a organização das pastas.

Eu aqui irei utilizar Ubuntu 20.04, mas lembrando os mesmo passos podem ser reproduzidos em qualquer sistema operacional basta, analisar como é a organização de pasta do seu SO.

Lembrando que isso não se aplica somente para o Laravel essa configuração você pode usar para rodar qualquer sistema em PHP, mas nesse tutorial será focado para Laravel 8.0.

1. Instalando Nginx

No Ubuntu 20.04 instalar o nginx é uma tarefa relativamente simples usando o gerenciador de pacotes basta digitar o seguinte comando:

sudo apt install nginx

Após ter concluído a instalação você precisa iniciar seu servidor nginx com o seguinte comando:

sudo systemctl start nginx

2. Instalando PHP-FPM

Para instalar o PHP-FPM em sua ultima versão só é preciso digitar o seguinte comando:

sudo apt install php-fpm

Após isso irá perceber que o php-fpm já está instalado e rodando.

3. Instalando Dependências que Laravel precisa para funcionar

Para instalar as dependencias necessárias basta você copiar e colar o seguinte comando no seu terminal:

sudo apt install php-mysql php-pdo php-mbstring php-xml php-bcmath php-zip

4. Configurando o Nginx para receber o Laravel

Primeiramente você precisa abrir o arquivo de configuração do nginx o famoso arquivo chamado “default”

nano /etc/nginx/sites-available/default

Irei ensinar 2 formas de criar essa configuração, porque duas formas ? Pelo fato que você pode utilizar ela tanto quando for para acessar por IP do servidor como quando você for configurar vários domínios com várias aplicações iguais ou distintas em laravel.Após isso você vai ver a seguinte tela:

Print do servidor de teste

agora iremos modifcar o script para ficar da seguinte forma:

server {
        listen 80;
        root /var/www/html/public;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name seusite.com.br;        charset utf-8;        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }        error_page 404 /index.php;        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        }        location ~ /\.ht {
                deny all;
        }        location ~ /\.(?!well-known).* {
                deny all;
        }
}

Não esqueça de substituir em server_name pelo domínio que será usado para acessar ou você pode remover essa diretiva.

Após isso você só precisar pressionar “CTRL + S” para salvar e “CTRL + X” se ele pedir alguma confirmação na hora de fechar só clicar “Y”.

Após isso vamos digitar

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

Isso ira criar um link simbolico colocando o arquivo “default” também dentro da “sites-enabled” do nginx.

Agora vamos digitar

nginx -t

Deve mostrar algo semelhante a isto:

Após isso vamos digitar

sudo systemctl reload nginx

Para mandar o nginx recarregar os arquivos de configuração sem reiniciar.

5. Configure seu laravel

Agora você precisa configurar “.env” de seu laravel, isso é uma configuração individual de cada um então irei pular esse passo mas irei lembrar você que precisa que o URL da Aplicação no laravel só precisa ser seu dominio exemplo:

http://meusite.com.br

6. Tudo pronto vamos testar!

Agora para testar é simples você pode abrir em seu navegador o link do seu site e irá ver que o laravel está rodando perfeitamente.

Deixe um comentário