Usar ferramentas de automação de infraestrutura com máquinas virtuais no Azure

Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis ✔️ Conjuntos de dimensionamento uniformes

Para criar VMs (máquinas virtuais) em larga escala de maneira consistente, é ideal ter algum grau de automação. Há muitas ferramentas e soluções que permitem automatizar a implantação de toda a infraestrutura do Azure e o ciclo de vida de gerenciamento. Este artigo apresenta algumas das ferramentas de automação de infraestrutura que você pode usar no Azure. Essas ferramentas normalmente se encaixam em uma das seguintes abordagens:

Terraform

O Terraform é uma ferramenta de automação que permite definir e criar toda uma infraestrutura do Azure com uma única linguagem em formato de modelo - a HCL (HashiCorp Configuration Language). Com o Terraform, você define modelos que automatizam o processo para criar recursos de rede, armazenamento e VM para determinada solução de aplicativo. Você pode usar os modelos do Terraform existentes para outras plataformas com o Azure a fim de garantir a consistência e simplificar a implantação da infraestrutura sem a necessidade de convertê-los em modelos do Azure Resource Manager.

Saiba como:

Automação do Azure

A Automação do Azure usa runbooks para processar um conjunto de tarefas nas máquinas virtuais desejadas. A Automação do Azure é usada para gerenciar VMs existentes em vez de criar uma infraestrutura. A Automação do Azure pode ser executada em VMs do Linux e do Windows e em VMs e computadores físicos locais com um trabalho de runbook híbrido. Os runbooks podem ser armazenados em um repositório de controle de origem, como o GitHub. Esses runbooks podem ser executados manualmente ou em um agendamento definido.

A Automação do Azure também oferece um serviço de DSC (Configuração de Estado Desejado) que permite criar definições de como determinado conjunto de máquinas virtuais deve ser configurado. A DSC faz com que a configuração obrigatória seja aplicada e a VM permanece consistente. A DSC da Automação do Azure é executada em computadores Windows e Linux.

Saiba como:

Azure DevOps Services

O Azure DevOps Services é um pacote de ferramentas que ajuda você a compartilhar e acompanhar código, usar builds automatizados e criar um pipeline de CI/CD (integração e desenvolvimento contínuos completos). O Azure DevOps Services integra-se ao Visual Studio e a outros editores para simplificar o uso. O Azure DevOps Services também pode criar e configurar VMs do Azure e implantar o código nelas.

Saiba mais sobre:

Modelo do Azure Resource Manager

O Azure Resource Manager é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua assinatura do Azure. Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

Saiba como:

Bicep

O Bicep é um DSL (linguagem específica de domínio) que usa sintaxe declarativa para implantar recursos do Azure. Em um arquivo Bicep, você define a infraestrutura que deseja implantar no Azure e, em seguida, usa esse arquivo durante todo o ciclo de vida de desenvolvimento para implantar repetidamente a sua infraestrutura. Os seus recursos são implantados de maneira consistente.

Comece com o Início Rápido.

Cloud-init

Inicialização de nuvem é uma abordagem amplamente utilizada para personalizar uma VM do Linux, quando ela é inicializada pela primeira vez. Você pode utilizar a inicialização de nuvem para instalar pacotes e gravar arquivos, ou para configurar usuários e segurança. Como o cloud-init é chamado durante o processo inicial de inicialização, não há etapas adicionais ou agentes necessários para aplicar sua configuração. Para obter mais informações sobre como formatar corretamente seus arquivos #cloud-config, consulte o site de documentação de cloud-init. Os arquivos #cloud-config são arquivos de texto codificados em base64.

A inicialização de nuvem também funciona em distribuições. Por exemplo, você não usa apt-get install nem yum install para instalar um pacote. Em vez disso, você pode definir uma lista de pacotes para instalar. Inicialização de nuvem usa automaticamente a ferramenta de gerenciamento de pacote nativo de distribuição que você selecionar.

Trabalhamos ativamente com nossos parceiros endossados de distribuição de Linux para termos imagens de cloud-init habilitadas disponíveis no Azure Marketplace. Essas imagens fazem com que as implantações e as configurações do cloud-init funcionem perfeitamente com VMs e conjuntos de dimensionamento de máquinas virtuais. Saiba mais detalhes sobre o cloud-init no Azure:

PowerShell DSC

A DSC (Configuração de Estado Desejado) do PowerShell é uma plataforma de gerenciamento para definir a configuração dos computadores de destino. A DSC também pode ser usada no Linux por meio do servidor OMI (infraestrutura de gerenciamento aberta).

As configurações de DSC definem o que instalar em um computador e como configurar o host. Um mecanismo do LCM (Gerenciador de Configurações Local) é executado em cada nó de destino que processa as ações solicitadas com base em configurações enviadas por push. Um servidor de pull é um serviço Web que é executado em um host central para armazenar as configurações de DSC e os recursos associados. O servidor de pull se comunica com o mecanismo de LCM em cada host de destino para fornecer as configurações necessárias e os relatórios de conformidade.

Saiba como:

Extensão de Script Personalizado do Azure

A Extensão de Script Personalizado do Azure para Linux ou Windows baixa e executa scripts em VMs do Azure. É possível usar a extensão ao criar uma VM ou a qualquer momento depois que a VM estiver em uso.

Os scripts podem ser baixados do armazenamento do Azure ou de qualquer local público, por exemplo, um repositório GitHub. Com a Extensão de Script Personalizado, você pode escrever scripts em qualquer linguagem compatível com a VM de origem. Esses scripts podem ser usados para instalar aplicativos ou configurar a VM conforme desejado. Para proteger as credenciais, informações confidenciais, como senhas, podem ser armazenadas em uma configuração protegida. Essas credenciais são descriptografadas somente dentro da VM.

Saiba como:

Ansible

Ansible é um mecanismo de automação para gerenciamento de configurações, criação de VMs ou implantação de aplicativos. O Ansible usa um modelo sem agente, normalmente com as chaves SSH para autenticar e gerenciar computadores de destino. As tarefas de configuração são definidas em guias estratégicos, com vários módulos do Ansible disponíveis para a realização de tarefas específicas. Para saber mais, confira Como o Ansible funciona.

Saiba como:

Chef

O Chef é uma plataforma de automação que ajuda a definir como a infraestrutura é configurada, implantada e gerenciada. Alguns componentes incluem o Chef Habitat para a automação do ciclo de vida do aplicativo, em vez da infraestrutura, e o Chef InSpec, que ajuda a automatizar a conformidade com os requisitos de segurança e política. Os clientes Chef são instalados em computadores de destino, com um ou mais Servidores Chef centrais que armazenam e gerenciam as configurações. Para saber mais, confira Visão geral do Chef.

Saiba como:

Puppet

O Puppet é uma plataforma de automação pronta para empresas que gerencia o processo de entrega e implantação do aplicativo. Os agentes são instalados em computadores de destino para permitir que o Puppet Master execute manifestos que definem a configuração desejada da infraestrutura e das VMs do Azure. O Puppet pode se integrar a outras soluções, como Jenkins e GitHub, para um fluxo de trabalho de devops aprimorado. Para saber mais, confira Como o Puppet funciona.

Saiba como:

Packer

O Packer automatiza o processo de compilação quando você cria uma imagem de VM personalizada no Azure. Você pode usar o Packer para definir o sistema operacional e executar scripts pós-configuração que personalizam a VM para suas necessidades específicas. Uma vez configurado, a VM é capturada como uma imagem de Disco Gerenciado. O Packer automatiza o processo para criar os recursos de VM de origem, rede e armazenamento, executar os scripts de configuração e criar a imagem da VM.

Saiba como:

Jenkins

O Jenkins é um servidor de integração contínua que ajuda a implantar e testar aplicativos e a criar pipelines automatizados para entrega de código. Há centenas de plug-ins para estender a plataforma principal do Jenkins, e você também pode integrar com muitos outros produtos e soluções por meio de webhooks. Manualmente, você pode instalar o Jenkins em uma VM do Azure, executá-lo de dentro de um contêiner do Docker ou usar uma imagem do Azure Marketplace pré-criada.

Saiba como:

Próximas etapas

Há muitas opções diferentes para usar as ferramentas de automação de infraestrutura no Azure. Você tem a liberdade de usar a solução que melhor atenda às suas necessidades e ao seu ambiente. Para começar e experimentar algumas das ferramentas internas do Azure, confira como automatizar a personalização de uma VM Linux ou Windows.