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
Gerenciamento eficiente de infraestrutura Docker com Portainer.io
O gerenciamento de uma infraestrutura com docker se dá quase que exclusivamente via terminal, mas quando surge a necessidade de apresentar a infraestrutura para a equipe, ou para toda a
Por que você deve investir tempo estudando Python
Por que você deve investir tempo estudando Python No mundo cada vez maior das linguagens de programação, uma delas se destaca como uma ferramenta versátil e poderosa que conquistou os
Gerenciamento de Acessos no Redis com Controle de Usuários e Permissões por Chaves
O Redis é amplamente utilizado para caching, filas e armazenamento de dados em memória de alta performance. Em muitos cenários, é comum que múltiplas aplicações ou usuários compartilhem o mesmo







