Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Puppets, Chefs, and Ansibles - Making sense of the provisioning circus

Puppets, Chefs, and Ansibles - Making sense of the provisioning circus

COME ONE! COME ALL! As we explore the circus of server provisioning and automation tools. Watch the puppet show and learn how to make your servers dance at your command! We'll manifest production environments right before your very eyes! See the cooking show where our Chef whips up a fresh batch of servers from their playbooks ready to bring your application to your visitors! Lastly, watch how ansible makes easy work of automating everything from application deployments to server updates. We'll even cover your servers in fabric - the pythonic remote execution tool for server automation! We'll give a whirlwind tour of each tool and show real world examples of usage. We'll compare, contrast, and maybe enjoy some cotton candy while we wait for the tools to run!


Joe Ferguson

March 10, 2018


  1. Puppets, Chefs, and Ansibles – Making Sense of the Provisioning

    Circus Joe Ferguson
  2. Who Am I? Joe Ferguson PHP Developer PHP Architect @

    Ministry Brands Twitter: @JoePFerguson Organizer of @MemphisPHP OSMI Board Member Certified Laravel Developer Drone Racing Pilot
  3. What is a Provisioner?

  4. The Provisioning Circus

  5. None
  6. Download the Puppet Learning VM https://puppet.com/download-learning-vm

  7. Puppet Learning VM

  8. Puppet Learning VM

  9. Puppet Learning VM

  10. Puppet Learning VM

  11. Puppet Learning VM

  12. Puppet Learning VM

  13. Running puppet agent —test

  14. Checking our Graphite App Graphite installed Graphite Displaying Sample Data

  15. Out-of-Enterprise Puppet https://puphpet.com

  16. https://puphpet.com

  17. Deployment Target

  18. Languages

  19. Download

  20. Vagrant Up

  21. Simple Manifest Yaml

  22. None
  23. http://learn.chef.io

  24. None
  25. None
  26. vagrant init bento/centos-7

  27. Vagrant ssh

  28. Install Chef DK

  29. Creating a motd via Chef

  30. Running our hello.rb

  31. Running our hello.rb

  32. Check the contents of our file

  33. Running our hello.rb again

  34. Update the motd

  35. chef-client --local-mode hello.rb

  36. Delete the motd file

  37. chef-client --local-mode goodbye.rb

  38. Chef Concepts Resources describe the what, not the how Recipe

    is a file that holds one or more resources hello.rb was our resource Resources have actions :create is the default action. We didn’t have to specify. Recipes organize resources
  39. Configure a package and service

  40. Creating webserver.rb

  41. Running webserver.rb

  42. Configure Service for apache2

  43. Running webserver.rb

  44. Add default html to apache

  45. Running webserver.rb

  46. Verify file contents updated

  47. Chef works in the order you specify

  48. None
  49. pip install ansible

  50. Ansible Concepts Modules Standalone work units to perform a task

    Inventory Configuration Declaration of target systems to perform tasks upon Playbooks Complete set of roles / list of actions to take
  51. Create Ansible Playbook

  52. Running Our Ansible Playbook

  53. Ansible Variable Precedence http://docs.ansible.com/ansible/playbooks_variables.html

  54. Ansible Variable Precedence Role Defaults (In your role folder) Inventory

    (Your inventory File) Inventory Group (Inventory Group variables) Inventory Host (In Inventory Host) …many more
  55. Reusing Playbooks from others

  56. Ansible Galaxy Authors

  57. Adding ansible-role-php

  58. Adding ansible-role-php

  59. Running ansible-role-php

  60. Ansible can deploy your code

  61. Ansible Tower https://www.ansible.com/products/tower/editions

  62. Ansible Tower https://www.ansible.com/products/tower/pricing

  63. AWX - Open Source Tower

  64. None
  65. pip install fabric

  66. Fabric Basics

  67. Running hello()

  68. Getting Info From Remote System

  69. Getting Info From Remote System

  70. Upgrade the Remote System

  71. Upgrade the Remote System

  72. Compress and Grab Log Files

  73. Compress and Grab Log Files

  74. Grouping Methods

  75. Which Should You Use?

  76. Resources / Q & A Puppet Learning VM https://puppet.com/download-learning-vm http://www.puphpet.com

    https://learn.chef.io http://docs.ansible.com/ansible/playbooks_variables.html http://docs.fabfile.org
  77. Joe Ferguson Twitter: @JoePFerguson Email: joe@joeferguson.me Freenode: joepferguson Contact Info:

    Feedback! https://joind.in/talk/a4d60