/infra-as-code

Instalação e configuração de serviços de infraestrutura com Terraform e Ansible

Primary LanguageShell

Descrição: Instalação e configuração de serviços de infraestrutura com Terraform e Ansible.

Infraestrutura de serviços

  • Márquina Virtual VMware/vSphere
  • Kubernetes Cluster
  • HAProxy
  • Jenkins
  • Elastic Stack

Infraestrutura

  • Terrafom

    • Provisionamento da infraestrutura no Virtualizador VMWare/vSphere
  • Ansible

    • Gerencia de configuração do sistema e serviços bases para máquina virtual
  • Terraform

    • Terraform Sample
      Módulo para para criar máquina virtual no VMWare/vSphere

      • Uso - Terraform Sample
        Crie um módulo para provisionar as máquinas virtuais no ambiente a partir do módulo sample
      cd ./infrastructure/terraform/modules
      
      cp -rf sample <SUA INFRAESTRUTURA>

      Ex.

      cp -rf sample kubernetes

      No arquivo modules.tf preencha com as informações da sua infraestrutura.

      OBS: Para cada novo módulo criado é preciso inicializar o terraform para que ele reconheça o novo módulo

      Ex.

      module "kubernetes" {
        source = "./modules/kubernetes"
      
        vm_count      = "3"
        name_new_vm   = "kubernetes-node"
        num_cpus      = "2"
        num_mem       = "2048"
        size_disk     = "70"
      
      }
      terraform init
      terraform plan -out kubernetes.tfplan
      terraform apply kunernetes.tfplan
  • Ansible

    • Ansible Sample
      Inventário para gerenciamento das configurações dos servidores.

      • Uso - Ansible Sample Dentro do diretório inventorie crie uma cópia do inventário sample
      cd ./infrastructure/ansible/inventorie
      
      cp -rf sample <SEU INVENTARIO>

      No arquivo inventory.ini preencha com os servidores que irão ser gerenciados.

      cd ./infrastructure/ansible/inventorie/<SEU INVENTARIO>
      
      vim inventory.ini

      Ex.

      [servers]
      # node1 ansible_host=1.2.3.4  ip=1.2.3.4
      kubernetes-master ansible_host=1.2.3.4 ip=1.2.3.4

      no arquivo servers.yml dentro do seu inventário ./infrastructure/ansible/inventorie/<SEU INVENTARIO>/group_vars/servers.yml configure a chave ssh que o ansible irá usar para executar os playbooks

      ssh_key:
      # SSH Information: ~${USER}/.ssh/id_rsa.pub
      - ""

      Ex.

      ssh_key:
      # SSH Information: ~${USER}/.ssh/id_rsa.pub
      - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhzzHA/GhSSNfDeN68TmnKi7BpbbVQVpFzUvVpx7bANff612htvM1jJCbwud1TKUO+iH34fJGg1LRJEQlpopjvoW21T2qPSwZoocoqupcCzwPm5/J0BqPRZJdYewQUTDtmz77bRD6sKCGgT7z+31NvnzZZjQOTJvfUMQnMDd78rtcp8ktTVf+3F9f3mBVHNcu8Qn6a1RuT+Wnl7WWYTX7q3Irk0p/ZRWkYX6t+jrrSf+4nKocCeLC6tEKssJCV6VaL8YAkzLalOKWJj7dfXIxWhc9An16cVHANFl/xUlQYH3nNyg7MIFcKPFAUrJ+6mU4KiqS9yVDJdZF2ngdOeyob fabianoflorentino"

      Para usar o ansible contra seu inventário execute.

      Temos 2 roles basicas para a infraestrutura que esta sendo montada.

      • ssh
        • Configura a chave SSH do usário que está rodando o ansible
      • common
        • Configura o basico para os servidores.
          • Atualização do Sistema Operacional
          • Instalando Pacotes Padrão
          • Habilitando Serviços Padrão
          • Desabilitando serviços não essenciais
          • Desabilitando o SELinux
          • Configurando o Serviço NTP
          • Atualizando o Hostname dos Servidores
      cd ./infrastructure/ansible
      
      ansible-playbook -i inventorie/<SEU INVENTARIO>/inventory.ini -u root -k playbook.yml