Voltar ao blog

Instalando e Configurando LAMP no Ubuntu 20.04 com Ansible

Instalando e Configurando LAMP no Ubuntu 20.04 com Ansible

A automação de servidores é um processo seguro e confiável de gerenciar e monitorar servidores de forma eficaz e tecnologicamente avançada. Ao contrário do estilo tradicional de gerenciar servidores em data centers controlados por uma equipe dedicada de especialistas, todos os servidores são gerenciados usando automação. Como resultado, os erros humanos são minimizados.

Ferramentas de gerenciamento de configuração como Ansible, Puppet, Terraform, para citar algumas, são normalmente usadas para automatizar servidores. Essas ferramentas configuram servidores usando automação, estabelecendo procedimentos padrão para novos servidores e eliminando possíveis erros quando feitos manualmente.

Ansible é um projeto de código aberto robusto. É flexível, fácil de usar e possui a arquitetura mais simplificada. Não é necessário conhecimento prévio em programação para usar os playbooks do Ansible e ele não exige a instalação de software nos nós. Acima de tudo, está repleto de excelentes recursos que permitem escrever scripts e simplificar a automação.

Neste guia, vamos guiar você pelas etapas de instalação e configuração do LAMP no Ubuntu 20.04 com o Ansible.

Pré-requisitos

Para acompanhar este tutorial, você precisará de:

Qual é o Objetivo do Playbook do Ansible?

Este playbook do Ansible é uma forma alternativa de executar o procedimento descrito em nosso guia Configuração da Pilha LAMP Linux Apache MySQL PHP.

A execução do playbook do Ansible resultará nas seguintes ações em seus hosts do Ansible:

  • Instalar aptitude, uma alternativa ao gerenciador de pacotes apt preferido pelo Ansible.

  • Instalar todos os pacotes LAMP necessários.

  • Criar um novo VirtualHost do Apache e configurar um diretório raiz de documentos dedicado.

  • Definir como ATIVADO o novo VirtualHost.

  • Definir como DESATIVADO o site padrão do Apache, ou seja, definir a variável disable_default como true.

  • Escolher uma senha para o usuário root do MySQL.

  • Remover contas anônimas do MySQL e o banco de dados de teste.

  • Configurar o UFW para permitir tráfego HTTP na porta configurada, onde o padrão é 80.

  • Configurar um script de teste PHP.

Após a conclusão da execução do playbook do Ansible, você verá um ambiente web PHP rodando sobre o Apache, de acordo com as configurações que definimos.

Utilizando o Playbook do Ansible

Primeiro, obtenha o playbook do LAMP e suas dependências do repositório do-community/ansible-playbooks. Em seguida, clone o repositório com o playbook do LAMP para uma pasta local dentro do Nó de Controle do Ansible.

Execute o comando git pull para garantir que você tenha acesso ao conteúdo correto que usaremos neste tutorial:

Se você estiver usando o repositório do-community/ansible-playbooks pela primeira vez, considere clonar o repositório para sua pasta de usuário (home):

Acesse a pasta lamp_ubuntu2004 e você verá a estrutura:

Aqui está uma visão geral do que esses arquivos significam:

  • files/info.php.j2: Este é um arquivo de modelo (template) onde você pode configurar uma página de teste PHP na raiz do servidor web.

  • files/apache.conf.j2: Outro arquivo de modelo usado para configurar o VirtualHost do Apache.

  • vars/default.yml: É um arquivo de variáveis para personalizar as configurações do playbook.

  • playbook.yml: Este arquivo contém todo o conteúdo das tarefas a serem executadas no(s) servidor(es) remoto(s).

  • readme.md: Um arquivo de leitura contendo as informações sobre este playbook.

Vamos personalizar as configurações do MySQL e do Apache fazendo alterações no arquivo de variáveis do playbook. Navegue até o diretório lamp_ubuntu2004 e abra o arquivo vars/default.yml usando o editor nano:

Ao abrir o arquivo vars/default.yml, haverá uma lista de variáveis que precisam ser modificadas:

Vamos entender cada uma das variáveis em detalhes:

  • mysql_root_password: Armazena a senha para a conta root do MySQL.

  • app_user: É um usuário remoto não-root no host do Ansible que atua como o proprietário dos arquivos da aplicação.

  • http_host: Exibe o seu nome de domínio.

  • http_conf: Exibe o nome do arquivo de configuração criado no Apache.

  • http_port: É a porta HTTP para este host virtual, e 80 é o padrão.

  • disable_default: Usado para desfazer as opções padrão que vêm com o Apache.

Em seguida, salve e feche o arquivo vars/default.yml.

Assim que toda a configuração estiver concluída, estaremos prontos para executar este playbook nos servidores. Por padrão, a maioria dos servidores nos playbooks está configurada para ser executada em todos os servidores nos inventários. Vamos usar a flag -l para impactar apenas um único servidor ou um subconjunto de grupo selecionado que é afetado pelo playbook. Alternativamente, podemos usar a flag -u para obter uma visualização detalhada de qual servidor remoto está sendo conectado e executando nos hosts remotos.

Vamos executar o playbook em um servidor server1 e conectá-lo com um usuário como justin:

Você obterá uma saída semelhante a esta:

Assim que você vir que o playbook concluiu a execução, navegue até o seu navegador web e acesse o host do servidor. Não se esqueça de anexar o /info.php no final do IP:

Ao clicar nesta URL, você verá uma página como esta:

Aviso: A página exibida contém informações confidenciais sobre o seu ambiente PHP. Portanto, é recomendável remover suas informações pessoais do servidor usando o seguinte comando:

rm -f /var/www/info.php

O que há no Playbook?

A seguir, vamos entender o significado e a importância dos arquivos usados no ansible-playbook conteúdo:

  • vars/default.yml

O default.yml arquivo de variáveis contém o nome de domínio e a senha da conta root do MySQL. Estes são valores padrão usados nas tarefas do ansible-playbook tarefas:

  • files/apache.conf.j2

O apache.conf.j2 arquivo é um Jinja 2 arquivo de template usado para configurar um novo Apache VirtualHost. As variáveis usadas dentro deste template devem ser definidas no vars/default.yml arquivo de variáveis:

  • files/info.php.j2

Semelhante ao files/apache.conf.j2, o info.php.j2 arquivo também é um template Jinja. Usamos este arquivo para configurar um script PHP de teste no document root de um servidor LAMP recém-configurado:

  • playbook.yml

O playbook.yml arquivo é onde todas as tarefas desta configuração são definidas. Neste arquivo, todas as stacks LAMP são configuradas. Ele começa definindo o grupo de servidores de destino e está definido como all. Além disso, ele define o valor de become como true ( become: true), e define todas as tarefas que precisam ser executadas. Em seguida, o arquivo yaml possui o arquivo padrão, que é o arquivo de variáveis vars/default.yml, para carregar as opções de configuração:

Você pode modificar esses arquivos com base nas necessidades e requisitos do seu projeto.

Conclusão

Neste tutorial, passamos pelas etapas de instalação e configuração do LAMP em um servidor remoto com o Ansible. Há muitas outras opções de personalização com as quais você pode experimentar. Por exemplo, usar a documentação oficial do Ansible e usar os casos do mysql_user do módulo Ansible é uma excelente maneira de elevar o seu nível. Além disso, siga as etapas discutidas neste guia para praticar a automação usando outras ferramentas de gerenciamento de configuração e sistemas operacionais para aumentar o nível de dificuldade.

Você é novo na pilha LAMP e quer se aprofundar neste assunto? Explore os seguintes tutoriais em nosso blog:

Feliz computação!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.