Você está na página 1de 22

6/24/2021 Willians Oliveira - Infraestrutura de TI

mais
Criar um

Willians Oliveira - Infraestrutura de TI


terça-feira, 14 de janeiro de 2020

Devops - Configurando um cluster Kubernetes na IBMCloud


Fala Pessoal, nesse artigo vou demonstrar como criar um cluster Kubernetes dentro da estrutura da IBMCloud.

Basicamente vamos ver:

Criação de estrutura de permissão (IAM) para grupo de recursos e grupos de acesso (opcional)

Criação do cluster Kubernetes

Criação de estrutura de permissão (IAM) - grupos de recursos e grupos de acessos.

Essa parte de gerenciamento de permissão IAM, tem como objetivo organizar os recursos criados dentro da nuvem da IBM bem como
designar/controlar acessos necessários de usuarios aos recursos do IAM. Quem sou eu

Está parte da configuração é opcional, mas é importante para um ambiente produtivo onde você deseja controlar o acesso aos recursos de Willians Oliveira
cada membro de sua equipe.
Visualizar meu perfil completo

1) A primeira coisa a se fazer é criar um grupo de recurso, para isso dentro do portal ibmcloud acesse o menu Gerenciar > Acesso IAM e
clique em Grupo de Recursos.
Arquivo do blog

▼ 
2020
(2)
▼ 
Janeiro
(2)
Devops - Configurando um
cluster Kubernetes na
IBM...
Java Tomcat7 - Problema
horario de verão

► 
2016
(2)
► 
2015
(5)
► 
2014
(3)
► 
2013
(23)

2) Clique em criar

3) Digite o nome do novo resource group e clique em incluir.

Futuramente você pode criar outros grupos como DEV e PROD e conceder a um membro de sua equipe acesso somente a um
determinado grupo de recurso.

https://williansco.blogspot.com 1/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

4) Na imagem abaixo, é possivel ver o nosso resource group criado

5) Agora precisamos criar um grupo de acesso onde vamos vincular usuários e dar algumas permissões.

 6) Clique em criar.

7) Digite um nome e descrição para seu grupo de acesso e clique em criar.

https://williansco.blogspot.com 2/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

8) depois de clicar no botão criar da tela acima, aparecerá a tela abaixo onde será necessário clicar no botão “Incluir usuários” para
associar membros ao grupo HLG.

9) Selecione os usuários que já estão cadastrados na IBM depois clique em “Incluir no grupo”

10) Na tela abaixo, podemos visualizar os usuários que acabamos de incluir no grupo HLG

11) Com o grupo e seus membros configurados, agora precisamos definir os acessos desse novo grupo, dentro das propriedades do grupo
HLG, clique na aba Politicas de acesso e clique em “Designar acesso”

https://williansco.blogspot.com 3/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

12) Escolha a opção “Designar acesso dentro de um grupo de recursos”

13) Deixe as demais configurações conforme tela abaixo e depois clique em designar.

14) Abaixo é possível ver as Políticas de Acesso que acabamos de criar.

https://williansco.blogspot.com 4/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Com a estrutura de grupos de acesso e grupos de recursos criada, agora vamos a criação de nosso Cluster Kubernetes.

Criando Cluster Kubernetes

1) Com um conta admin do IBMCloud, procure no catalogo por Kubernetes > Criar cluster

2) Crie o cluster kubernetes seguindo as orientações da imagem abaixo. Para ambiente de estudos ou lab, você pode criar o cluster
usando o plano gratuito onde você terá apenas um NÓ, em nosso exemplo, estamos usando o plano padrão (standard) pois vamos rodar
nosso cluster com 3 NÓS.

https://williansco.blogspot.com 5/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

3) Depois de clicar em criar cluster, o processo pode demorar de 10 a 20 minutos, portanto essa é a hora de você tomar um café!!!

4) Se tudo correr bem, seu cluster kubernetes estará com o status Normal

Bem...agora que o nosso cluster está pronto, vamos conectar no mesmo. Basicamente existem duas maneiras de se conectar no cluster
Kubernetes:

a) Acesso via comandos CLI IBMCloud

b) Acesso via Painel do Kubernetes

https://williansco.blogspot.com 6/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Conectando no Cluster Kubernetes pelo Painel IBMCloud


Essa é facil...para acessar o dashboard do Kubernetes, via painel IBMCloud, basta clicar em Painel Kubernetes.

6) Na tela abaixo podemos ver nosso Dashboard do Kubernetes, sem nenhum deploy.

Conectando no Cluster Kubernetes via comandos IBMCloud CLI


Antes de começarmos, é necessario instalar o IBMCloud CLI em nosso terminal mac/linux.

Em nosso exemplo estou usando um terminal Linux, mas o comando para instalar o ibmcloud cli é o mesmo para os dois sistemas.

Instalando IBMCloud CLI


curl -sL https://ibm.biz/idt-installer | bash

Para mais informações acesse o link: https://cloud.ibm.com/docs/cli?topic=cloud-cli-getting-started

Para verificar se o cli foi instalado, rode o comando:

ibmcloud -v

Depois que o IBMCloud CLI foi instalado, é necessário instalar plugins adicionais de acordo com o seu uso. Rode o comando abaixo para
obter uma lista dos plugins disponiveis para instalação:

ibmcloud plugin repo-plugins -r "IBM Cloud"

https://williansco.blogspot.com 7/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Para instalar um plugin especifico use ibmcloud plugin install [nomedoplugin].

Por hora vamos instalar apenas dois plugins (kubernetes-service e container-registry), portanto rode os dois comandos abaixo:

ibmcloud plugin install kubernetes-service


ibmcloud plugin install container-registry

Como eu já tinha os plugins instalados, o cli sugeriu atualizar os mesmos.

Para listar os plugins instalados, rode:

ibmcloud plugin list

Agora com o IBMCloud CLI e seus plugins instalados, vamos aos comandos para conectar em nosso cluster kubernetes. Abra novamente
as configurações do cluster kubernetes e clique na guia Acessos.

Perceba que na imagem abaixo, já é fornecido um passo-a-passo dos comandos que você precisará rodar em seu terminal para conectar
no cluster kubernetes. Esses comandos já vem preenchidos com as informações como grupo de recursos, id do cluster  e variaveis de
ambiente para conexão.

Com base na imagem acima...rode o primeiro comando:

https://williansco.blogspot.com 8/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Rode o segundo comando.

Veja na imagem acima que após rodar o comando 2, no final será gerado uma linha de export, copie essa linha para rodar o comando 3.

Feito isso, você já estará conectado no cluster kubernetes, rode um kubectl cluster-info para obter informações sobre o seu cluster.

E é isso pessoal!!! Com isso finalizamos a criação do Cluster Kubernetes dentro da IBMCloud.

No proximo artigo vou demostrar como fazer o deploy e publicação de uma aplicação via arquivo yml dentro do Kubernetes

abçs!!!!!

Postado por
Willians Oliveira
às
19:12
Nenhum comentário:

quinta-feira, 9 de janeiro de 2020

Java Tomcat7 - Problema horario de verão


Recentemente tive um problema onde uma aplicação rodando em Tomcat 7 - Java, estava 1 hora a frente do horario configurado no
sistema operacional. 

Isso ocorre porque o Java tem a sua própria configuração de timezone. Bem...não vou enrolar mais, abaixo o procedimento para corrigir
esse problema:

1) Acesse o link  https://www.iana.org/time-zones  e faça download do arquivo tzdata2019c.tar.gz  referente ao banco de dados de fusos
horarios.

https://williansco.blogspot.com 9/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

2) Faça download do TZUpdater através do link abaixo:


https://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html

3) Depois do download, crie uma pasta no C:\ do computador ex: update_timezone_java e copie os dois arquivos baixados para esse
diretorio.

4) Abra um prompt de comando (de preferencia como administrador) e rode o comando abaixo para começar a atualização do banco de
dados timezone java.

java -jar c:\update_timezone_java\tzupdater.jar -v -f -l file:c:\update_timezone_java\tzdata2019c.tar.gz

5) Reinicie o serviço do Apache Tomcat7 e teste a sua aplicação.

Postado por
Willians Oliveira
às
18:15
Nenhum comentário:

https://williansco.blogspot.com 10/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

terça-feira, 4 de outubro de 2016

Pasta ConflictAndDeleted excedeu seu limite configurado no DFS


Em alguns ambientes que possuem o DFS implementando, você poderá se deparar com a situação onde o volume onde está configurado
a replicação DFS consumir boa tarde do disco disponível, correndo o risco até mesmo de esgotar o pouco que resta.

Geralmente isso ocorre devido a volumetria da pasta ConflictAndDeleted que excedeu o limite configurado no DFS porque o arquivo
ConflictAndDeletedManifest.xml está corrompido.

Não vou entrar muito nos detalhes disso, mas para quer quiser saber mais, o link abaixo poderá fornecer todas as informações.

https://support.microsoft.com/pt-br/kb/951010

O artigo do link foi escrito para Windows Server 2003, porém todo o procedimento abaixo foi realizado em um ambiente com Windows
Server 2012

Antes de começar, todas as pastas relacionadas as configurações de DFS estão ocultas, portanto para visualiza-las, primeiro você deverá
ir até Folder Options no Painel de Controle e deixar as opções como na imagem abaixo:

Após isso, você visualizará a pasta DFSPrivate e dentro dela toda as outras pastas e arquivos relacionados as configurações de DFS. 

Por padrão, a pasta DFSPrivate fica dentro da pasta onde configurou a replicação.

https://williansco.blogspot.com 11/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Bem...para resolver esse problema, a partir do servidor DFS, abra um prompt de comando como administrador e rode o primeiro comando
abaixo:

WMIC.EXE /namespace:\\root\microsoftdfs path dfsrreplicatedfolderconfig get replicatedfolderguid,replicatedfoldername

Esse comando irá listar o ID da pasta replicada bem como o seu nome conforme pode ser visto na imagem abaixo:

Com o ID em mãos, vamos rodar o segundo comando para limpar a pasta ConflitcandDeleted

WMIC.EXE /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo where "replicatedfolderguid='colar aqui o ID listado no comando


acima'" call cleanupconflictdirectory

Após isso, é só aguardar a limpeza da pasta ConflitcandDeleted, dependendo da atual volumetria dessa pasta, isso pode demorar horas,
portanto sugiro fazer isso fora do horário de expediente ou final de semana.

abçs!

Postado por
Willians Oliveira
às
13:30
2 comentários:

quarta-feira, 28 de setembro de 2016

Erro de credenciais ao abrir uma VM no Hyper-V Manager

Ai você entra na console do seu Hyper-V Manager e quando tenta abrir qualquer VM recebe a mensagem abaixo:

"A connection will not be made because credentials may not be sent to the remote computer. For assistance, contact your system
administrator."

https://williansco.blogspot.com 12/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Para resolver isso, siga os passo abaixo para habilitar a opção Use default credentials automatically (no prompt):

Feito isso, você conseguira abrir suas VMs através da console do Hyper-V Manager.

abçs!

Postado por
Willians Oliveira
às
18:43
Nenhum comentário:

terça-feira, 10 de novembro de 2015

Converter instalações do Windows Standard para Enterprise ou Datacenter


sem reinstalar o S.O

https://williansco.blogspot.com 13/22
6/24/2021 Willians Oliveira - Infraestrutura de TI
Em algumas situações, alguns administradores de ambiente são obrigados a mudar o sistema operacional de seu servidor de uma versão
Standard para uma versão Enterprise ou até mesmo Datacenter por questões de licenciamento, funcionalidades adicionais ou até mesmo
compatibilidade com alguns softwares de terceiros.

Em cima disso, a partir do Windows Server 2008 R2 a Microsoft disponibilizou um utilitário que é capaz de realizar esse "upgrade" sem a
utilização de mídia ou reinstalação do seu S.O para versão desejada. 

Esse utilitário é o DISM (Deployment Image Servicing and Management). Como o objetivo aqui é uma demo de como funciona a conversão
através desse utilitário, não entrarei em detalhes, portanto para quem quiser conhecer mais deixo aqui o link para consultas e referencias.

http://technet.microsoft.com/en-us/library/dd744380(WS.10).aspx 

Mãos à obra...
Aqui vou demonstrar uma conversão a partir de um Windows Server 2008 R2 Standard para Windows Server 2008 R2 Datacenter.

Vale lembrar que o mesmo procedimento passado aqui, funciona para Windows Server 2012 e 2012 R2.

1) Abra um prompt em modo elevado (como administrador). 


    Veja no desktop que a versão atual é a Standard.

2) Execute o comando: DISM /online /Get-CurrentEdition

    Esse comando irá listar a versão atual do sistema operacional do servidor.

3) Agora precisamos saber para quais versões podemos converter nossa instalação. Rode o comando:

DISM /online /Get-TargetEditions


 
   A imagem abaixo mostra o resultado do comando onde é  possível ver que nesse caso podemos           converter a instalação para
ServerDataCenter e ServerEnterprise. 

https://williansco.blogspot.com 14/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

4) Como dito anteriormente, vamos converter a instalação para DataCenter. Rode o comando abaixo:

DISM /online /Set-Edition:ServerDataCenter


/productkey:74YFP-3QFB3-KQT8W-
PMXWJ-7M648

* Obs.: A chave utilizada no comando acima, trata-se de uma chave genérica KMS do Windows Server 2008 R2 DataCenter. Essa chave é
utilizada apenas para converter a instalação, ela não irá ativar definitivamente o seu servidor durante o processo de conversão. 

No link https://technet.microsoft.com/pt-br/library/jj612867.aspx  , você poderá ter uma relação completa das chaves de acordo com a
versão do Windows Server para o qual você deseja converter.

Para que ocorra a ativação definitiva, após todo o processo de conversão, você deverá inserir uma chave valida (original) que sua empresa
possui a partir de um contrato de licenciamento por volume.

Depois de rodar o comando para converter a instalação, você terá uma tela parecida com a abaixo.

Após isso, o Windows Server solicitará para reiniciar por 2 vezes.

Depois de reiniciado, já é possível ver que o Windows foi convertido para versão Datacenter.

* Uma nota importante é que esse procedimento não deverá ser executado em servidores de Active
Directory.

Abraços!

Postado por
Willians Oliveira
às
23:44
2 comentários:

Não é possível abrir VM a partir da console do Hyper-V Manager


https://williansco.blogspot.com 15/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Situação: A partir da console do Hyper-V Manager você tenta abrir uma VM qualquer e recebe o erro abaixo:

A connection will not be made because credentials may not be sent to the remote computer. For assistance, contact you system administrator

Solução:

1) Na console do Hyper-V Manager, clique em Hyper-V Settings...

2) Navegue até User Credentials e depois habilite a opção Use default credentials automatically (no prompt).

depois clique em aplicar e pronto, você já conseguira conectar novamente em sua VM a partir da console.

https://williansco.blogspot.com 16/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Abraços!

Postado por
Willians Oliveira
às
22:36
Nenhum comentário:

terça-feira, 15 de setembro de 2015

Automatizando Backup de VMs Hyper-V com o Veeamzip 8


Hoje compartilharei com vocês um procedimento para automatizar backup de seus servidores virtuais através da ferramenta da Veeam, o
Veeam Backup Free Edition versão 8.

Como o próprio nome diz, o Veeam Backup, trata-se de uma ferramenta totalmente gratuita que permite que você realize backups
constantes de suas maquinas virtuais (Hyper-V | VMware) de maneira muito simples e intuitiva sem precisar pausar ou desligar suas VMs.

Por se tratar de uma versão free, a unica limitação dessa versão é a impossibilidade de agendar tarefas de backup de suas VMs.
Obrigando dessa maneira você iniciar os backups "na mão" através de sua console de gerenciamento.

Claro que na versão full, além de você poder criar/agendar jobs de backup de suas VMs, você tem outras inúmeras funcionalidades muito
uteis e interessantes para quem tem um ambiente de virtualização mais complexo. Mas o nosso proposito aqui é usufruir da versão Free.

Bem, graças a um update recente (Update 2) para a versão 8 do Veeam Backup Free Edition, é possível utilizar o módulo PowerShell do
Veeam e escrever um script para realizar o backup de suas VMs e posteriormente utilizar o Task Scheduler do Windows para agendar a
execução desse script.

Para obter o Veeam bem como a sua atualização, pesquise na internet por Veeam Backup Free Edition v8 ou entre no link atual do
produto:

http://www.veeam.com/br/virtual-machine-backup-solution-free.html
Obs,: É necessário realizar um cadastro para realizar o download do produto.

A instalação de Veeam é bem simples, mas para quem tiver alguma duvida, pode consultar a documentação online do passo a passo:

http://helpcenter.veeam.com/backup/80/vsphere/install_vbr.html

Muito Importante!!! Durante a instalação, será solicitado para escolher as funções que deseja instalar, nessa etapa você deverá
obrigatoriamente habilitar a opção Veeam Backup & Replication PowerShell SDK (destacada em vermelho na imagem abaixo).

https://williansco.blogspot.com 17/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Script PowerShell para Backup de Virtual Machines


Para realizar o backup das VMs, vamos utilizar o script PowerShell abaixo. Consegui esse script na internet e fiz algumas alterações. 

Como a maioria dos clientes que atendo usam Hyper-V, o script abaixo está escrito para realizar somente backup de VMs rodando sobre
Hyper-V.

Copie o código abaixo em um bloco de notas e salve o mesmo como VeeamBackupVMs.ps1.


ou faça download do script pronto através do link abaixo:

https://mega.nz/#!RUdkCb5Z!pFVDFNIRwC9oAJ-8MThOfbv0NaIlJEHrAa6sCYJ4GOw

##################################################################
#                   Script de Backup VMs - Hyper-V
##################################################################

# Nome das VMs como elas aparecem na console Hyper-V separadas por virgula. Exemplo, $VMNames = “VM1”,”VM2”
$VMNames = "VM1","VM2"

# Hostname ou IP do host Hyper-V ou VCenter onde estão rodando as VMs


$HostName = "IP do Servidor Hyper-V"

# Diretorio onde serao salvos os backups (Exemplo: C:\Backup\Virtual_Machines)


$Directory = "C:\Backup\Virtual_Machines"

# Nivel de compressão do Backup (Valores: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme) 


$CompressionLevel = "5"

# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True

# Protect resulting backup with encryption key (Optional; $True/$False)


$EnableEncryption = $False

# Encryption Key (Optional; path to a secure string)


$EncryptionKey = ""

# Retencao do Backup (Por padrão, os arquivos VeeamZIP não removidos e serão mantidos no local onde foi salvo por periodo indeterminado
# Valores: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"

##################################################################
#                   Configuracoes de Email
##################################################################

# Ativando ou Desativando Alertas por Email


$EnableNotification = $True

# Email SMTP server


$SMTPServer = "IP do seu servidor Relay SMTP"

# Email FROM
$EmailFrom = "endereco de email que enviara as notificacoes do backup" 

https://williansco.blogspot.com 18/22
6/24/2021 Willians Oliveira - Infraestrutura de TI
# Email TO
$EmailTo = "endereco de email que recebera as notificacoes do backup"

# Email subject
$EmailSubject = "[BACKUP VM] - Backup Report VM - Veeam Backup"

##################################################################
#                   Formatacao do corpo do Email
##################################################################

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"


$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"

##################################################################
#                   Declaracao das Variaveis
##################################################################

#################### DA PARTIR DESSE PONTO, NAO ALTERAR NENHUMA LINHA ################


Asnp VeeamPSSnapin

$Server = Get-VBRServer -name $HostName


$MesssagyBody = @()

foreach ($VMName in $VMNames)


{
  $VM = Find-VBRHvEntity -Name $VMName -Server $Server
  
  If ($EnableEncryption)
 {
    $EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey
$EncryptionKey
 }
  
  Else 
 {
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
 }
  
  If ($EnableNotification) 
 {
    $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
    $FailedSessions =  $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"}
  
  if ($FailedSessions -ne $Null)
 {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e=
{$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})
 }
  
  Else
 {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e=
{$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
 }
  
  }   
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}

Basicamente, a unica coisa que muda no script para backups de Hyper-V ou VMware, é a entidade na linha 76, como mostra as imagens
abaixo.

Entidade para Backups de VMs em Hyper-V

https://williansco.blogspot.com 19/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

 Entidade para Backups de VMs em VMware

Agendando execução do script PowerShell pelo Task Scheduler


Abra o Task Scheduler e siga as etapas abaixo:

clique em criar tarefa básica

De um nome e uma descrição para nova tarefa

No nosso exemplo, vou criar uma tarefa para executar 5 dias na semana.   Mas no de vocês, escolham a frequência que mais se enquadra
com seu ambiente.

Escolha os dias de execução do script

https://williansco.blogspot.com 20/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Escolha iniciar um programa

Powershell –file “Caminho do arquivo VeeamBackupVMs.ps1”

Caso apareça o alerta abaixo, clique em sim

Clique em concluir

https://williansco.blogspot.com 21/22
6/24/2021 Willians Oliveira - Infraestrutura de TI

Opcionalmente você pode usar outra ferramenta agendar a execução do script de Backup. Eu particularmente gosto de uma
chamada System Scheduler.

Caso se interessem, podem baixa-la através do link abaixo:

https://mega.nz/#!JVUTWaiS!dBZxF1DPsecFMhylCzoO3D53BYHdwngwwDtSr1ynWjY

Bem, é isso, espero que seja útil.

Abraços!!!

Postado por
Willians Oliveira
às
17:35
8 comentários:

Página inicial Postagens mais antigas

Assinar:
Postagens (Atom)

Lateral Superior

Tema Espetacular Ltda.. Tecnologia do Blogger.

https://williansco.blogspot.com 22/22

Você também pode gostar