“It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.” — Charles Darwin

“DevOps is a set of practice that seeks to reduce the gap between software development and software operation.”

Use Cloud and DevOps to build immutable infrastructure by agile development using collaborative open source tools:
-Terraform or Cloud Formation for infrastructure provisioning and scaling.
-Packer for building server images or containers using:
-chef cookbooks, puppet modules or ansible playbooks to build servers.

Learning Puppet, Chef and Ansible

the steep learning curve and lack of good documentation has always been a problem with complex open source software like Chef and Puppet. Particularly if you have used Amazon AWS and are used to their good online documentation.

There are three areas of learning with chef and puppet:
1. The language itself.
2. The operational aspects: The different ways to run.
3. Best Practices.

How to Learn Chef/Puppet/Ansible:
1. Get some IT experience in Linux, bash, an OO language like Java, networking, webservers like apache.

2. Setup an environment for Chef/Puppet/Ansible development.
    Set Up a Sane Ruby Cookbook Authoring Environment for Chef on Mac OS X, Linux and Windows

3. Install Vagrant and Virtual Box.

4. Install Chef DK (including test kitchen) or Puppet and test-kitchen or just test-kitchen for ansible.

5. get a demo Chef/Puppet/Ansible repo like https://github.com/neillturner/chef-repo or https://github.com/neillturner/puppet_repo or https://github.com/neillturner/ansible_repo

6. learn test kitchen and use the sample kitchen.yaml file say in ansible_repo or puppet_repo or chef-repo//site-cookbooks/mycompany_webserver and get a simple web server running

7. start coding Chef/Puppet/Ansible and learning. using ansible docs at http://docs.ansible.com/ or chef docs at http://docs.getchef.com/chef/resources.html or puppet reference at https://docs.puppetlabs.com/references/latest/type.html


Learning Ansible by Packt.
    -300 pages of good introduction to Ansible.

Pro Puppet by Apress.
    -This has good technical stuff on installing and using puppet but not so much for learning the language.
    -To learn the puppet language try learning puppet from puppet labs. It is good to run Serverless Puppet in a virtual machine to learn the lanaguage.
    -There is not that much on best practices at the moment apart from exhortations to stop writing puppet modules that suck.
    -When I am writing scripts I refer to the Puppet Type Reference and Puppet Cookbook.

Mastering Puppet by Packt.
    -This is a potpourri of advanced and production topics.
    -This is a follow on from the Pro Puppet book.

Chef Infrastructure Automation Cookbook by Packt Publishing
    -This also has good technical stuff on using chef but not so much for learning the basics of the language.
    -To learn the chef language it helps to do Learn Chef and look at the sample code in Chef Resources and Community Cookbooks. It is good to run Chef Solo in a virtual machine to learn the language.
    -There is not that much on best practices at the moment. The only useful thing I have found so far is chef cookbook anti-patterns.
    -When I am writing scripts I refer to the Chef Resources.

Managing Windows Servers with Chef by Packt Publishing
    -This is a great book for someone with a bit of knowledge of using chef on linux (where chef is used mostly today) and wants to manage windows servers..
    -Chef is a huge area of expertise so it is great to have a book that focuses on just one area of chef - windows servers. This way it can comprehensively cover the area. I think armed with this book a chef experienced person can easily get up to speed on managing chef servers. The book has a great mixture of explanation and exercises and is very readable as well as being useful as a reference.


Post a Comment