DevOps Classroom Series – 04/Sept/2020

Testing chef cookbooks with InSpec

  • We will be using Test-Driven cookbook development for the tomcat using apt-get cookbook
  • Written the following in the ubuntu_test.rb in test/default folder
# InSpec test for recipe .::ubuntu

# The InSpec reference, with examples and extensive documentation, can be
# found at https://www.inspec.io/docs/reference/resources/

# Verifying java installation
describe package('openjdk-11-jdk') do
  it { should be_installed }
end

# verifying tomcat installation
describe package('tomcat9') do
  it { should be_installed }
end

# verify if the tomcat9 service is installed,enable and running

describe service('tomcat9') do
  it { should be_installed }
  it { should be_enabled }
  it { should be_running }
end

# verify if the tomcat-users.xml file exists 

describe file('/etc/tomcat9/tomcat-users.xml') do
  it { should exist }
end

# verify if 8080 port is listening

describe port(8080) do
  it { should be_listening }
end

  • Now executing the following commands
kitchen create
kitchen converge
kitchen verify

Preview Preview Preview

  • Lets create a deployment recipe for deploying war file into tomcat
    • Create a new recipe called as deploy
    #
    # Cookbook:: .
    # Recipe:: deploy
    #
    # Copyright:: 2020, The Authors, All Rights Reserved.
    
    war_file_url = node['tomcat_flavor2']['war']
    
    war_file_location = node['tomcat_flavor2']['warlocation']
    
    tomcat_package = node['tomcat_flavor2']['tomcat_package']
    
    remote_file war_file_location do
        source war_file_url
        action :create
        notifies :restart, "service[#{tomcat_package}]"
    end
    
    
    • navigate to deploy_test.rb and add the following
    # InSpec test for recipe .::deploy
    
    
    describe file('/var/lib/tomcat9/webapps/gameoflife.war') do
    it { should exist }
    end
    
    
  • Now converge and verify with the inspec tests Preview
  • Refer Here for the latest version of the cookbook

Lets use chef inspec and test kitchen to write a tomcat 9 installation not using package-manager

  • For ubuntu steps Refer Here

  • Lets create a cookbook tomcat9

  • Exercise: Try installing mongo db on centos7 using test-driven development

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Responsive Web Designing Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube