I'm working with both Ansible and Puppet for the last 6 years on a daily basis.
Ansible for:
- i absolutely love and adore Ansible
- extremely easy and much much much pleasant to read. Sometimes ansible feels like poetry to me.
- ad-hoc SysAdministration - I do not mean "ansible" command, but actual style of work when you need to do something right here and right now.
- prototyping, Dev and staging environments setup, experiments.
Puppet for a polished production.
Puppet has robust and stable ecosystems and infrastructure.
It is a client-server model from the beginning.
It is easier to create and put in the production library of all your puppet modules. It has hiera for central config values and secrets management.
At the same time, I hate the Puppet's resource relations.
Puppet's architecture feels like something developed in 1991, an ugly monster monolith and extremely heavy.
Terraform. For actual low-level infrastructure management. And I don't like to put whole high-level host configuration into IaaC!
IaaC has minimal host configuration capabilities. Set hostname, set IP, register with Puppet or call ansible - only a few lines in user-data or bash-script on boot, which then calls actual configuration management!
Gitlab-CI - switched from Jenkins. Concourse-ci looks extremely interesting! Also reviewing some GitOps frameworks.
Kubernetes - bare-metal runs self-made puppet-based pure k8s. Also, kops and EKS for AWS. Applications in k8s are managed via Helm.
Compared to Puppet Ansible is less enterprissy, it is more like a hipster tool.
I would like to replace the Puppet with Ansible.
But maybe I need the help from all of YOU who have voted for Ansible. How do you achieve Puppet's level of management with Ansible?
How do you achieve client-server setup with ansbile - somehow I do not see lot's of people using ansible-pull?
(Without using Tower!)
You create cronjob with ansible-pull on a node boot? :D
Or whole your ansible usage is limited to running ansible-playbook from your console manually? Ok maybe you sometimes put it in the last action of your CI/CD pipeline ;)
Nodes classification and review?
Central config values management for everything?
I use hashi Vault and lots of other things too.
Some questions are rhetoric. I've just expressed my mistrust in ansible which doesn't feel complete. :(
How to do you manage a fleet of 1000, 500 or even 200 hosts with ansible?
When after provisioning you need to review your fleet, count groups, list groups, check states.
Ah, you want to suggest Consul for that role? :)
Kubernetes for the win. It will replace config management diversity. It gives you node discovery, state review, and much much much more.
Puppet for a polished production. Puppet has robust and stable ecosystems and infrastructure. It is a client-server model from the beginning. It is easier to create and put in the production library of all your puppet modules. It has hiera for central config values and secrets management. At the same time, I hate the Puppet's resource relations. Puppet's architecture feels like something developed in 1991, an ugly monster monolith and extremely heavy.
Terraform. For actual low-level infrastructure management. And I don't like to put whole high-level host configuration into IaaC! IaaC has minimal host configuration capabilities. Set hostname, set IP, register with Puppet or call ansible - only a few lines in user-data or bash-script on boot, which then calls actual configuration management!
Gitlab-CI - switched from Jenkins. Concourse-ci looks extremely interesting! Also reviewing some GitOps frameworks. Kubernetes - bare-metal runs self-made puppet-based pure k8s. Also, kops and EKS for AWS. Applications in k8s are managed via Helm.
Compared to Puppet Ansible is less enterprissy, it is more like a hipster tool. I would like to replace the Puppet with Ansible. But maybe I need the help from all of YOU who have voted for Ansible. How do you achieve Puppet's level of management with Ansible? How do you achieve client-server setup with ansbile - somehow I do not see lot's of people using ansible-pull? (Without using Tower!) You create cronjob with ansible-pull on a node boot? :D Or whole your ansible usage is limited to running ansible-playbook from your console manually? Ok maybe you sometimes put it in the last action of your CI/CD pipeline ;) Nodes classification and review? Central config values management for everything?
I use hashi Vault and lots of other things too. Some questions are rhetoric. I've just expressed my mistrust in ansible which doesn't feel complete. :(
How to do you manage a fleet of 1000, 500 or even 200 hosts with ansible? When after provisioning you need to review your fleet, count groups, list groups, check states. Ah, you want to suggest Consul for that role? :)
Kubernetes for the win. It will replace config management diversity. It gives you node discovery, state review, and much much much more.