Usar ferramentas de automação de infraestrutura com máquinas virtuais no Azure
Aplica-se a: ✔️ VMs ✔️ Linux VMs ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes
Para criar e gerenciar máquinas virtuais (VMs) do Azure de maneira consistente em escala, normalmente é desejada alguma forma de automação. Há muitas ferramentas e soluções que permitem automatizar todo o ciclo de vida de implantação e gerenciamento da infraestrutura do Azure. Este artigo apresenta algumas das ferramentas de automação de infraestrutura que você pode usar no Azure. Essas ferramentas geralmente se encaixam em uma das seguintes abordagens:
Automatize a configuração de VMs
- As ferramentas incluem o modelo Ansible, Chef, Puppet, Bíceps e Azure Resource Manager.
- As ferramentas específicas para a personalização de VM incluem cloud-init para VMs Linux, Configuração de Estado Desejado (DSC) do PowerShell e a Extensão de Script Personalizado do Azure para todas as VMs do Azure.
Automatize o gerenciamento de infraestrutura
- As ferramentas incluem Packer para automatizar compilações de imagens de VM personalizadas e Terraform para automatizar o processo de compilação de infraestrutura.
- A Automação do Azure pode executar ações em sua infraestrutura do Azure e local.
Automatize a implantação e a entrega de aplicativos
- Os exemplos incluem os Serviços de DevOps do Azure e o Jenkins.
Terraform
Terraform é uma ferramenta de automação que permite definir e criar uma infraestrutura inteira do Azure com uma única linguagem de formato de modelo - a HashiCorp Configuration Language (HCL). Com o Terraform, você define modelos que automatizam o processo para criar recursos de rede, armazenamento e VM para uma determinada solução de aplicativo. Você pode usar seus modelos Terraform existentes para outras plataformas com o Azure para garantir a consistência e simplificar a implantação da infraestrutura sem precisar converter em um modelo do Azure Resource Manager.
Aprenda a:
Azure Automation
A Automação do Azure usa runbooks para processar um conjunto de tarefas nas VMs de destino. 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 Linux e Windows e em máquinas virtuais ou físicas locais com um runbook worker híbrido. Os runbooks podem ser armazenados em um repositório de controle de código-fonte, como o GitHub. Esses runbooks podem ser executados manualmente ou em um cronograma definido.
A Automação do Azure também fornece um serviço de Configuração de Estado Desejado (DSC) que permite criar definições de como um determinado conjunto de VMs deve ser configurado. Em seguida, o DSC garante que a configuração necessária seja aplicada e que a VM permaneça consistente. O Azure Automation DSC é executado em máquinas Windows e Linux.
Aprenda a:
- Crie um runbook do PowerShell.
- Use o Runbook Worker híbrido para gerenciar recursos locais.
- Use o Azure Automation DSC.
Serviços de DevOps do Azure
Os Serviços de DevOps do Azure são um conjunto de ferramentas que o ajudam a partilhar e controlar código, a utilizar compilações automatizadas e a criar um pipeline completo de integração e desenvolvimento contínuo (CI/CD). Os Serviços de DevOps do Azure integram-se com o Visual Studio e outros editores para simplificar a utilização. Os Serviços de DevOps do Azure também podem criar e configurar VMs do Azure e, em seguida, implantar código nelas.
Saiba mais sobre:
- Serviços de DevOps do Azure.
Modelo Azure Resource Manager
O Azure Resource Manager é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que permite criar, atualizar e excluir recursos em sua assinatura do Azure. Pode utilizar funcionalidades de gestão, como controlo de acesso, bloqueios e etiquetas, para proteger e organizar os seus recursos após a implementação.
Aprenda a:
- Implante VMs spot usando um modelo do Gerenciador de Recursos.
- Crie uma máquina virtual do Windows a partir de um modelo do Gerenciador de Recursos.
- Baixe o modelo para uma VM.
- Crie um modelo do Azure Image Builder.
Bicep
O Bicep é uma linguagem específica do domínio que utiliza sintaxe declarativa para implementar 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 sua infraestrutura. Seus recursos são implantados de maneira consistente.
Comece a usar o Guia de início rápido.
Inicialização da cloud
Cloud-init é uma abordagem amplamente utilizada para personalizar uma VM com Linux quando arranca pela primeira vez. Pode utilizar o cloud-init para instalar pacotes e escrever ficheiros ou para configurar utilizadores e segurança. Como o cloud-init é chamado durante o processo de inicialização inicial, não há etapas extras ou agentes necessários para aplicar sua configuração. Para obter mais informações sobre como formatar corretamente seus #cloud-config
arquivos, consulte o site de documentação cloud-init. #cloud-config
Os arquivos são arquivos de texto codificados em Base64.
O cloud-init também funciona em distribuições. Por exemplo, não utiliza apt-get install nem yum install para instalar um pacote. Em vez disso, pode definir uma lista dos pacotes a instalar. O cloud-init utiliza automaticamente a ferramenta de gestão de pacotes nativa para a distribuição que selecionar.
Estamos trabalhando ativamente com nossos parceiros de distribuição Linux aprovados para ter imagens habilitadas para inicialização na nuvem disponíveis no Azure Marketplace. Essas imagens fazem com que suas implantações e configurações de inicialização na nuvem funcionem perfeitamente com VMs e Conjuntos de Dimensionamento de Máquina Virtual. Saiba mais detalhes sobre o cloud-init no Azure:
- Suporte de inicialização na nuvem para máquinas virtuais Linux no Azure
- Experimente um tutorial sobre configuração automatizada de VM usando cloud-init.
DSC do PowerShell
A Configuração de Estado Desejado (DSC) do PowerShell é uma plataforma de gerenciamento para definir a configuração das máquinas de destino. O DSC também pode ser usado no Linux através do servidor Open Management Infrastructure (OMI).
As configurações DSC definem o que instalar em uma máquina e como configurar o host. Um mecanismo do Gerenciador de Configuração Local (LCM) é executado em cada nó de destino que processa ações solicitadas com base em configurações por push. Um servidor pull é um serviço Web executado em um host central para armazenar as configurações DSC e os recursos associados. O servidor pull se comunica com o mecanismo LCM em cada host de destino para fornecer as configurações necessárias e relatar a conformidade.
Aprenda a:
- Crie uma configuração DSC básica.
- Configure um servidor de receção DSC.
- Use DSC para Linux.
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. Você pode 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, como um repositório GitHub. Com a Extensão de Script Personalizada, você pode escrever scripts em qualquer linguagem executada na 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 apenas dentro da VM.
Aprenda a:
- Crie uma VM Linux com a CLI do Azure e use a Extensão de Script Personalizada.
- Crie uma VM do Windows com o Azure PowerShell e use a Extensão de Script Personalizada.
Ansible
O Ansible é um mecanismo de automação para gerenciamento de configuração, criação de VM ou implantação de aplicativos. O Ansible usa um modelo sem agente, normalmente com chaves SSH, para autenticar e gerenciar máquinas de destino. As tarefas de configuração são definidas em playbooks, com vários módulos do Ansible disponíveis para realizar tarefas específicas. Para obter mais informações, consulte Como funciona o Ansible.
Aprenda a:
- Instale e configure o Ansible no Linux para uso com o Azure.
- Crie uma máquina virtual Linux.
- Gerencie uma máquina virtual Linux.
Chef
O Chef é uma plataforma de automação que ajuda a definir como sua infraestrutura é configurada, implantada e gerenciada. Alguns componentes incluem o Chef Habitat, para 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íticas. Os Clientes Chef são instalados em máquinas de destino, com um ou mais Servidores Chef centrais que armazenam e gerenciam as configurações. Para obter mais informações, consulte Visão geral do Chef.
Aprenda a:
- Implante o Chef Automate a partir do Azure Marketplace.
- Instale o Chef no Windows e crie VMs do Azure.
Puppet
O Puppet é uma plataforma de automação pronta para empresas que lida com o processo de entrega e implantação de aplicativos. Os agentes são instalados em máquinas 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 obter mais informações, consulte Como funciona o Puppet.
Aprenda a:
Empacotador
O Packer automatiza o processo de compilação quando você cria uma imagem de VM personalizada no Azure. Você usa o Packer para definir o sistema operacional e executar scripts de pós-configuração que personalizam a VM para suas necessidades específicas. Uma vez configurada, a VM é capturada como uma imagem de disco gerenciado. O Packer automatiza o processo para criar a VM de origem, os recursos de rede e armazenamento, executar scripts de configuração e, em seguida, criar a imagem da VM.
Aprenda a:
- Use o Packer para criar uma imagem de VM do Linux no Azure.
- Use o Packer para criar uma imagem de VM do Windows no Azure.
Jenkins
Jenkins é um servidor de integração contínua que ajuda a implantar e testar aplicativos e criar pipelines automatizados para entrega de código. Existem centenas de plugins para estender a plataforma Jenkins principal, e você também pode integrar com muitos outros produtos e soluções através de webhooks. Você pode instalar manualmente o Jenkins em uma VM do Azure, executar o Jenkins de dentro de um contêiner do Docker ou usar uma imagem pré-criada do Azure Marketplace.
Aprenda a:
Próximos passos
Há muitas opções diferentes para usar ferramentas de automação de infraestrutura no Azure. Você tem a liberdade de usar a solução que melhor se adapta às suas necessidades e ambiente. Para começar e experimentar algumas das ferramentas incorporadas no Azure, consulte como automatizar a personalização de uma VM Linux ou Windows .