Puppet vs Chef for automation

VeritiesVerities Member Posts: 1,162
In case anyone is interested in the never ending debate of which one to use, the article below gives a very good write up on the two technologies:


https://www.scriptrock.com/articles/puppet-vs.-chef-revisited

Comments

  • BigleafBigleaf Registered Users Posts: 2 ■□□□□□□□□□
    Don't forget to check out Ansible.

    We use both Puppet and Ansible for different use cases. Here's a couple of write-ups that might be helpful:

    https://blog.serverdensity.com/what-ive-learnt-from-using-ansible-exclusively-for-2-years/
    https://dantehranian.wordpress.com/2015/01/20/ansible-vs-puppet-overview/
  • VeritiesVerities Member Posts: 1,162
    Thanks for posting these links, they provide some pretty decent comparisons between the two. I've been going through the Chef tutorials and it doesn't really seem that hard to pickup, but I haven't gotten to the Chef Server setup yet. However, I see how Ansible can really be a good move especially if you know Python. I'll have to check it out.
  • alias454alias454 Member Posts: 648 ■■■■□□□□□□
    Don't forget Salt ;)SaltStack community can manage Windows and Nix.
    “I do not seek answers, but rather to understand the question.”
  • OctalDumpOctalDump Member Posts: 1,722
    Kind of related note. Does anyone know of good training/books/certification for this? This is one area where I have next to nothing on Linux, and I see it on quite a few jobs that look interesting - often the tag is "Chef/Puppet".
    2017 Goals - Something Cisco, Something Linux, Agile PM
  • srabieesrabiee Member Posts: 1,231 ■■■■■■■■□□
    ^^^ I keep seeing the same thing for sysadmin and systems engineering roles in DFW. I have zero experience with any of it.
    WGU Progress: Master of Science - Information Technology Management (Start Date: February 1, 2015)
    Completed: LYT2, TFT2, JIT2, MCT2, LZT2, SJT2 (17 CU's)
    Required: FXT2, MAT2, MBT2, C391, C392 (13 CU's)

    Bachelor of Science - Information Technology Network Design & Management (WGU - Completed August 2014)
  • VeritiesVerities Member Posts: 1,162
    So I tried out Ansible and I'm not really feeling it. Maybe because getting started is more work than I thought it would be. Chef walks you through the process step by step with tutorials which I really appreciate.

    The plus side is once you work with one of these solutions they all kind of work the same way except for Ansible. Ansible just works over SSH and has little overhead but only works with Linux. The rest work with Windows as well and rely on a client/server relationship (push/pull). Simply speaking...you create a template that has tasks, which run things like installations and configurations (can do a lot more), and they get can be pushed to groups of servers. If you're on a build team or part of an environment that quickly scales out servers, its a must have since it saves a ton of time.
  • VeritiesVerities Member Posts: 1,162
    OctalDump wrote: »
    Kind of related note. Does anyone know of good training/books/certification for this? This is one area where I have next to nothing on Linux, and I see it on quite a few jobs that look interesting - often the tag is "Chef/Puppet".

    There's a Puppet Certification:

    https://puppetlabs.com/services/certification/puppet-professional


    LinuxAcademy.com has an in depth course for the PCP.
  • alias454alias454 Member Posts: 648 ■■■■□□□□□□
    Puppet/Chef are ruby based ansible/salt are python based. There are also other systems like cfengine etc that can do similar things. I recently started using salt and had a functional setup within about 20 minutes. On RHEL/CentOS it is as simple as adding the epel repo and then yum install salt-master and yum install salt-minion on the client. Salt also allows for an SSH based model like ansible but gives you the flexibility to manage Windows machines as well. It isn't necessarily a one or the other situation either. Salt plays well with Chef or Puppet. Salt has beacons and reactors, which allow for event driven infrastructure and automation. Say a server is under high load Salt can be programmed to sense that and then spin up additional servers automaticly or deploy docker containers etc.

    Regards,
    “I do not seek answers, but rather to understand the question.”
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    I work w/ SaltStack as well. I have used Chef in the past and liked it.. especially since it's so easy to pick up and learn since they put out a good deal of both documentation AND learning material/tutorials and examples out themselves to make it easier for individuals to pick up. I tried Puppet but never got over the initial learning hump of getting it both set up and successfully completing trivial examples.

    However, after using Saltstack, I've become to like it a lot better than the competition. It's not too hard to pick up, is blazingly fast, can be used for config mgmt as well as remote execution and automatic event reaction mechanism, among others, and their documentation is both expansive and good. Esp if you know Python, and not Ruby, you should def check SaltStack out.

    As far as learning materials - Linux Academy and CBT Nuggets both have really good courses on Chef. Then, as noted above both their online documentation and tutorials are pretty good. (Tho their website looks a little different now than when I 1st tried to learn it a few months ago) https://learn.chef.io

    SaltStack has a good book out to learn it: http://www.amazon.com/Learning-Saltstack-Colton-Myers/dp/1784394602/
    That's what I used to get up and going w/ SaltStack. From there I simply used SaltStack's online documentation as a reference.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    alias454 wrote: »
    Don't forget Salt ;)SaltStack community can manage Windows and Nix.

    I believe Chef also has Windows automation now.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • PupilPupil Member Posts: 168
    I've known about these tools for over a year but just recently dove in and started using them. First I tried Puppet but hated that it was written in Ruby. Its syntax was horrendous and I didn't want to learn its proprietary language. Having to install an agent also sucked. Moved on to Ansible and am loving it. I've written python scripts that used paramiko library in the past, so Ansible was right at home for me. It was very easy to learn and I quickly used it to accomplish great things. It is incredibly powerful once you understand how to use it. No agent required is perfect.

    To maximize Ansible's effectiveness, you have to change your mindset and approach to administration. Create playbooks (Ansible scripts) that achieve a certain state for your servers and then revision control it using git. Before long you will not be logging in to servers over ssh manually.

    It's not true that Ansible is only for Linux/Unix. Ansible can be used for Windows hosts via Powershell and it still does not require an agent.

    Agree with DoubleNNs and alias454. If you don't like Ansible, SaltStack is the way to go. Puppet sucks.
Sign In or Register to comment.