Provisionamento Ansible: maneira mais inteligente e fácil de provisionamento



Este blog do Ansible Provisioning destaca um dos recursos mais úteis do Ansible. Ele demonstra como configurar uma pilha LAMP e hospedar um wensite no Ubuntu.

A primeira etapa para automatizar qualquer ciclo de vida operacional do aplicativo é automatizar o provisionamento da infraestrutura. Provisionamento é um processo chato de definir configurações, alocar memória, espaço em disco, etc., antes de realmente usá-los. Vamos ver como o Provisioning Ansible torna isso mais simples e rápido.

A maioria das implantações em grande escala exige que você tenha uma configuração de ambiente idêntica em vários sistemas.Então, como você faz isso? Executar o mesmo conjunto de comandos em uma centena de sistemas manualmente ?? Nahh .. Isso é muito antigo. Isso é algo em que as máquinas são boas, não os humanos. E se eu dissesse que esse processo longo e enfadonho poderia ser feito apenas executando um único manual do Ansible?É sobre isso que falaremos neste blog - Ansible Provisioning.





Os tópicos abordados são:

Se você deseja dominar DevOps, ' o curso deve ser sua opção preferida.



O que é Ansible?

DevOps é uma cultura em que a automação tem uma prioridade muito alta. Quando pode haver ferramentas para automatizar a implantação e o processo de teste, por que não ter ferramentas para gerenciamento de configuração e provisionamento. Existem milhões de maneiras de se tornar mais inteligente e usar o Ansible é uma delas. É uma das ferramentas mais utilizadas.

Ansible usa manuais baseados em YAML que podem ser entendidos até por um iniciante. Ele usa uma arquitetura sem agente para se comunicar com seus clientes que não envolve nenhuma ferramenta de terceiros a ser instalada na máquina do cliente e, em vez disso, usa conexões baseadas em SSH. Sendo o Ansible uma ferramenta de automação, vamos descobrir o que ele pode automatizar.

O que pode o Ansible Automatizar?

Cite um estágio no ciclo de desenvolvimento e o Ansible o ajudará com ele, seja gerenciamento de configuração, provisionamento, orquestração, entrega contínua, segurança ou até mesmo implantação de aplicativo. O Ansible une o fluxo de trabalho do ciclo de desenvolvimento em um único agente menos plataforma de automação.



  1. Provisionamento: É necessário criar um ambiente adequado para o aplicativo / software viver. O Ansible fornece uma maneira de automatizar o ambiente criado para a existência do aplicativo.
  2. Gerenciamento de configurações: Execute uma ampla variedade de tarefas de configuração, como iniciar / parar serviços, alterar a configuração de um sistema, dispositivo ou aplicativo, etc.
  3. Implementação do aplicativo: Automatize a definição de implantação com Ansible e gerencie a implantação usando Torre Ansible . Isso torna todo o ciclo do aplicativo, da produção à implantação, eficiente e gerenciável.
  4. Entrega contínua: Criar e gerenciar um pipeline de integração / entrega contínua pode se tornar complicado. É aí que o Ansible entra em ação e facilita a vida do desenvolvedor.
  5. Segurança e conformidade: Trabalhar com os projetos sempre define limites e está integrado às políticas de segurança da empresa. Ter as políticas de segurança integradas automaticamente com a implantação pode facilitar o cumprimento das políticas.
  6. Orquestração: Um projeto inteiro é uma coleção de muitas instâncias diferentes com uma configuração diferente. O Ansible mescla e gerencia essas diferentes instâncias como um todo.

Necessidade de provisionamento Ansible

Como mencionado anteriormente, a primeira etapa paraautomatizando o ciclo de vida operacional dos aplicativosestá preparando o ambiente, ou seja, provisionamento. Grandes implantações requerem vários hosts com exatamente as mesmas configurações. Depois de provisionar um host, quais são as chances de que os próximos 10 hosts tenham exatamente as mesmas configurações se feito manualmente? Além disso, quanto tempo você gastará fazendo a mesma tarefa repetitiva? É aqui que a Ansible vem ao nosso serviço. Você pode provisionar centenas de hosts apenas executando um único manual. Magia? Haha! Não, apenas evolução em automação.

Demonstração: criar uma pilha LAMP e implantar uma página da web

Suponha que você esteja tentando implantar um site em 30 sistemas, cada implantação de site exigirá um sistema operacional, servidor da web, banco de dados e PHP de base. Usamos o manual ansible para instalar esses pré-requisitos em todos os 30 sistemas de uma vez.

Nesta demonstração de provisionamento do Ansible, vou mostrar como provisionar o ambiente de hospedagem do site usando o Ansible. Instalamos a pilha LAMP (Linux, Apache, MySQL e PHP) e, em seguida, implantamos um site.

Para esta demonstração, usei um Linux VirtualBox com Ubuntu versão 17.04. Eu usei duas máquinas virtuais, uma como meu servidor onde o Ansible está instalado e a outra máquina atua como meu host remoto. Vamos começar configurando o Ansible no servidor.

Eu criei uma página da web estática simples salva em uma pasta índice que tem dois arquivos, index.html e style.css.

index.html:

  Site usando HTML e CSS                Adote agora        

style.css

* { margem: 0 preenchimento: 0 } header { imagem de fundo: gradiente linear (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') altura: 100vh background-size: cover posição de fundo: centro } .nav-menu { flutuar: certo estilo de lista: nenhum margem superior: 30px } .nav-menu li { display: inline-block } .nav-menu li a { cor: turquesa decoração de texto: nenhum preenchimento: 5px 20px família de fontes: 'Verdana', 'sans-serif' font-size: 20px } .homebtn a { borda: 1px cinza sólido cor de fundo: branco } .nav-menu li a: hover { borda: 1px cinza sólido cor de fundo: branco } .tagline { posição: absoluta largura: 1200px margem esquerda: 0 margem superior: 0 } h1 { cor branca tamanho da fonte: 50px família de fontes: 'Verdana', 'sans-serif' alinhamento de texto: centro margem superior: 275 px } .adopt { margem superior: 30px margem esquerda: 540px } .bttn { borda: 1px branco sólido preenchimento: 10px 30px cor amarela família de fontes: 'Verdana', 'sans-serif' font-size: 22px decoração de texto: nenhum } .adopt a: hover { cor de fundo: madeira compensada }

Passo 1: Execute os seguintes comandos para atualizar os repositórios, adicionar os repositórios necessários e configurar o PPA em sua máquina para a instalação do Ansible:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Pressione enter para aceitar a adição do PPA e, finalmente, instale o Ansible após atualizar os repositórios.

$ sudo apt-get update $ sudo apt-get install ansible

Passo 2: Vá para o arquivo / etc / hosts do seu servidor e adicione o nome do host e o endereço IP do host.

etc hosts - provisionamento Ansible - EdurekaFig. 1 - Adicionar hosts remotos ao arquivo / etc / hosts - Provisionamento Ansible

Etapa 3: Como o Ansible trabalha na arquitetura sem agente de usar SSH para se comunicar com seus hosts, configure as chaves ssh. Basicamente, temos um servidor e um host. Nós controlamos o host com nosso servidor e, portanto, criamos uma chave ssh pública no servidor e a copiamos na máquina do host. Execute o seguinte comando no servidor:

$ ssh-keygen

Você será solicitado a inserir o nome do arquivoonde eugostaria de salvar sua chave e também solicitar a criação de uma senha para acessar a chave gerada, que é opcional. Por padrão, a chave pública é salva no arquivo .ssh / id_rsa.pub e a chave privada é salva no .ssh / id_rsa.

Fig. 2 - Criar chave SSH - Provisionamento Ansible

Agora, essa chave gerada precisa estar presente em seu host. Copiar a chave para o host pode ser feito de duas maneiras: copie manualmente para o host ou use o comando ssh-copy-id. Neste caso, vou copiá-lo usando o comando ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Nota- Certifique-se de que você consegue fazer o ssh em seu host antes de executar este comando.

Passo 4: Configure hosts Ansible. Vá para o arquivo / etc / ansible / hosts e adicione o nome do host. Isso irá variar de acordo com o número de hosts e servidores que você possui. Você também pode ter mais deum servidorAqui.

Fig. 3 - Adicionar Hosts Remotos no Arquivo de Inventário - Provisionamento Ansible

Etapa 5: Verifique se seus hosts estão prontos. Execute este comando, você deve obter uma saída semelhante.

$ ansible -m ping todos

Fig. 4 - Verifique o status do host remoto - Provisionamento Ansible

Etapa 6: Agora que nosso Ansible está pronto, vamos preparar o ambiente para implantar um site. Usaremos um único manual do Ansible para instalar o Apache, MySql e PHP. Vamos dar uma olhada nisso.

Nota: Se você é um iniciante, dê uma olhada em isto blog que explica como escrever um manual.

--- # Configurar pilha LAMP - hosts: host1 tarefas: - nome: Adicionar repositório ppa tornar-se: sim apt_repository: repo = ppa: ondrej / php - nome: Instalar pilha lâmpada tornar-se: sim apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql state: atual atualização do cache: sim - nome: iniciar o servidor apache se tornar: sim serviço: nome: apache2 estado: iniciado habilitado: sim - nome: iniciar o serviço mysql se tornar: sim serviços: nome: estado mysql: iniciado habilitado: sim - nome: criar arquivo de diretório de destino: caminho = / var / www / html estado = modo de diretório = 0755 - nome: implantar index.html tornou-se: sim cópia: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Como você pode ver, temos 6 tarefas, cada tarefa desempenha uma função específica.

funções e responsabilidades do desenvolvedor hadoop
  • A primeira tarefa adiciona o repositório necessário para instalar o MySQL e o PHP.
  • A segunda tarefa instala apache2, MySQL-server, PHP e PHP-MySQL.
  • A terceira e a quarta tarefas iniciam o serviço Apache e MySQL.
  • A quinta tarefa cria um diretório de destino na máquina host e
  • Finalmente, a sexta tarefa executa o arquivo index.html, pega o arquivo da máquina servidora e o copia para a máquina host.

Execute este manual com o seguinte comando:

$ ansible-playbook lamp.yml -K

As linhas tornar-se: sim no manual informa que ele precisa ser executado como root e, portanto, quando você executa o comando, ele solicitará a senha do sudo.

Fig. 5 - Executar o Ansible Playbook - Ansible Provisioning

Agora você pode acessar a máquina host e verificar se o site foi hospedado.

Fig. 6 - Hospedar o site no Localhost - Ansible Provisioning

Ora essa é uma página que seria implantada em todos os hosts que interagem com o servidor (no nosso caso, tínhamos apenas um host) mas o mesmo seria possível até mesmo para 100 hosts remotos.

Isso nos leva ao fim do blog do Ansible Provisioning. Se você achar este artigo útil, verifique o ' oferecido por Edureka. Abrange todas as ferramentas que tornaram o setor de TI mais inteligente.

Tem alguma questão para nós? Por favor, poste em e entraremos em contato com você.