Given that they are all “configuration management” tools - meaning they are designed to deploy, configure and manage servers - what would be the simplest - and yet robust - solution to manage personal dotfiles - for n00bs.
Ideally, I reckon, it should:
be containerized (@{Docker}|tool:586|?)
be versionable (@{Git}|tool:1046|)
ensure idempotency
allow full automation (tests, CI/CD, etc.)
be fully recoverable (@{Linux}|tool:10483|/ @{macOS}|tool:5560|)
I'm just getting started using Vagrant to help automate setting up local VMs to set up a Kubernetes cluster (development and experimentation only). (Yes, I do know about minikube)
I'm looking for a tool to help install software packages, setup users, etc..., on these VMs. I'm also fairly new to Ansible, Chef, and Puppet. What's a good one to start with to learn? I might decide to try all 3 at some point for my own curiosity.
The most important factors for me are simplicity, ease of use, shortest learning curve.
Chef enables you to manage and scale cloud infrastructure with no downtime or interruptions. Freely move applications and configurations from one cloud to another. Chef is integrated with all major cloud providers including Amazon EC2, VMWare, IBM Smartcloud, Rackspace, OpenStack, Windows Azure, HP Cloud, Google Compute Engine, Joyent Cloud and others.
Puppet is an automated administrative engine for your Linux, Unix, and Windows systems and performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.
Access to 800+ Reusable Cookbooks;Integration with Leading Cloud Providers;Enterprise Platform Support including Windows and Solaris;Create, Bootstrap and Manage OpenStack Clouds;Easy Installation with 'one-click' Omnibus Installer;Automatic System Discovery with Ohai;Text-Based Search Capabilities;Multiple Environment Support;"Knife" Command Line Interface;"Dry Run" Mode for Testing Potential Changes;Manage 10,000+ Nodes on a Single Chef Server;Available as a Hosted Service;Centralized Activity and Resource Reporting;"Push" Command and Control Client Runs;Multi-Tenancy;Role-Based Access Control [RBAC];High Availability Installation Support and Verification;Centralized Authentication Using LDAP or Active Directory
Insight- Puppet Enterprise's event inspector gives immediate and actionable insight into your environment, showing you what changed, where and how by classes, nodes and resources.;Discovery- Puppet Enterprise delivers a dynamic and fully-pluggable discovery service that allows you to take advantage of any data source or real-time query results to quickly locate, identify and group cloud nodes.;Provisioning- Automatically provision and configure bare metal, virtual, and private or public cloud capacity, all from a single pane. Save time getting your cloud projects off the ground by reusing the same configuration modules you set up for your physical deployments.;Configuration Management- Puppet Enterprise's declarative, model-based approach automates repetitive tasks and eliminates configuration drift. You define the desired state of your infrastructure, and Puppet Enterprise enforces this state, freeing you to work on tougher projects.;Orchestration- Quickly deploy critical updates, like security patches, across hundreds of servers in seconds, or proactively initiate Puppet runs to update configurations and report changes. Puppet Enterprise allows you to orchestrate controlled, multi-step operations to targeted collections of nodes, giving you complete control over infrastructure changes.;Reporting- Get visibility into your infrastructure, browse resources, and view reports that help you manage your configuration. Puppet Enterprise provides node hardware and software inventory, Puppet run change reports, and node configuration graphs via the product's console or 3rd party APIs.
Lets you execute arbitrary Python functions via the command line;Library of subroutines (built on top of a lower-level library) to make executing shell commands over SSH easy and Pythonic
Statistics
GitHub Stars
-
GitHub Stars
7.7K
GitHub Stars
15.3K
GitHub Forks
-
GitHub Forks
2.2K
GitHub Forks
2.0K
Stacks
1.3K
Stacks
1.3K
Stacks
494
Followers
1.1K
Followers
793
Followers
307
Votes
345
Votes
227
Votes
75
Pros & Cons
Pros
110
Dynamic and idempotent server configuration
76
Reusable components
47
Integration testing with Vagrant
43
Repeatable
30
Mock testing with Chefspec
Pros
52
Devops
44
Automate it
26
Reusable components
21
Dynamic and idempotent server configuration
18
Great community
Cons
3
Steep learning curve
1
Customs types idempotence
Pros
23
Python
21
Simple
5
Installation feedback for Twitter App Cards
5
Low learning curve, from bash script to Python power