terça-feira, setembro 11, 2018

Portainer IO e Docker


Neste post iremos mostrar como instalar a ferramenta Portainer.io.
O Portainer é uma ferramenta opensource que roda dentro de um container docker oferecendo uma interface que permite o gerenciamento fácil de seus Containers Docker ou Clusteres Swarm.
OBS: Para continuar neste tutorial você precisa do Docker instalado na sua máquina local ou VPS.  Ver em: VPS Google Compute Engine - Instalação do Docker


1 - Pesquisando a existência de uma imagem no Docker HUB.

docker search [nome da imagem]

$ docker search sming
 Este comando lista as imagens disponíveis no repositório Docker Hub.



2 - Instalando a imagem do Portainer.io em um container do Docker

$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

O primeiro comando cria uma “volume” com o nome de portainer_data  para ser utilizado pelo container.
 O segundo comando baixa do repositório a imagem portainer/portainer e inicia a execução da mesma na porta 9000.

3 - Liberando as portas no Google Cloud Plataform

Caso esteja rodando a ferramenta em uma máquina local e não tenha a necessidade de liberar portas em um firewall, basta acessar com um navegador o endereço http://127.0.0.1:9000 e ter acesso a configuração da ferramenta. Caso esteja rodando em uma máquina virtual na plataforma VPS do Google continue este tutorial.  Algumas outras plataformas na nuvem de maquinas virtuais podem utilizar um outro tipo de configuração.

4 -  Primeiramente acesse o Dashboard da ferramenta em  https://console.cloud.google.com/compute/instances e escolha a máquina virtual que você irá configurar e a opção "View networks details".


5 -  Escolha no menu do lado esquerdo a opção "VPC network". Em seguida "Firewall rules".


6 - Clique no botão “Create a firewall rule” 



a) No campo “Name” digite o nome da regra em letras minúsculas.
b) No campo “Description” digite a descrição da regra.
c)  No campo “Souce IP ranges” digite 0.0.0.0/0 para aceitar conexões de qualquer máquina da Internet ou a máscara especifica para permitir o acesso a apenas algumas máquinas.
d) No campo “Specified protocols and ports” escolha o protocolo e digite o número das portas que você deseja abrir.  No caso do portainer.io escolha a porta 9000.
e) No campo “Target tags” escolha o nome/TAG para a esta regra. Várias regras de firewall podem ter o mesmo TAG.

7 - Volte para o Dashboard do Google Cloud Plataform do Compute Engine - https://console.cloud.google.com/compute e escolha a VPS que você quer aplicar a regra (TAG) ou regras que você criou anteriormente.



8 - Clique no botão “Edit” e no campo “Network tags” inclua a TAG ou TAGs que você criou anteriormente.

9 - Salve as alterações e a(s) porta(s) estarão liberadas para a sua máquina.

10 - Com um navegador acesse o IP externo do seu servidor na porta 9000 (http://seuip:9000) e crie um usuário e senha para administrar a sua ferramenta.



11 - Como você irá gerenciar o Docker instalado na mesma máquina da ferramenta Portainer, escolha o botão “LOCAL: Manage the local Docker environment”. Se for em uma outra máquina escolha a opção “Remote”.

quinta-feira, agosto 30, 2018

VPS Google Compute Engine - Instalação do Docker


Este tutorial considera que você já tenha criado uma instancia, máquina virtual no Compute Engine do Google Cloud Plataform.

Você pode saber mais sobre isto nos posts anteriores sobre o assunto:

Sigam este link para conhecer o Docker. Existe também muito material na Internet sobre esta ferramenta disponível nas mais variadas plataformas.

1 - Faça o acesso ao console da sua máquina virtual.

A configuração terá como base uma Máquina VPS tipo g1-small (1 vCPU, 1.7 Gb de memória). Com o Linux Ubuntu LTS Minimal instalado. Mas já consegui rodar o Docker com algumas aplicações mais simples com a instancia gratuita f1-micro (1 vCPU, 0.6 GB de memória).

2 - Atualize a lista de pacotes disponíveis.

sudo apt-get update

3 - Instale os pacotes necessários para que o apt consiga usar repositórios usando HTTPS:

sudo apt-get install \

     apt-transport-https \

     ca-certificates \

     curl \

     software-properties-common

4 - Adicione a chave GPG official do Docker.  (GPG Key)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

5 - Adicione o repositório estável do Docker.

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

   $(lsb_release -cs) \

   stable"

6 - Atualize novamente a lista de pacotes disponíveis.

sudo apt-get update

7 - Instale a última versão do Docker CE - Docker Community Edition

sudo apt-get install docker-ce

Quando for solicitada alguma confirmação, é só digitar Y.

8 - Faça uma verificação inicial em relação a instalação do Docker

sudo docker version

9 - Em um outro momento para fazer upgrade para a versão mais recente, use o seguinte comando:

sudo apt-get update

10 - Agora iremos executar a imagem hello-world para testar se o Docker está funcionando corretamente.

sudo docker run hello-world

A resposta esperada é esta:



11 - Para evitarmos ter que usar o comando sudo todas as vezes, vamos seguir os seguintes passos:

a) Criar o grupo docker

sudo groupadd docker

b) Adicionar o usuário atual ao grupo docker

sudo gpasswd -a $USER docker

c) Feche a seção e faça login novamente.

d) Para testar digite

docker ps -> Este comando mostra as imagens que estão em execução no seu docker.








VPS Google Compute Engine - Acesso SSH


O acesso de SSH utilizando a ferramenta de acesso via navegador que o Google disponibiliza é prático em diversos casos, mas as vezes um acesso utilizando um outro cliente SSH é necessário.
Para isto você precisa:
a) Uma máquina no VPS no Google Compute Engine com Linux instalada.  VPSGrátis no Compute Engine - Google Cloud Plataform
b) Um cliente SSH. Para Windows você pode utilizar o PuTTY. Já o Linux e o OSX (iMac) já possuem o cliente SSH nativos.  
c) Um gerador de chaves SSH. PUTTYGEN par Windows ou nativamente ssh-keygen para Linux e OSX.

1.     Gerando as chaves privadas e públicas necessárias

1.1 - Windows
a) Se você baixou o pacote de instalação completa do PuTTY para Windows, você terá instalado também o PuTTYgen. Vá até o Menu Iniciar → Todos os Programas → PuTTY → PuTTYgen

b) Criando um novo par de chaves (KEY PAR) para autenticação
Conforme a imagem anterior escolha os seguintes parâmetros:
Type of key to generate: RSA
Number of bits: 2048 → É suficiente para a maioria das pessoas.
c) Clique no botão “Generate” e comece a movimentar o mouse dentro da janela. Isto é usado para criar dados randômicos para a geração das chaves.
d) Se tudo deu certo você verá a sua chave pública na janela. 


e) É interessante que você crie uma senha para o arquivo da sua chave privada, assim você pode digitar sua senha no campo “Key passphrase” e confirmar no campo “Confirm passphrase”. Em seguida clique nos botões “Save public key” e “Save private key”

1.2 - Linux / OSX

a) Abra um terminal e digite ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
b) As chaves serão gravadas no diretório indicado pelo comando.

2.   Acesso ao Google Cloud Shell

2.1 - No Dashboard do Google Cloud Plataform do Compute Engine, https://console.cloud.google.com/compute, clique no botão para abertura do console do Google Cloud Shell



2.2 - O terminal Cloud Shell será apresentado.




3.   Ativando ou desativando o login do sistema operacional

Existem outras maneiras de permitir o acesso SSH à sua máquina virtual VPS hospedada nos servidores do Google, mas esta maneira foi a que funcionou melhor no meu caso. 

3.1 - Dento do Cloud Shell, digite 

gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE

Você pode escolher também desativar este tipo de login alterando a chave enable-oslogin para FALSE.
É bom lembrar que todas as instâncias, todas as máquinas virtuais, utilizam as mesmas configurações de metadados. 
Não testei ainda, mas para incluir o metadado para apenas uma instância, use o comando:
gcloud compute instances add-metadata [INSTANCE_NAME] --metadata enable-oslogin=TRUE
Onde [INSTANCE_NAME] é o nome da sua VPS.

4.   Enviando a sua chave pública para o Cloud Shell

Como você irá precisar da sua chave pública no Cloud Shell para ser enviado para a sua VPS, faça o seguinte:

4.1  - Digite no terminal do Cloud Shell o comando→  nano id-pub, para abrir o mini editor de texto Nano.

user@projeto-xyz:~$ nano id-pub


4.2 - Copie o texto da sua chave pública no Putty (Windows) ou direto do terminal Linux ou OSX. Cole o texto dentro do terminal do Cloud Shell onde você está rodando o mini editor de texto Nano.

4.3 - Com o texto colado, pressione as teclas CTRL+X para sair do mini editor e escolha Y para gravar o arquivo.cat
4.4 - Para verificar se o arquivo foi gravado, digite o comando →  cat id-pub

5.   Enviando a sua chave pública para sua instância VPS.

5.1 - Com o terminal aberto use o seguinte comando para enviar a chave para o seu servidor VPS.

gcloud compute os-login ssh-keys add --key-file id-pub

5.2 - Se o comando funcionou, você irá ver na sua tela a lista de todas as chaves públicas que estão nos seus servidores.

5.3 - Você também pode usar o comando a seguir para verificar qual é o nome de usuário associado à sua conta.
gcloud compute os-login describe-profile
name: [ACCOUNT_EMAIL] - e-mail da conta
posixAccounts:
:
  username: [USER_NAME] - nome do usuário (Você irá usar este nome de usuário para acesso via SSH.
:


6.   Acesso a sua VPS, usando um outro cliente SSH.


Primeiro você deve verificar qual é o endereço IP externo da sua VPN
6.1 - Windows

a) Abra o PuTTY e coloque no campo Host Name (or IP address) o nome de login do seu usuário juntamente com o IP externo da sua máquina.  O formato é o seguinte:
login_gmail_com@123.123.123.123 - Onde login_gmail_com é o login do seu usuário, que você descobriu no item 5.3 deste tutorial. E 123.123.123.123 é o IP externo da seu VPS.


Em seguida, na janela do PuTTY, do lado esquerdo navegue até categoria (Category) →   SSH →  Auth               
b)  Selecione o arquivo, Private Key, que você criou no item 1 deste tutorial. Em seguida clique no botão OPEN.


6.2 - Linux / OSX / MACOS

                Digite no terminal o comando no seguinte formato:
  ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]
Onde:

[PATH_TO_PRIVATE_KEY]  é o caminho para a chave SSH privada.

[USERNAME] é o nome de usuário da VPS que você descobriu no item 5.3 deste tutorial.
[EXTERNAL_IP_ADDRESS] é o endereço externo da VPS.



quarta-feira, agosto 29, 2018

VPS Grátis no Compute Engine - Google Cloud Plataform




Hoje irei exemplificar uma maneira de como criar uma Máquina Virtual Grátis no Compute Engine do Google Cloud Plataform.

1 - Primeiramente acesse o Dashboard da ferramenta em https://console.cloud.google.com/compute/instances

2 - Caso não tenha acessado ainda, será necessário um breve cadastro e um número de cartão de crédito.   Lembrando que se você escolher o tipo certo de “máquina virtual” ou VPS, conforme informações do Google, você não será cobrado.  Bom, é bom sempre verificar se as regras continuam as mesmas antes de prosseguir.
E tem uma outra coisa legal, caso você tenha interesse, necessidade ou curiosidade de usar uma máquina mais potente, o Google lhe fornece US$300,00 para fazer os testes.
No meu caso usei um cartão com baixo limite, criado pela plataforma de cartões do Banco do Brasil. Caso as regras mudem e eu não fique sabendo, o prejuízo será melhor.
Preços do Google Compute Engine: https://cloud.google.com/compute/pricing

3 - Para começar, clique em Compute Engine -> VM instances -> Create Instance





4 - Nesta etapa você deve escolher as configurações da sua máquina.
Escolhendo a região us-east1 e o tipo da máquina “f1-micro instance” você terá 744 horas grátis no mês.
 
OBS: Ainda não confirmei quantos meses é possível usar a máquina gratuitamente.
 

5 - Na configuração gratuita, consegui instalar o docker e rodar algumas imagens. O problema é que a aplicação que quero fazer o teste foi feita em Java, dependendo assim de uma quantidade maior de processamento e memória. Assim, resolvi fazer um teste com uma máquina maior e para isto irei utilizar os meus créditos para teste gratuitos.


Escolhi uma vCPU compartilhada com 1.7GB de memória. E um HD de 10GB com o Ubuntu 18.04 LTS Minimal.

6 - Para cada VPN criada, o Google disponibiliza um IP Interno e um IP Externo. Sendo que se a máquina for desligada um novo IP Externo pode ser atribuído.

Para iniciar a configuração de sua VPS é só clicar no botão SSH.

7 - Então uma janela do navegador irá se conectar via SSH com sua nova VPS.



8 - Num próximo post irei explicar como instalar o Docker.

sexta-feira, junho 29, 2018

RichCopy - Utilitário para cópia de arquivos no Windows.



    Precisei fazer a cópia de diversos arquivos de vídeos que estavam em um DVD. Como diversos dos arquivos estavam corrompidos, a cópia tradicional foi inviável.
   Tentei primeiramente utilizar um script no Shell do Windows. Mas o tempo para a cópia não foi satisfatório.
Arquivo: processa.bat
 @ECHO OFF  
 forfiles /p e:\ /s /C "CMD /C "d:\processa2.bat" @file @relpath @path @isdir"  

Arquivo: processa2.bat
 @ECHO OFF  
 set file=%~1  
 set relpath=%~2  
 set xpath=%~3  
 set isdir=%4  
 set destino=d:\cursos  
 REM echo.parametro1 - %file%  
 REM echo.parametro2 - %relpath%  
 REM echo.parametro3 - %xpath%  
 REM echo.parametro4 - %isdir%  
 set npath=%destino%%~p1  
 if %isdir% EQU TRUE (  
      echo. * eh um DIR *: %xpath%  
      ) ELSE (  
      echo.parametro1 - %file%  
      echo.parametro2 - %relpath%  
      echo.parametro3 - "%xpath%"  
      echo.npath - %npath%  
      rem xcopy "%xpath%" "%npath%" /D /H /F /Y /z /E  
      robocopy "%xpath%" "%npath%" /E /R:0 /W:0 /V /ETA  
      )  
 rem pause  
 exit  

   Foi quando procurando uma alternativa encontrei o RichCopy, que é uma ferramenta gratuita desenvolvida pelo Ken Tamaru da Microsoft.

Link para a página de download:
           
Link direto para download:

sexta-feira, junho 22, 2018

Comparador de Roteadores Wifi



Hoje achei um site muito legal que me permite comparar as especificações de diversos roteadores.

Estava procurando um novo roteador para a minha internet que funcionasse em 5GHz e este site foi muito útil. 



E para comprar roteadores uma loja que indico é a Amazon.com.br

Instant Pot – A panela de pressão elétrica multifunções




As panelas de pressão são muito usadas no Brasil principalmente para fazer o clássico feijão e para cozinhar grãos duros e acelerar o tempo de preparo de carnes mais duras.

Já nos EUA, a panela de pressão não é muito comum, principalmente pelo medo de explosões.

Agora a Instant Pot vem mudando este cenário, com muitos sensores e diferentes funcionalidades em apenas um equipamento.

Por exemplo, as opções mais comuns são: panela de pressão (pressure cooker), slow cooker, panela de arroz (rice cooker), iogurteira (yogurt maker), panela de cozimento a vapor (steamer), panela que mantém os alimentos quentes (warmer) e ainda frigideira (sauté pan).


Uma boa opção de conseguir uma panela destas é comprando on-line na Amazon, mandando entregar nos EUA ou diretamente para o Brasil pelo serviço Shipito ou pelo serviço de entregas internacionais da própria Amazon.



É bom lembrar que a panela funciona apenas na rede de 110 volts.

 1 - Instant Pot Duo Mini 3 Qt 7-in-1 Multi- Use Programmable Pressure Cooker, Slow Cooker, Rice Cooker, Steamer, Sauté, Yogurt Maker and Warmer

US$ 79,95 na Amazon

 2 - Instant Pot Ultra 3 Qt 10-in-1 Multi- Use Programmable Pressure Cooker, Slow Cooker, Rice Cooker, Yogurt Maker, Cake Maker, Egg Cooker, Sauté, Steamer, Warmer, and Sterilizer

US$ 119,95 na Amazon



sexta-feira, maio 04, 2018

Como mostrar código HTML ou Javascript em um post do Blogger

Achei este webapp muito bom com a funcionalidade de conversão de código para blogs


Basta você converter o seu código e colocar o HTML gerado no post do seu Blog.

HTML / Javascript - Mostrar carregar mais de uma página ao mesmo tempo

Muitas vezes você precisa que mais de uma página HTML seja carregada ao mesmo tempo.  Você pode fazer isto de algumas maneiras. Por exemplo:

1) Com a tag 'Object'
Vale observar que é necessário que as páginas estejam no mesmo domínio.
A página 2 do exemplo coloquei para ficar oculta, por isto defini um espaço de 1x1.
  <HTML>  
   <BODY>  
    <object data="http://www.neoage.com.br/pagina1" type="application/javascript" width="100%" height="100%">  
      Error: Embedded data could not be displayed - Página 1.  
     </object>  
      <object data=" http://www.neoage.com.br/pagina2" type="text/html" width="1" height="1">  
      Error: Embedded data could not be displayed - Página 2.  
      </object>   
 </BODY>  
 </HTML>  

2) Usando a tag 'iframe'

Aqui também temos a limitação das páginas estarem no mesmo domínio.
 <HTML>  
   <BODY>  
   <iframe id="frameA" src="https://www.neoage.com.br/p1.html" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100px; height:100px; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;">  
      Your browser doesn't support iframes  
    </iframe>  
   <iframe id="frameD" src=" https://www.neoage.com.br/p2.html" style="position:fixed; top:100px; left:100px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;">  
     Your browser doesn't support iframes  
   </iframe>  
 </BODY>  
 </HTML>  



3) - Usando a função javascript 'window.open'

 <HTML>  
 <BODY>  
      <script>  
 function getParameterByName(name, url) {  
   if (!url) url = window.location.href;  
   name = name.replace(/[\[\]]/g, "\\$&");  
   var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),  
     results = regex.exec(url);  
   if (!results) return null;  
   if (!results[2]) return '';  
   return decodeURIComponent(results[2].replace(/\+/g, " "));  
 }  
   pagina_go=getParameterByName('pagina');  
   document.write("Parametro: " + pagina_go);  
    window.open('https://neoage.com.br/p1.html','_tab1');  
    window.open(pagina_go,'_tab');  
      </script>       
 </BODY>  
 </HTML>  

Busca do Google

Custom Search