Lucas Chies

Microsoft Azure

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Olá a todos!! Neste post, vamos ver como podemos utilizar o Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure.

No post anterior, falei sobre a criação do mesmo cenário, utilizando então o Ansible. Você poderá vê-lo aqui

Estas duas ferramentas são as mais utilizadas para entrega de automação, quando falamos em nuvem. Então é muito recomendado o aprendizado sobre elas. Se desejas saber mais informações sobre elas, podes verificar  as documentações aqui : Terraform e Azure DevOps.

Diferentemente do Ansible, o Terraform não precisa de uma máquina com o agente instalado para rodar os scripts. Isso é um grande ponto, pois não há aumento de custos.

Arquitetura DevOps

Para a demo, usuarei a mesma arquitetura utilizada com o Ansible.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Azure DevOps

Começe criando um novo projeto, no meu caso, chamei de Terraform…rsrsrs
Na sequência, vamos novamente utilizar o Azure Repo como repositorio de código, logo fiz o upload dos arquivos.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Nesta demo, vamos criar uma VM Linux e eu adicionei todas as informações dentro do próprio código, mas caso queira, podes também utilizar variáveis para isso.

Assim que o código estiver pronto, vamos criar o Pipeline, clicando em novo e utilizando o modelo clássico.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Basicamente seguimos os mesmos passos utilizados com o Ansible, criando duas tasks, uma para a cópia do arquivo de código e outra para criar o artefato. Vamos ver como funciona.

Agora nosso próximo passo é a criação da Release Pipeline, vamos criar um novo, selecionando nosso artefato e postriormente, criar as tarefas.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Já dentro da Release, criaremos as tarefas:

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

A primeira tarefa adicionada foi a Replace Tokens, ela é responsável por trazer os arquivos armazenados em nosso artefato.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Na sequência adicionei o Terraform, você poderá adicionar a extensão. Você verá que há várias disponíveis, eu escolhi a Terraform.
Os demais modelos, requerem a utilização de uma storage account. Em outro post irei mostrar como utilizá-lo.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Configuração do Terraform

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Assim que a instalação estiver concluída, podemos proceder com as configurações.
Vamos necessitar de três configurações: Init, Plan e Apply.  Começamos com as definições do Init:

  1. Em Terraform Template Path: Selecione a pasta onde está o artefato que executamos nos passos anteriores;
  2. No campo, Terraform Arguments: Digite Init;
  3. Selecione após, a box Install Terraform;
  4. Em Terraform Version, digite Latest;
  5. O próximo passo é selecionarmos a box: Use Azure Service Principal Endpoint;
  6. No campo Azure Connection Type, selecione Azure Resource Manager
  7. E em Azure Subscription, selecione a sua Subscription do Azure.

Feito isso, vamos clicar  com o botão direito sobre ele e clonar a Task, apenas para fascilitar o trabalho, 🙂
Porem, vamos fazer algumas alterações para que tudo funcione da forma correta.

No clone abaixo de Init, vamos alterar apenas a propriedade Terraform Arguments, digitando : Plan

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Na sequência, clone a task e vamos repitir o processo, agora nomeando o próximo Terraform Arguments, como: apply -auto-approve

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Pronto!! Após isso, a configuração do Terraform está pronta!
Podemos então inciar nosso processo de Release, clicando em Create Release.

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Após completar o processo, você poderá verificar em sua conta do Azure os recursos criados!!

Azure DevOps e Terraform para entrega de Infraestrura como Código no Azure

Resumo

Esta é uma forma de iniciarmos a entrega de Infraestrutura como Código utilizando o Terraform em conjunto com o Azure DevOps.

Espero que isso tenha ajudado você a começar a sua jornada em IaC 🙂

Até o próximo!

Entregando Infraestrutura como Código usando Ansible e Azure DevOps


Olá a todos!! Neste post, vamos ver como podemos entregar Infraestrutura como Código usando Ansible e Azure DevOps.
Eu sei que geralmente usaremos o Ansible para entrega de alguns aplicativos em VMs ou até mesmo extensões em WebApps. Entretando, veremos que podemos utilizá-lo também para esse fim.

Para essa demo, seguiremos estas etapas:

  1. Crie um Service Principal no Azure;
  2. Forneça uma VM do Azure para executar o Ansible;
  3. Criar um repositório e criar / fazer o upload do seu código Ansible;
  4. Criar o pipeline e criar release;
  5. Implantar o Ansible Playbook;

Arquitetura

Vamos seguir a arquitetura abaixo para nossa entrega, nessa demo, usarei o Azure Repo como meu repositório de código. Mas você pode, além dele, utilizar também o GitHub.

1. Service Principal

O primeiro passo é criarmos um Service Principal no Azure, ele é necessário para autenticar a aplicação com o Azure API.
Logo, você pode utilizar tanto o modo gráfico no Azure ou utilizar o Azure CLI.

Nesta demo, utilizei o CLI, para criação do Service Principal. Guarde os dados, pois esses dados serão utilizados posteriormente.

Caso necessite de mais informações sobre o Azure Service Principal, você pode verificar a documentação aqui

2. Ansible VM

Será necessário termos uma VM com o Ansible instalado, o Ansible requer um agente remoto para os recursos possam ser provisionados no Azure.

Eu não irei cobrir a criação da máquina e a instalação do Ansible. Mas não há segredos aqui, eu utilizei uma VM padrão com Linux.

Após a criação da máquina, precisaremos adicionar nela os dados obtidos em nosso Service Principal, para que ao executar o playbook, a conexão com o Azure, possa ser efetuada.

Assim sendo, crie uma pasta e dentro desta pasta, crie um arquivo chamado: Credentials, dentro dele adicione as informações do Service Principal, conforme abaixo:

[default]

subscription_id=<your-Azure-subscription_id>

client_id=<azure service-principal-appid>

secret=<azure service-principal-password>

tenant=<azure serviceprincipal-tenant>

Ainda seria possível nesta máquina, configurar uma chave SSH para conexão. Para essa demo, utilizei apenas o usuário e senha padrão da minha máquina.

3. Conexão de Serviços no Azure DevOps

Agora com o projeto criado, vamos iniciar a configuração da VM no DevOps. Vamos em Project Settings > Service Connection > New Connection  e procure por SSH.

Aqui vamos configurar com os dados de nossa VM criada anteriormente.
Feito isso, estamos pronto para que nosso release faça conexão com a VM.

4. Azure DevOps

4.1 Repo e Pipeline

Agora nossa jornada começa efetivamente, vamos em Repos, aqui ficarão nossos códigos Ansible.

O próximo passo agora é irmos em Pipelines, vamos criar um novo.

Vamos utilizar o editor clássico para essa criação, após complete com as informações do repositório de códigos.

Após isso, vamos editar o Pipeline e então começar a configurá-lo.

Vamos adicionar uma nova tarefa, então procure por Copy File, vamos utilizar essa tarefa para copiar nosso arquivo de playbook, para uma diretório de artefatos.

  • No campo, Source Folder, selecione a pasta onde está o playbook.
  • Em, Contents, adicione a extensão dos arquivos que serão copiados, no nosso caso é: **/*.yml
  • E no campo, Target Folder, adicionamos a variável que irá armazenar os arquivos: $(build.artifactstagingdirectory)/Folder

Após isso, adicione a segunda tarefa, que será responsável por efetivamente publicar o artefato. Procure por Publish Artifact.

  • No campo, Path to publish, adicione a variável que setamos na cópia: $(build.artifactstagingdirectory)
  • Já em, Artifact name, já virá setado o valor drop
  • E no campo, Artifact Publish Location, já será selecionado o valor Azure Pipelines.

Então está finalizada a configuração de nosso Pipeline, agora você poderá clicar no botão Save & Queue.

4.2 Release Pipeline

Vamos em Release e então criamos um novo release pipeline.

Adicione um artefato, referenciando a pasta onde está seu arquivo e na sequência, clique nas tarefas, dentro de Stages.
Aqui vamos seguir basicamente os mesmos passos efetuados no Pipeline anterior, porem, teremos alguma diferenças.

O primeiro passo é irmos em Variables, aqui vamos adicionar os valores referenciados no código, como Resource Group e VMName. Esse passo não é necessário, caso não declares variáveis em seu código.

Assim que finalizar a edição das variávies, vamos voltar para as Taks e adicionar as demais tarefas.

A primeira Task a ser adicionada é a Replace Tokens, ela será responsável por adicionar os sufixos e adicionar os valores corretos das variáveis. No meu script eu utilizei os prefixos “__”, (2x underline);

Essa inclusão será feita no campo Token Suffix e Token Prefix, feito isso, podemos adicionar a próxima Task, que será o próprio Ansible.

Como falei lá no começo, o Ansible precisa de uma máquina para que seja executado o Playbook, então agora com a extenção, vamos configurá-la:

  1. No campo Ansible Location, selecione Remote Machine;
  2. Em Ansible SSH Endpoint, selecione a sua VM com o Ansible instalado;
  3. No campo Root, selecione a pasta onde está o seu código; 
  4. No campo File Path, coloque o nome do seu arquivo
  5. Já em Inventory Menu, selecione Host List, indicando que o inventário seja executado em nossa máquina.
  6. E no campo Host List, insira o IP Público da sua máquina

Pronto!! Já temos a configuração feita, agora você pode salvar e após isso clicar em Create Release

Nessa tela, você poderá acompanhar a execução do processo e após passar por todos os passos, você poderá verificar no Azure, que nossa máquina já estará criada.

Resumo

Essa é apenas uma maneira de utilizar o Ansible em conjunto com o Azure DevOps para entrega de Infraestrutura como Código.

Espero que esse modelo possa ajudar você a começar sua jornada com IaC no Azure DevOps.

Até o próximo!!

TDC 2019 Porto Alegre

TDC 2019 Porto Alegre

Olá pessoal, bora para o TDC 2019 Porto Alegre??

Eu irei participar na edição deste ano, entregando uma palestra sobre Ansible no Azure.

Será uma call bem legal, falando e principalmente mostrando como utilizar IaaS e PaaS com Ansible, no Azure, tudo isso de forma simples, rápida e com segurança.

As incrições estão abertas!! Então não perca tempo e garanta já a sua!! Você pode fazer diretamente aqui

Espero você lá! 🙂

Global Microsoft 365 Developer Bootcamp

Global Microsoft 365 Developer BootcampOlá Pessoal, no próximo sábado teremos o Global Microsoft 365 Developer Bootcamp, que ocorrerá na Umove arena.

Será um dia inteiro dedicado ao 0365, com palestras de diversos assuntos cobrindo desde Bots, Teams, Flow e entre outros.

Então não perca a oportunidade e garanta a sua vaga, o evento é gratuito e restam poucas vagas. O link de inscrição é esse

Minha participação será para falar sobre o Flow e como podemos utilizá-lo para aumentar nossa produtividade.

Espero você lá!!

2º Encontro Azure RS

2º Encontro Azure RS Olá pessoal, quem tá afim de um baita evento sobre Azure?? Então bora, que está chegando um grande evento da comunidade técnica para vocês!! O 2º Encontro Azure RS.

O evento contará com várias apresentações de diversos conteúdos como:

Automação de Recursos
Virtualização de Desktops
Big Data
Modernização de Aplicações
Segurança
Data Center Migration

Essa é uma exelente oportunidade para melhorar seus skills e também aumentar o networking.

Então não perde tempo e faça a sua inscrição no evento!! É FREE

2° Encontro Azure RS

Saturday, Sep 28, 2019, 8:30 AM

Tecnopuc
Av. Ipiranga, 6681 Porto Alegre, RS

142 Membros Went

No dia 28/09/2019, irá ocorrer a segunda edição do Azure RS para a comunidade técnica local, evento PRESENCIAL e GRATUITO, onde iremos contar com diversos especialistas da área, segue a grade de apresentações: 08:30 – Recepção e Coffee 09:00 – SAP e Azure – Entregando ambientes seguros e escaláveis – Lucas Chies 09:50 – Utilizando o Azure Sentinel …

Check out this Meetup →

 

Até lá!

Obtendo o Uptime de VMs utilizando o Azure Log Analytics

Obtendo o Uptime de VMs utilizando o Azure Log Analytics
Olá pessoal, tudo bem? Que o Log Analytics é uma excelente ferramenta, todo mundo já sabe, mas você sabe o que mais ele pode trazer de informações?

Podemos utilizá-lo para obter diversas informações sobre seu ambiente no Azure, mas uma das ações mais interessantes é poder obter informações de uptime de seus ambientes. E é sobre isso que vamos falar hoje.

Porque o Uptime?

O uptime das máquinas é uma informação muito relevante para ser coleta, pois é uma visão pontual sobre quanto tempo o ambiente ficou efetivamente ligado.  Através desta medição você poderá também cruzar as informações com seus sistemas de chamados, por exemplo.

Coleta

Para fazer a coleta, vamos iniciar definindo um espaço de tempo, o qual queremos coletar as informações. Você pode buscar por dia, por semana ou por mês.

Então iniciamos selecionando o espaço de tempo que vamos coletar os dados

let start_time=startofday(datetime(“2019-03-01”));

let end_time=endofday(datetime(“2019-03-22”));

 

Usaremos o heartbeat  como contador, a função dele é basicamente contar quantas vezes a máquinas responde aos seus pedidos.  Esta contagem será reportada por computador, no período de 1 hora e armazenados na variável buckets .

| summarize heartbeat_per_hour=count() by bin_at(TimeGenerated, 1h, start_time), Computer

| extend available_per_hour=iff(heartbeat_per_hour>0, true, false)

 

Se o retorno deste máquina for 0, será entendido que a máquina está desligada ou indisponível.

| summarize total_available_hours=countif(available_per_hour==true) by Computer

| extend total_number_of_buckets=round((end_time-start_time)/1h)

| extend availability_rate=total_available_hours*100/total_number_of_buckets

 

Seguindo o script ele irá juntar os valores para o availability_rate , dividindo o total de horas, multiplicadas por 100, pelo número de buckets.

Juntando tudo, você terá a saída abaixo, mostrando o nome do computador, o total de número de buckets, o total de horas disponíveis e o porcentagem de disponibilidade das máquinas.

Obtendo o Uptime de VMs utilizando o Azure Log Analytics

Pronto!! Já temos uma forma de obter a disponibilidade das suas VMs no Azure.

Espero que isso ajude em seu ambiente.

Até o próximo!

Ansible – Criando VM em uma vNet existente


Olá pessoal, vamos falar de Ansible?

Em alguns post anteriores mostrei como utilizarmos o Ansible para automatizar as criações de workloads no Azure. No cenário de hoje, vamos verificar como podemos consumir recursos de outros grupos de recursos.

Caso ainda não tenhas visto ou queira rever os outros conteúdos sobre Ansible, estão abaixo os links:

Consumindo Recursos

Seguindo o modelo anterior, vamos adicionar uma nova VM no ambiente, porem neste momento, já possuo uma rede virtual e desejo então, consumir esta mesma rede para este ambiente.

O primeiro passo que devemos fazer é adicionar as variáveis com os dados do recurso de desejamos consumir, no caso abaixo, vou adicionar a máquina em uma vNet já existente.

Após isso, basta adicionarmos as informações no código, referenciando os nomes dos recursos, adicinados nas variáveis

Pronto! Agora podemos rodar o código e nossa máquina será criada em um grupo de recursos, consumindo a rede que já é pré-existente.

Espero que isso ajude você, na construção de seus ambientes. Você também pode ver mais informações na documentação do Ansible para Azure .

Até o próximo!

 

Hardening na Nuvem, porque ele é importante?

Hardening na Nuvem, porque ele é importante?

Olá pessoal, hoje vou falar sobre o Hardening na Nuvem, você sabe porque ele é importante? O texto original foi publicado no linkedin, em inglês e você pode acessá-lo aqui: [ link ]

Quando pensamos em cloud e como manter o ambiente seguro, quase sempre há dois pensamentos: Firewalls e Cryptografia. É claro que isto é importante, mas há mais coisas que devemos estar atentos quando o assunto é segurança. Então é aqui que entra um ponto muito importante, o hardening do ambiente.

Usado comumente nos Data Centers físicos, saiba que ele também está disponível para ser consumido em Cloud e se você ainda não está usando, é melhor atentar à isso.

O Hardening, por definição, é uma coleção de ferramentas, tecnicas e melhores práticas para redução de vulnerabilidades em aplicações, sistemas, infraestrutura e outras áreas. Através disto é possível identificar, por exemplo, portas vulneráveis no ambiente, acessos indevidos, entre outros.

Mas claro, que isto não é algo que é feito apenas uma vez, é necessário uma metodologia de auditoria e também uma validação recorrente, para garantir sua efetividade.

Tipos de Hardening

Os tipos de hardening incluem:

  • Aplicações
  • Sistema Operacional
  • Servidores
  • Bancos de Dados
  • Rede

Mas, estamos falando de ambientes em nuvem, então além destes, também incluimos:

  • Subscription
  • Identity Management
  • IaaS
  • PaaS

Todas essas áreas devem ser inspecionadas pelo hardening, pois somente assim seu ambiente estará de fato coberto pela política. Atualmente temos algumas empresas responsáveis por gerar os standards e também prover os assessments para o ambiente, como NIST, PCI, DISA, CIS, etc.

Auditoria

A autitoria do seu ambiente poderá ser feita tanto manual, como de forma automatizada, pois as entidades reguladoras possuem sistemas para essa auditoria. Recentemente em um dos provedores de Cloud, já dispõem desta validação feita de forma nativa. Além disto, você também poderá contar com outras plataformas que também entregam este mesmo nível de auditoria, e também incluem, sistemas para implementação das políticas de hardening.

Os principais serviços de cloud, contam com uma imagem pronta com todas os itens de hardening implementados. Porem é necessário ter em mente que neste modelo, você terá que saber exatamente todos os itens que são passíveis de aplicação, para que possa desabilitar, caso tenha algum impacto em seu ambiente.

Outra saída é, criar a sua própria imagem, baseada na documentação de Hardening, aplicando apenas os itens que você julga necessário. Além disto, há também hardening para ambientes de rede, conteiners, Open Source…entre outros, que você também pode aplicar.

Concluindo…

Baseado nestas informações e também, levando em consideração que securanga é um ponto chave, tanto em ambientes de Cloud ou On premisses, fica evidênte que a aplicação do hardening tem uma implicação muito importante, trazendo benefícios relevantes, no que tange custos e proteção dos dados da empresas.

Este é um post introdutório sobre hardening em cloud, nos próximos dias irei publicar outros artigos, mais técnicos, sobre a implementação do mesmo, em um provedor de cloud.

 

 

Descomplicando o Azure – Azure Log Analytics

Descomplicando o Azure - Azure Log Analytics
Olá pessoal!! Após um período de estudos, retomei as contribuições para comunidade, participando do evento Descomplicando o Azure, falando sobre Azure Log Analytics e Governança.

Primeiro abordei o Azure Log Analytics e sua origem e aplicação e na sequência, falando sobre como utilizar isso na Governança.

O recurso de análise de logs, em outras palavras, ele é um concentrador de logs e através dele, podemos gerar relatórios e dashboards com dados do ambiente.

O Azure Log Analytics é oriundo do OMS (Operations Management Suit), com foco em coleta de dados de infraestrutura.

Com este recurso você poderá,  além de obter dados sobre a utilização dos recursos, também é possível utilizá-lo para gerar visões gerenciais, como coleta de dados de disponibilidade de seu data center, softwares instalados, portas em utilização e muito mais.

Concluindo, é uma suite completa que agora está integrada ao Azure Monitor, possibilitando que você utilize os scripts KQL, para gerar alertas. Em outras palavras é um aliado que você pode mandar ativo em seu ambiente.

Abaixo está o vídeo da palestra entregue no evento, espero que este conteúdo possa ajudá-lo no seu dia-a-dia.

Para acompanhar toda a série do Descomplicando o Azure, você acessar o canal do Azure Brasil

Até o próximo!

Governança Corporativa no Azure – Global Azure Bootcamp 2019

Governança Corporativa no Azure - Global Azure Bootcamp 2019

Governança Corporativa no Azure – Global Azure Bootcamp 2019

Olá pessoal,

Sábado passado, 27/04, ocorreu mais uma edição do Global Azure Bootcamp e depois de muito tempo sem contribuir para a comunidade, voltei a palestrar no evento. Foi uma viajem de 200Km até chegar em Araraquara-SP, para contribuir na primeira edição da Cidade. Nesta oportunidade abordei um assunto que é extremamente importante quando falamos sobre Cloud, que é a Governança Corporativa no Azure.

Este é um assunto que crítico e precisa se abordado com mais enfâse, pois quando falamos em ambientes de computação em nuvem, a governança é um processo vital, evitando que você siga por caminhos incorretos, causando falhas de segurança, falhas de gestão de acessos e principalmente gestão de custos. Para evitarmos essas dores de cabeça, devemos desenhar uma governança que cubra todos estes pontos e esteja sempre sendo atualizada, pois cloud é um ambiente vivo, que constantemente possui atualizações.

Assim, abordei estes pontos em minha palestra, mostrando como desenvolver a governança em nuvem de uma forma concisa e robusta, para não ter surpresas ao longo de sua jornada. Abaixo estão os slides utilizados nesta apresentação.

Page 1 of 9

Desenvolvido em WordPress & Tema por Anders Norén