Teste sua infraestrutura com InSpec: auditoria automatizada e eficiente
Você conhece a ferramenta da Chef, o InSpec? Vamos realizar um teste básico de infraestrutura utilizando InSpec!
Muita das vezes quando trabalhamos com integração continua não temos a certeza que nossa configuração está sendo realizada com sucesso dentro do nosso ambiente, para nos auxiliar usamos uma ferramenta de Compliance as a Code como o InSpec.
O InSpec é uma ferramenta para teste e auditoria de aplicações e infraestrutura, que pode ser resumido como a capacidade organizacional de automatizar a implementação, verificação, correção, monitoramento e relatório do status de conformidade.
Benefícios do InSpec:
- Agora você consegue saber qual e o estado atual da sua infra independente da situação.
- Possui um shell interativo podendo executar testes rápidos.
- Funciona no Linux, Mac e Windows.
Ambiente:
- Caso vocês queiram replicar o ambinte segue o arquivo de configuração:
Vagrantfile:
BOX_SRV = "debian/buster64" Vagrant.configure("2") do |config| config.vm.define "server1" do |server1| server1.vm.box = BOX_SRV server1.vm.network "private_network", ip: "10.5.25.10" server1.vm.provision "shell", inline: "wget https://packages.chef.io/files/stable/inspec/4.21.3/debian/10/inspec_4.21.3-1_amd64.deb ; dpkg -i inspec_4.21.3-1_amd64.deb" server1.vm.provision "shell", inline: "apt update; apt install apache2 -y ; echo \"Webserver com Inspec\" > /var/www/html/index.html" end end
Instalação:
InSpec Shell:
Recursos:
Controles:
- Usando controles o InSpec irá verificar todos os elementos que você desejar.
Profiles:
- Pacote apache2 está instalado?
- Serviço apache2 em execução?
- A pagina inicial do Web server tem o conteúdo “Webserver com InSpec”?
- Porta 80 Aberta no servidor?
Webserver.rb:
title 'Testes de webserver' control 'Pacote Webserver' do title 'Verificando a instalação do Apache2' describe package('apache2') do it { should be_installed} its('version') { should cmp '2.4.38-3+deb10u3' } end end control 'Serviço Webserver' do title 'Verificando se o apache está em execução' describe service('apache2') do it { should be_installed } it { should be_enabled } it { should be_running } end end control 'Arquivo Webserver' do title 'Verificando pagina do Webserver' describe file('/var/www/html/index.html') do it { should be_file} its('content') { should include 'Webserver com Inspec'} end end control 'Porta Webserver' do title 'Verificando Porta' describe port('80') do it { should be_listening } end end
- inspec exec webserver.rb
Conclusão:
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Keycloak: Gerenciamento de Identidade e Acesso para WebApps e Serviços RESTful
O Keycloak [1] é um software open source de gerenciamento de identidade e acesso voltado para WebApps e RESTful web services. Inicialmente desenvolvido em 2014 pela comunidade de JBoss. Em
Entenda as diferenças entre MySQL Community, MySQL Enterprise, Percona e MariaDB
Nesta publicação quero explicar algumas diferenças interessantes entre o MySQL Community, MySQL Enterprise, Percona e MariaDB. Normalmente sempre abordamos algumas coisas em nosso curso de MySQL, mas o tempo sempre
Acelere seus algoritmos de Machine Learning com CUDA no Linux
Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem