Local Cookbook Development Badge

Local Cookbook Development Badge

To obtain this badge, practitioners must demonstrate the ability to properly develop a basic Chef cookbook. This means the recipient can take an existing process and automate it using Chef recipes that follow data-driven and composable code patterns. The Local Cookbook Development badge certifies the recipient can compose a recipe, package it in a Cookbook, test, and deploy the code to model an automated solution for a previously manual process or task.

  • An understanding of authoring cookbooks and setting up the local environment.
  • An understanding of the Chef DK tools
  • An understanding of Test Kitchen configuration.
  • An understanding of the available testing frameworks.
  • An of troubleshooting cookbooks.
  • An understanding of search and databags
Vimal Daga

Mr. Vimal Daga



Technologist, Keynote Speaker, Entrepreneur



Chief Technical Officer (CTO) LinuxWorld Informatics Pvt Ltd



LinkedIn Profile



About Vimal Daga: Vimal combines more than a decade of practical knowledge of evolving technologies, including Linux, Open Source and Security. He maintains a passion of learning new dimensions of technology, understanding breakthrough ideas and connecting common men with new media.

His key technical areas are: Big Data, Data Analytics, Cloud Computing, OpenStack, Storage - Glusterfs, Web Application Security, Dev Ops, Linux Server Security and many more to go.

He has been honored with a convincing number of authority awards for his contribution to Rajasthan's Linux culture, and for bringing the benefits of technology to the masses in an uncomplicated yet useful manner. He shares an excellent portfolio of being certified by leading technological institutions (such as first public RHCSS (Ex333) of India, first Cisco Certified System Instructor in Rajasthan) Currently, he chairs the role of Chief Technical Officer at Linux World - a company that was founded to make Linux and open source easily accessible and understandable to budding technocrats.

Launched around a decade back, LinuxWorld today enjoys a prized position as one of the fastest growing and most recognized Linux training and consultancy institutions in India - working for individuals, corporate entities and educational institutions. All that was possible for hard work, attention to detail and successful execution of ideas of Vimal
Besides hosting seminars, organizing workshops, discovering new avenues of technology in keynote speaking sessions, he contributes to authority publications that deal in Linux.

To know more about Mr.Vimal Daga - Click Here

  • The pre-requisites for this course include basic knowledge of Linux & Networking.
FB page:- LinuxWorld India

1. Cookbook Authoring and Setup Theory

  • The pros and cons of a single repository per cookbook
  • The pros and cons of an application repository
  • How the Chef Work flow supports monolithic vs single cookbooks
  • How to create a repository/workspace on the workstation

2. VERSIONING OF COOKBOOKS:

  • Why cookbooks should be versioned
  • The recommended methods of maintaining versions (e.g. knife spork)
  • How to avoid overwriting cookbooks
  • Where to define a cookbook version
  • Semantic versioning
  • Freezing cookbooks
  • Re-uploading and freezing cookbooks

3.STRUCTURING COOKBOOK CONTENT:

  • Modular content/reusability
  • Best practices around cookbooks that map 1:1 to a piece of software or functionality vs monolithic cookbooks
  • SHow to use common, core resources

4.HOW METADATA IS USEDs :

  • How to manage dependencies
  • Cookbook dependency version syntax
  • What information to include in a cookbook- author, license, etc
  • Metadata settings
  • What 'suggests' in metadata means
  • What 'issues_url' in metadata means

5.WRAPPER COOKBOOK METHODS :

  • How to consume other cookbooks in code via wrapper cookbooks
  • How to change cookbook behavior via wrapper cookbooks
  • Attribute value precedence
  • How to use the `include_recipe` directive
  • What happens if the same recipe is included multiple times
  • How to use the 'depends' directive

6.USING COMMUNITY COOKBOOKS

  • How to use a public and private Supermarket
  • How to use community cookbooks
  • How to wrap community cookbooks
  • How to fork community cookbooks
  • How to use Berkshelf to download cookbooks
  • How to configure a Berksfile
  • How to use a Berksfile to manage a community cookbook and a local cookbook with the same name

7.USING CHEF RESOURCES VS ARBITRARY COMMANDS:

  • How to shell out to run commands.
  • When/not to shell out
  • How to use the execute` resource
  • When/not to use the 'execute' resource
  • How ensure idempotence

8.CHEF DK TOOLS :

  • What the 'chef' command does
  • What 'chef generate' can create
  • What the 'chef' command does
  • What 'chef generate' can create
  • What How to customize content using 'generators’
  • What 'The recommended way to create a template
  • How to add the same boilerplate text to every recipe created by a team The 'chef gem' command

9.FOODCRITIC :

  • What Foodcritic is
  • Why developers should lint their code
  • Foodcritic errors and how to fix them
  • Community coding rules & custom rules
  • Foodcritic commands
  • Foodcritic rules
  • How to exclude Foodcritic rules

10. BERKS

  • How to use berks to work with upstream dependencies
  • How to work with GitHub & Supermarket
  • How to work with dependent cookbooks
  • How to troubleshoot berks issues
  • How to lock cookbook versions
  • How to manage dependencies using berks

11. RUBOCOP :

  • How to use RuboCop to check Ruby styles
  • RuboCop vs Foodcritic
  • RuboCop vs Foodcritic
  • RuboCop configuration & commands
  • Auto correction
  • How to be selective about the rules you run

12.TEST KITCHEN:

  • Writing tests to verify intent
  • How to focus tests on critical outcomes
  • How to test each resource component vs how to test for desired outcomes
  • Regression testing

13.TEST KITCHEN : DRIVERS

  • Test Kitchen provider & platform support
  • How to use .kitchen.yml to set up complex testing matrices
  • How to test a cookbook on multiple deployment scenarios
  • How to configure drivers

14. PROVISIONER

  • The available provisioners
  • How to configure provisioners
  • When to use chef-client vs. chef-solo vs. Chef
  • How to use the shell provisioner

15. SUITES:

  • What a suite is
  • How to use suites to test different recipes in different environments
  • Testing directory for InSpec
  • How to configure suites

16. PLATFORMS

  • How to specify platforms
  • Common platforms
  • How to locate base images
  • Common images and custom images

17. KITCHEN COMMANDS :

  • The basic Test Kitchen workflow
  • 'kitchen' commands
  • When tests get run
  • How to install bussers
  • What 'kitchen init' does

18.COOKBOOK COMPONENTS : DIRECTORY STRUCTURE OF A COOKBOOK

  • What the components of a cookbook are
  • What siblings of cookbooks in a repository are
  • The default recipe & attributes files
  • Why there is a 'default' subdirectory under 'templates’
  • Where tests are stored

19.ATTRIBUTES AND HOW THEY WORK

  • What attributes are
  • Attributes as a nested hash
  • How attributes are defined
  • How attributes are named
  • How attributes are referenced
  • Attribute precedence levels
  • What Ohai is
  • What the 'platform' attribute is
  • How to use the 'platform' attribute in recipes

20. FILES AND TEMPLATES - DIFFERENCE AND HOW THEY WORK, WHEN TO USE EACH

  • How to instantiate files on nodes
  • The difference between 'file', 'cookbook_file', 'remote_file', and 'template'
  • How two teams can manage the same file
  • How to write templates
  • What 'partial templates' are
  • What Common file-related resource actions and properties
  • What ERB syntax

21. CUSTOM RESOURCES - HOW THEY ARE STRUCTURED AND WHERE THEY GO:

  • What custom resources are
  • How to consume resources specified in another cookbook
  • Naming conventions
  • How to test custom resources

22. LIBRARIES

  • What libraries are and when to use them
  • Where libraries are stored

23. AVAILALABLE TESTING FRAMEWORKS : INSPEC

  • How to test common resources with InSpec
  • InSpec syntax
  • How to write InSpec tests
  • How to run InSpec tests
  • Where InSpec tests are stored

24.CHEFSPEC:

  • What ChefSpec is
  • The ChefSpec value proposition
  • What happens when you run ChefSpec
  • ChefSpec syntax
  • How to write ChefSpec tests
  • How to run ChefSpec tests
  • Where ChefSpec tests are stored

25.GENERIC TESTING TOPICS

  • The test-driven development (TDD) workflow
  • Where tests are stored
  • How tests are organized in a cookbook
  • Naming conventions - how Test Kitchen finds tests
  • Tools to test code "at rest"
  • Integration testing tools
  • Tools to run code and test the output
  • When to use ChefSpec in the workflow
  • When to use Test Kitchen in the workflow
  • Testing intent
  • TFunctional vs unit testing

26. TROUBLESHOOTING : READING TEST-KITCHEN OUTPUT

  • Test Kitchen phases and associated output

27. COMPILE VS. CONVERGE:

  • What happens during the compile phase of a chef-client run
  • What happens during the converge phase of a chef-client run
  • ge phase of a chef-client run When pure Ruby gets executed
  • When Chef code gets executed

28. SEARCH AND DATABAGS : DATA BAGS

  • What databags are
  • Where databags are stored
  • When to use databags
  • How to use databags
  • How to create a databag
  • How to update a databag
  • How to search databags
  • Chef Vault
  • The difference between databags and attributes
  • What 'knife' commands to use to CRUD databags

29. SEARCH :

  • What data is indexed and searchable
  • 'Why you would search in a recipe
  • Search criteria syntax
  • How to invoke a search from the command line
  • How to invoke a search from within a recipe

Further Information

If you would like to know more about this course please ping us @ :
call us on 0091 9829105960 / 0091 141 2501609
send an email to training@lwindia.com or training@linuxworldindia.org

 

My Links

Awards

Summer Training

Career

Contact Us

Summer Training in Jaipur

Summer Internship

Summer Training 2017

Training Services

Linux RHCE

Cisco CCNA

    Connect With Us

Contact Us

E training@linuxworldindia.org

P 0091 141 2501609

M 0091 9829105960

LinuxWorld - Training & Development Centre

Plot No. 5, Krishna Tower,

GopalNagar - A, Next to Triveni Nagar Flyover,

Gopalpura Bypass, Jaipur-15 (INDIA)