Mostrando postagens com marcador Azure. Mostrar todas as postagens
Mostrando postagens com marcador Azure. Mostrar todas as postagens

terça-feira, 9 de julho de 2019

Linux ultrapassa Windows Server no Microsoft Azure


Foto: Shutterstock

Quando a Microsoft anunciou o lançamento de distribuições Linux em seu serviço de nuvem, poucas pessoas levaram o assunto a sério. Afinal, em 2012 o CEO da companhia era Steve Ballmer, que chegou a afirmar que considerava o Linux "um câncer".
Mas o investimento da empresa de Redmond deu certo. Isso porque, de acordo com informações do site especializado ZDNet, recentemente um desenvolvedor da Microsoft, chamado Sasha Levin, revelou que o uso do Linux ultrapassou o Windows Server no Azure.
O processo de crescimento do pinguim na plataforma da Microsoft se deu aos poucos, conforme aponta o próprio ZD Net. Em 2015, Mark Russinovich, CTO do Azure, afirmou que 25% das instâncias rodavam Linux. Em seguida, em 2017, a Microsoft anunciou que o Linux já era responsável pela participação de 40% nas máquinas virtuais. No ano seguinte, o número subiu para a metade, e agora Levin afirmou que o uso do Linux já é maior que o Windows no serviço de nuvem.
Segundo Scott Guthrie, vice-presidente-executivo de nuvem e grupo corporativo da companhia, os usuários estão migrando para sistemas operacionais de código aberto há cerca de uma década. "Tudo começou há mais de 10 anos, quando criamos o ASP.NET de código aberto. Reconhecemos que o código aberto é algo de que todo desenvolvedor pode se beneficiar. Não é legal, é essencial. Não é apenas código, é comunidade."
Sem contar o Sphere OS, da própria Microsoft, atualmente há oito distribuições Linux disponíveis no Azure: Red Hat, SUSE, openSUSE, Ubuntu, CentOS, Debian, CoreOS e Oracle Linux.

quarta-feira, 27 de março de 2019

Como criar um servidor na nuvem pelo Microsoft Azure

Por Luciano Gusso em 25/03/2019 no site Profissionais TI

Resultado de imagem para servidor na nuvem
Vale Cloud

Como muitos sabem, hoje um grande aliado para as empresas em geral é trabalhar com o auxilio da computação em nuvem.
Não vou entrar na parte teórica da nuvem, pois este assunto já foi bastante abordado aqui no PTI, mas, resumindo, dentre as principais vantagens de estar utilizando a nuvem está a economia que a mesma proporciona, pois a empresa pode reduzir custos de mão-de-obra e também em infraestrutura. Outra grande vantagem está ligada a questão de mobilidade, flexibilidade e disponibilidade, onde o colaborador pode estar trabalhando tanto na empresa como também em home office. Há também o fator de desempenho que a infraestrutura na nuvem oferece e o mais importante: segurança, pois as empresas que oferecem estes recursos dispõem de altos níveis de segurança das informações.
Bom, neste artigo irei demonstrar como criar um servidor básico na nuvem e como acessá-lo via conexão remota.
Exitem várias empresas que oferecem o serviço de Cloud Computing, porém, a que melhor me adaptei em estar trabalhando é com o Microsoft Azure.
Para isso, vamos estar acessando o site do Microsoft Azure clicando aqui.
Para quem não possui uma conta no Microsoft Azure, pode estar clicando em “Start free” para criar uma conta gratuita e então testar todas as funcionalidades do serviço.
CloudServer01
Na tela seguinte iremos novamente clicar em “Start free” para podermos criar uma conta com o e-mail que disponibilizamos.
CloudServer02
Com a conta gratuita criada, abrirá a página do Azure com todos os recursos disponibilizados. Como criamos uma conta gratuita, teremos o valor de US$ 750.00 para testar os recursos disponíveis.
Como queremos criar um servidor, o primeiro passo é clicar em “Máquinas Virtuais”, que está dentre as opções na coluna da esquerda ou clicando no ícone no parte superior da página que é o espaço destinado aos serviços mais utilizados.
CloudServer03
Dentro de “Máquinas virtuais”, iremos clicar em “Adicionar”, que está como primeira opção na parte superior da tela, ou podemos clicar também em “Criar máquina virtual”, situado na parte inferior da página.
CloudServer04
A primeira guia que aparecerá em máquina virtual é “Básico” que se refere as opções de recursos, nome, tamanho e localização do Servidor. 
A primeira opção que devemos fazer é referente ao campo “Grupo de recursos”, o qual devemos clicar em “Criar novo”.
Neste exemplo iremos colocar “RecursosVM”, que deve ser preenchido sem espaços e sem caracteres especiais, e em seguida clicar em “OK”.
CloudServer06
O próximo passo é  preencher os campos referentes aos detalhes da instância. Aqui no caso foi deixado o nome da VM como “CloudServer”, em seguida a região onde estará localizado o servidor, que aqui no caso foi deixado em “Leste dos EUA”. Nesta opção, dependendo da região pode ser que não tenha disponibilizada a imagem do sistema operacional que se deseja usar.
Em “Opções de disponibilidade” iremos deixar como nenhuma infraestrutura para redundância, já que estamos criando um servidor simples.
Dentro da opção de imagem, aparecerá os servidores mais comumente utilizados e que neste caso iremos escolher o “Windows Server 2016 Datacenter”.  Se quisermos ver todas as imagens disponíveis, basta clicar em “Procurar todas as imagens e discos”.
CloudServer07
Na próxima opção escolhemos o tamanho da imagem, o qual adiciona a CPU utilizada e memória. Por padrão, ficou a versão Standard, mas podemos escolher outro tamanho como também terá os valores de cada um.
CloudServer08
Na sequência criamos a conta do administrador, o qual poderá logar e ter acesso a todos os recursos do servidor.
Então colocamos o nome do administrador e a senha. Lembrando que a senha terá que ter no mínimo 12 caracteres e ter um nível forte de complexidade.
CloudServer09
A seguir teremos que escolher as portas de entrada deste servidor. Como estaremos utilizando o Windows Server, iremos selecionar a porta via RDP (Remote Desktop Protocol), ou seja, acessaremos via conexão remota. Se estivéssemos escolhendo um Linux como servidor, escolheríamos a porta SSH.
CloudServer10
Em seguida, caso já tenha comprado a licença do Windows Server, marque como sim e coloque o serial. No caso aqui, como não temos licença, deixaremos como não.
Como são as opções básicas para a criação da máquina virtual, poderíamos apenas clicar em “Revisar + criar” para criar esta VM, mas iremos revisar todas as opções das outras guias. Então clicaremos em “Avançar discos”.
CloudServer11
Em “Discos” podemos escolher SSD ou HD. Como é indiscutível a velocidade do SSD, iremos deixar selecionada esta opção. Se quisermos anexar mais discos ao servidor só precisamos  clicar em “Criar e anexar um novo disco” e em seguida clicar em “Avançar Rede”.
CloudServer12
Em opções de rede só iremos revisar como está. Se quisermos, podemos estar modificando a segurança dos adaptares de rede, mas como aqui estamos trabalhando com o básico, iremos clicar em ” Avançar Gerenciamento”.
CloudServer13
Como fizemos em rede, aqui também só vamos rever as opções e clicar em “Avançar configuração de convidado”.
CloudServer14
Nesta guia também iremos só revisar e clicar em “Avançar marcas”, pois, não vamos adicionar nenhuma extensão para automação.
CloudServer15
A guia Marcas é utilizada quando quer filtrar por recursos. É uma forma de se manter organizado para controlar o servidor dentro do Azure. Como não iremos criar nenhuma marca, iremos clicar em “Avançar em Revisar + criar”. 
CloudServer16
Na guia “Revisar + criar” aparecerá o resumo de todas as opções configuradas e após revisar clicaremos em “Criar”.
CloudServer17
Iremos reparar que abrirá no canto superior direito uma pequeno quadro informativo que está inicializando a implantação.
CloudServer18
Em seguida aparecerá na tela informações do andamento da implantação e o tempo previsto para finalizar.
CloudServer19
Com a implantação concluída, iremos clicar em “Ir para o recurso”.
CloudServer20
A seguir, aparecerá o painel de controle do nosso servidor, onde podemos gerenciá-lo. Podemos, por exemplo, adicionar discos, alterar opções de rede e segurança entre outras opções.  
Dentro da opção visão geral, teremos informações como localização do servidor e endereço de IP público, o qual iremos utilizar para acessar o servidor pelo aplicativo de conexão remota do Windows.
CloudServer21
Caso queira uma maneira mais simples e rápida de se conectar ao invés de abrir o aplicativos de conexão remota, neste painel da visão geral clicaremos em “Conectar”, onde aparecerá uma nova janela no lado direito do painel e então clicaremos em “Baixar arquivo RDP”. 
Neste arquivo que irá baixar, clicaremos nele para abrir a janela para conexão.
CloudServer22
Na janela que aparece, iremos clicar em “Conectar” para acessar o servidor pelo seu endereço IP através da porta 3389 que é a destinada a porta RDP.
CloudServer23
Aparecerá a janela para digitar as credenciais do administrador do servidor. Clicaremos em “Mais opções” para selecionar outro usuário.
CloudServer24
Em seguida clicaremos em “Usar uma conta diferente” e colocaremos o usuário e login referente ao administrador cadastrado no Azure.
CloudServer25
Na janela seguinte, clicaremos em “Sim”.
CloudServer26
E então teremos acesso ao Servidor, onde poderemos configurar seus softwares e armazenamentos conforme a escolha da empresa.
CloudServer27
Se clicar em Local Server entre as opções na coluna da direita, iremos poder ver as informações como grupo de trabalho, nome do servidor, configurações do processador e memória.
CloudServer28
Acho que é isso pessoal! É claro que agora tem que configurar o servidor para uso conforme suas necessidades, mas a intenção aqui foi demonstrar um servidor básico na nuvem.
Até a próxima.

sábado, 30 de dezembro de 2017

Principais habilidades para ser contratado em 2018

Por Computerworld em 26/12/2017


Para ajudálo a invetir exatamente naquilo que os empregadores estão procurando, compilamos uma lista de habilidades técnicas com demanda em rápido crescimento. 

"Quando as pessoas procuram novos empregos, muitas vezes usam termos de pesquisa que descrevem habilidades de ponta associadas aos trabalhos que desejam. Do lado do empregador, no entanto, é o talento tecnológico altamente especializado que tem feito a diferença", diz Daniel Culbertson, economista da Indeed.

Aqui estão as habilidades que serão mais procuradas em 2018.

1 - React
React é uma biblioteca JavaScript para criação de interfaces de usuário usada pelo Facebook, Instagram e desenvolvedores individuais, bem como outras corporações. Até agora, o projeto React tem o segundo maior número de contribuidores para sua base de código no GitHub.

"Na verdade, o React é, de longe, o termo de busca de habilidades tecnológicas de mais rápido crescimento. O uso nas buscas curriculares mais do que triplicou", diz Culbertson. "Isso mostra a rapidez com que o React está ganhando popularidade entre as empresas de tecnologia voltadas para o consumidor e como a proficiência é vital para os desenvolvedores front-end. Simplificando, a experiência com o React tornou-se essencial para muitos trabalhos de tecnologia ".

2 - Azure
O Azure é a solução para computação em nuvem da Microsoft. Fornece software-como-serviço (SaaS), plataforma-como-serviço (PaaS), infraestrutura-como-serviço (IaaS) e suporta uma série de diferentes linguagens de programação, de acordo com a Microsoft. A linguagem de programação Python é amplamente utilizada no Azure para criar aplicativos da web, por isso também é uma habilidade importante para se ter, diz Culbertson. 

3 - Amazon Web Services
A Amazon Web Services (AWS) é a principal plataforma de computação em nuvem que as empresas usam para processamento e armazenamento off-site. "A computação em nuvem como um todo está crescendo a passos largos", diz Culbertson.

"Todas as empresas de todas estão aumentando seu uso de computação e armazenamento off-site, e isso está tornando os desenvolvedores de nuvem experientes em um must-have para muitos empregadores", diz ele.

4 - Offensive Security Certified Professional
Com brechas de dados, hacks e ataques maliciosos nas manchetes, não é de admirar que organizações busquem talentos que possam ajudar a identificar e fortalecer pontos de fraqueza. Um Offensive Security Certified Professional (OSCP) é capaz de examinar uma rede, escolher os alvos dentro do escopo, explorá-los e documentar seus resultados em um relatório de teste de penetração.

5 - Spark
O Apache Spark é um framework de computação de código aberto e um mecanismo de processamento de dados usado para análise de dados, streaming, SQL, aprendizagem de máquinas e muito mais, por gigantes da tecnologia como Netflix, eBay e Yahoo. As aplicações podem ser escritas em uma infinidade de idiomas, incluindo Java, Scala, Python e R, para citar alguns.

6 - AngularJS
AngularJS é um framework JavaScript de código aberto, mantido pelo Google e uma grande comunidade de desenvolvedores, que auxilia na execução de single-page applications. Leva as capacidades do HTML alguns passos adiante.

7- R
R é um idioma de programação de código aberto e um ambiente de software amplamente utilizado por estatísticos, mineradores de dados e cientistas de dados para desenvolver software e realizar análises de dados.

sexta-feira, 4 de agosto de 2017

IaaS, PaaS e SaaS.. Qual a diferença?

Por Robson Amorim
Em 03/08/2017 no Blog Lambda3

Resultado de imagem para azure

Você já deve ter ouvido em algum evento, meetup, video ou até conversando com seus amigos de profissão, mas você sabe qual é a diferença entre IaaS, PaaS e SaaS?
Estas buzzwords tem se tornado bastante populares graças à forte abrangência dos grandes portais de cloud, como Azure, AWS, Google Cloud entre outros.
IaaS, SaaS e PaaS são modelos de serviço oferecidos em cloud computing e possuem diferentes níveis de controle, flexibilidade e gerenciamento. Neste artigo abordaremos estes modelos na forma que são oferecidos pelo Windows Azure.

IaaS – Infrastucture as a Service / Infraestrutura como Serviço
Fonte: https://azure.microsoft.com/pt-br/overview/what-is-iaas/
Neste modelo de serviço o seu provedor de cloud irá disponibilizar para o seu uso serviços voltados para infraestrutura como backup, redes, VMs, servidores são alguns exemplos desta modalidade. Algo que vale a pena ser mencionado é a flexibilidade oferecida neste serviço, em armazenamento, velocidade e configuração de servidores e serviços. Esta flexibilidade é vertical, por exemplo você pode alterar os configurações do seu servidor, mas não obter mais servidores ao menos que você utilize serviços próprios para isto.  No IaaS você será o responsável por cuidar de toda a configuração necessária para o uso, como instalação de servidores de aplicação, certificados, SOs, firewalls etc.

PaaS – Plataform as a Service / Plataforma como serviço
Fonte: https://azure.microsoft.com/pt-br/overview/what-is-paas/
Neste modelo de serviço o portal irá disponibilizar a plataforma para desenvolvimento e gerenciamento do seus aplicativos na nuvem, sem que você precise se preocupar com a configuração de infraestrutura necessária para que esta plataforma esteja em funcionamento, configurações como SOs, servidores de aplicação e etc. Um servidor que hospeda seu site é um exemplo de um serviço PaaS. O Windows Azure, além de IaaS e SaaS, também se encaixa nesta categoria por oferecer ao usuário a plataforma necessária para desenvolver as suas próprias aplicações sem que ele precise se preocupar com a infraestrutura por traz disto.
Então quando você hospeda um site .NET em serviço de hospedagem, você contrata a plataforma de hospedagem, não importando neste momento as configurações adicionais de infraestrura que proverão esta plataforma.

SaaS – Software as a Service / Software como Serviço
Fonte: https://azure.microsoft.com/pt-br/overview/what-is-saas/
Software como serviço caracteriza-se pela oferta de um produto completo hospedado e gerenciado pelo fornecedor. Normalmente neste modelo de serviço o usuário adquiri algum tipo de licença temporária ou não de uso. Entenda o software aqui como um produto pronto para o usuário final. O Office 365 é um exemplo de SaaS, assim como provedores de email, ERP entre outros.

A imagem abaixo descreve bem as responsabilidades envolvidas em cada um dos modelos de serviço:
Fonte: https://stack247.wordpress.com/2015/05/21/azure-on-premises-vs-iaas-vs-paas-vs-saas/



Referências:
https://azure.microsoft.com/pt-br/overview/what-is-iaas/
https://azure.microsoft.com/pt-br/overview/what-is-paas/
https://azure.microsoft.com/pt-br/overview/what-is-saas/
https://aws.amazon.com/pt/types-of-cloud-computing/

quarta-feira, 28 de junho de 2017

Criando uma VM Azure usando Chef

Não faz mais sentido em 2017 configurar um servidor sem algum sistema de orquestração. A própria ideia de configurar um servidortalvez esteja caindo em desuso. Não faz mais sentido se logar em um servidor Linux por SSH e instalar pacotes como se você estivesse na sua máquina de trabalho. Temos ferramentas para versionar, organizar e automatizar cada passo. E a preocupação com a orquestração não é um papel apenas de um DevOPS mas um papel que precisa ser apropriado por qualquer desenvolvedor.
O propósito deste tutorial é o de criar uma VM Azure através de Resource Manager Templates via Chef. Não é necessário nenhum conhecimento prévio de ARM Templates ou de Chef, mas quem conhece um ou outro também pode se beneficiar.
Porque alguém criaria uma VM via Chef, usando um tutorial com uma dezena de passos quando posso criar uma VM pelo portal do Azure ou numa simples linha de comando usando Azure Cli?
E se você precisar criar não uma, mas 5, 10 VMs? E se essas VMs não forem idênticas mas com configurações específicas, como você organiza a configuração de cada VM? Numa planilha? E se você tivesse um repositório onde pudesse replicar toda a sua infra estrutura em poucos minutos? E se você puder manter tudo isso versionado, num Git por exemplo? E mesmo que seja uma única VM, ter as características desta VM salvas num repositório versionado com a possibilidade de o ambiente poder ser recriado a qualquer momento já não é uma vantagem suficiente?
As possibilidades são infinitas. E como os recipes são em Ruby, você tem em mãos todas as possibilidades lógicas que uma linguagem de alto nível oferece.
  • Nossa VM vai ser criada usando Chef em local-mode, ou seja, apenas através de sua máquina de trabalho.
  • Esse tutorial deve funcionar em qualquer Sistema Operacional. Como o Powershell aceita tanto barras simples (/) quanto invertidas (\), nos comandos comuns mantive as barras simples, em nome da simplicidade.
  • Se você usa Bash on Windows ou Cygwin pode acompanhar o tutorial seguindo os passos de UNIX, sem medo.
  • No universo UNIX, chamamos de diretório o que no Windows se chama de pasta. Quando ler diretório, entenda como pasta.
    Para quem curte uma discussão filosófica, o Stack Overflow é sempre um ponto de partida.
  • No Mac, se você não tiver o comando wget pode usar o curl para fazer downloads por linha de comando. A sintaxe é bem simples:
    curl -O [url]

Requisitos:

  1. Instale o ChefDK: https://downloads.chef.io/chefdk
  2. Instale o plugin chef-provisioning-azurerm
    chef gem install chef-provisioning-azurerm
  3. Instale o Python Azure CLI 2.0 ou Powershell Azure SDK para configurar as credenciais para o Chef.
    • Num shell UNIX:
      Você precisa de Python PIP (digite pip, veja se o comando existe). Caso não tenha siga uma destas instruções para alguma distro Linux. Claro que com Bash on Windows você deve seguir as instruções de Ubuntu. Para Mac, um simples sudo easy_install pip pode ser o suficiente. Ou use MacPorts ou Homebrew. No Cygwin você precisa de python-setuptools para então instalar o pip via easy_install pip.
      pip install --user azure-cli
      Acrescente o diretório bin de instalação do python local na variável PATH do usuário.
      echo 'PATH=~/.local/bin:$PATH' >> ~/.bashrc
      source ~/.bashrc
    • No Windows, Azure Powershell.
      Os detalhes podem ser encontrados aqui.
      A instalação do módulo azurerm precisa ser executada com uma instância de Powershell como Administrador. Abra uma nova janela, selecionando através do menu Executar como administrador.
      Install-Module AzureRM
      Se receber o prompt abaixo, digite Y ou A:
      Untrusted repository
      You are installing the modules from an untrusted repository. If you trust this repository, change its
      InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from      'PSGallery'?
      [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y
      Altere a política de execução para Bypass
      Set-ExecutionPolicy -ExecutionPolicy Bypass
      Feche essa janela como administrador, retorne à janela comum de Powershell e importe o módulo que acabamos de instalar:
      Import-Module AzureRM

Mãos à obra!

    1. Crie um repositório Chef.
      Eu costumo criar meus ambientes de trabalho em ~/Projects. Mas você pode organizar de outra forma, em outro diretório. O nome do repositório Chef também fica a critério de cada um.
      cd ~/Projects
      chef generate repo chef-repo
      Para facilitar, vamos exportar uma variável temporária para a raiz do repositório.
      • Num shell UNIX:
        export CHEF_REPO=~/Projects/chef-repo
      • No Powershell:
        $CHEF_REPO = "~\Projects\chef-repo"
      No decorrer do tutorial vamos usar a localização de diretórios a partir desta variável, $CHEF_REPO.
    2. Crie um diretório .chef dentro do repositório que acabamos de criar.
      mkdir $CHEF_REPO/.chef
    3. Crie o arquivo knife.rb. Este é um arquivo de configuração básico do nosso ambiente de Chef local. Use o seu editor favorito.
      1
      2
      3
      4
      5
      6
      7
      # $CHEF_REPO/.chef/knife.rb
      log_level                :info
      current_dir = File.dirname(__FILE__)
      node_name                "provisioner"
      client_key               "#{current_dir}/dummy.pem"
      validation_key           "#{current_dir}/dummy.pem"
      validation_client_name   "validator"
    4. Vamos criar uma chave SSH. Ela vai ser nossa forma de autenticação para a nova VM.
      É importante que o nome das chaves que você for criar corresponda às variáveis no arquivo $CHEF_REPO/.chef/knife.rb. Vamos referenciar a chave publica por este arquivo logo mais no recipe.
      • Nos UNIX:
        cd $CHEF_REPO/.chef
        ssh-keygen -f dummy.pem
      • No Windows, se você não tiver um OpenSSH ou não quiser instalar um, pode instalar o PuTTY:
        https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
        Execute PuTTYgen. Clique em generate. Deixe os valores padrão, ou pelo menos adicione uma senha. Clique em Save private key. Escolhe um nome. Aqui estamos usando dummy mas o critério é seu. Navegue até a pasta .chefdentro do nosso repositório chef e salve sua chave privada.
        Clique em Save public key. Por coerência, use o mesmo nome mas acrescente uma extensão, que por convenção estamos chamando de .ppk.pub. No nosso exemplo é dummy.ppk.pub.
        Volte ao Powershell e liste o conteúdo de $CHEF_REPO/.chef. O comando deve te listar três arquivos.
        PS C:\Users\aline\Projects\chef-repo\.chef> dir
        
        
            Directory: C:\Users\aline\Projects\chef-repo\.chef
        
        
        Mode                LastWriteTime         Length Name
        ----                -------------         ------ ----
        -a----       22/06/2017     20:13           1460 dummy.ppk
        -a----       22/06/2017     20:13            477 dummy.ppk.pub
        -a----       22/06/2017     20:13            252 knife.rb
                    
    5. Crie as credenciais de acesso ao Azure pelo Chef.
      • UNIX
        az login
        Siga os passos, se autentique no navegador. Quando terminar execute:
        az account list
        Tenha certeza que a assinatura (subscription) que você vai utilizar esteja com o valor IsDefault para true.
        Substitua a subscription ID do comando anterior com SUA_SUBSCRIPTION_ID no parâmetro scopes a seguir.
        az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/SUA_SUBSCRIPTION_ID"
        Crie o arquivo ~/.azure/credentials neste formato:
        1
        2
        3
        4
        [SUA_SUBSCRIPTION_ID]
        client_id = "48b9bba3-YOUR-GUID-HERE-90f0b68ce8ba"
        client_secret = "your-client-secret-here"
        tenant_id = "9c117323-YOUR-GUID-HERE-9ee430723ba3"
        Sendo:
        SUA_SUBSCRIPTION_ID, a subscription ID utilizada anteriormente.
        client_id, o valor de AppId.
        client_secret, o valor de Password.
        tenant_id, o valor de tenant.
      • Windows Powershell
        Login-AzureRmAccount
        Verifique se a subscription corrente é a subscription que você realmente pretende trabalhar.
        (Get-AzureRmContext).Subscription
        Anote o Name e a Id da sua subscription. A Id vamos usar logo mais no recipe.
        Faça o download do script e execute.
        Invoke-WebRequest -URI https://gist.githubusercontent.com/sjkp/186d36334b27656a05cd/raw/6acba8599e0906e7fc1957195cd5f7204673d952/New-AzureRmServicePrincipal.ps1 -OutFile New-AzureRmServicePrincipal.ps1
        .\New-AzureRmServicePrincipal.ps1
        Ele pede subscriptionName, que mencionei logo acima.
        Observe que é o nome, não a ID. E ele pede uma senha, que vai ser a senha que irá utilizar para seu APP. Gere uma senha ramdomica complexa, já que ela vai ficar salva numa variável de ambiente.
        Pelo Powershell vamos adicionar as seguintes variáveis:
        AZURE_CLIENT_ID com o valor de Service Principal Id.
        AZURE_CLIENT_SECRET com o valor da senha que você criou.
        AZURE_TENANT_ID com o valor de Tenant Id.
        Aqui adicionamos as variáveis no Powershell corrente:
        $Env:AZURE_CLIENT_ID = "48b9bba3-YOUR-GUID-HERE-90f0b68ce8ba"
        $Env:AZURE_CLIENT_SECRET = "your-client-secret-here"
        $Env:AZURE_TENANT_ID = "9c117323-YOUR-GUID-HERE-9ee430723ba3"
                    
        E aqui adicionamos permanentemente nas variáveis de usuário:
        [Environment]::SetEnvironmentVariable("AZURE_CLIENT_ID", $AZURE_CLIENT_ID, "User")
        [Environment]::SetEnvironmentVariable("AZURE_CLIENT_SECRET", $AZURE_CLIENT_SECRET, "User")
        [Environment]::SetEnvironmentVariable("AZURE_TENANT_ID", $AZURE_TENANT_ID, "User")
    6. Crie um cookbook para nosso recipe, ou seja, nossa receita de criação de uma VM Azure.
      cd $CHEF_REPO/cookbooks
      chef generate cookbook chef-azure
    7. Vamos criar o recipe propriamente. Use seu editor favorito e edite o arquivo $CHEF_REPO/cookbooks/chef-azure/recipes/default.rb
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      # cookbooks/chef-azure/recipes/default.rb
      #
      # Cookbook:: chef-azure
      # Recipe:: default
      #
      # Copyright:: 2017, Aline Freitas, All Rights Reserved.
       
      require 'chef/provisioning/azurerm'
      with_driver 'AzureRM:SUA_SUBSCRIPTION_ID'
       
      azure_resource_group 'chefrg' do
        location 'East US'
        tags businessUnit: 'DEV'
      end
       
      azure_resource_template 'MyDeployment' do
        resource_group 'chefrg'
        template_source "#{Chef::Config[:cookbook_path]}/#{cookbook_name}/files/azuredeploy.json"
        parameters adminUsername: 'ubuntu',
                   sshKeyData: File::read("#{Chef::Config[:validation_key]}.pub")
      end
      • O campo with_driver 'AzureRM:SUA_SUBSCRIPTION_ID' precisa ser corrigido com a sua SUBSCRIPTION ID que usamos outras vezes.
      • adminUsername pode ser substituído por outro nome de usuário a sua escolha.
      • Como informei antes, sshKeyData lê a chave pela localização da chave privada no arquivo $CHEF_REPO/.chef/knife.rb acrescido da extensão .pub. Adapte ao seu cenário se for necessário.
    8. Precisamos acrescentar o template da nossa VM.
      Aqui vamos utilizar um template bem simples, que cria uma VM Ubuntu usando uma chave SSH como método de autenticação.
      mkdir $CHEF_REPO/cookbooks/chef-azure/files
      cd $CHEF_REPO/cookbooks/chef-azure/files
      • UNIX
        wget https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-sshkey/azuredeploy.json
      • Powershell
        Invoke-WebRequest -URI https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-sshkey/azuredeploy.json -OutFile azuredeploy.json
    9. E por fim vamos executar a criação do nosso ambiente.
      cd $CHEF_REPO
      chef-client -o chef-azure -z
      chef-azure aqui no comando é o nome do nosso cookbook. Lembre-se de substituir se o cookbook for criado com outro nome.
    10. Agora podemos nos logar na nossa nova VM.
      Em um cenário de produção, o nome da VM seria dado como um parâmetro, ou gerado automaticamente através de algum critério do usuário. No caso deste template, como ele é bem simples, apenas para demonstração, o nome da VM é hardcoded: sshvm.
      • UNIX
        Precisamos novamente do azure-cli para obter o IP da nossa VM.
        az vm list-ip-addresses -n sshvm
        O output vai ser algo assim:
        VirtualMachine        PublicIPAddresses    PrivateIPAddresses
        ----------------      -------------------  --------------------
        sshvm                 91.169.135.236       10.0.1.35

        Então se logar é bem simples. Lembre-se do nosso recipe, o nome de usuário utilizado foi ubuntu.
        ssh -i $CHEF_REPO/.chef/dummy.pem.pub ubuntu@91.169.135.236
      • Powershell
        Como tivemos que abrir uma nova instância de powershell, talvez você precise se logar novamente.
        Import-Module AzureRM
        Login-AzureRmAccount
        E no snippet abaixo informe o nome do Resource Group utilizado na criação da sua VM. No exemplo nosso foi chefrg.
        Como o template é bem simples, apenas para demonstração, o nome da VM é hardcoded: sshvm.
        $vm = Get-AzureRmVM -Name "sshvm" -ResourceGroupName "chefrg"
        $NIC = Get-AzureRmNetworkInterface  | where { $_.Id -eq $vm.NetworkProfile.NetworkInterfaces[0].Id }
        Get-AzureRmPublicIpAddress | where {$_.Id -eq $NIC.IpConfigurations[0].PublicIpAddress.Id} | Select IpAddress
        O output vai ser algo assim.
        IpAddress
        ---------
        91.169.135.236
      • PuTTY
        Para se logar, abra o PuTTY. Pelo menu Category do lado esquerdo navegue para Connection -> SSH -> Auth.
        Em Private key for authentication navegue até a nossa chave, que chamamos de dummy.
        No mesmo menu Category, clique no primeiro item, Session.
        Em Host Name (or IP Address) insira no formato usuário@IP.
        No nosso exemplo fica: ubuntu@91.169.135.236.
      Se você conseguiu se logar e receber um shell prompt, parabéns!