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
Recuperação de Dados em Tempo Real com PITR e BARMAN no Postgres
O backup PITR(Point-In-Time-Recovery) que é uma ferramenta que permite um arquivamento contínuo das transações ocorridas no banco, para que seja possível a recuperação de qualquer posição dos dados desde o
Nova Formação Linux 4Linux: Mais Conteúdo, Aulas Particulares e Foco em DevOps e Cloud
Completamente modernizada, a nova formação traz novidades como blended learning, aulas particulares e muito mais conteúdo sobre DevOps e Cloud. Sempre atendendo as necessidades do mercado de trabalho, a 4Linux
Guia sobre como criar um cluster com o centralizador de logs Graylog 3.3
O Graylog [1] é uma ferramenta open source e serve para monitorar, centralizar e organizar mensagens de log em sua infraestrutura. É uma alternativa ao famoso ELK. O Graylog oferece







