There are of course several pro and cons for each of Puppet, Ansible, Chef and add your favorite tool here as well. So I'll try to stay away from opinion, and share what is great in Ansible as a matter of fact.
The main capability that puts Ansible above the others is not having to rely on some custom/additional agent running on the target nodes, instead ...
No, people moving away from Puppet to Ansible (or vice versa) has nothing to do with what can or cannot be accomplished with either tool. Puppet/Chef/Ansible - it's mostly a matter of taste.
For example, Ansible is based on Python, and Python developers typically feel more at home with it (no need to learn a DSL), or Ruby (for Chef)). Easier for Python ...
Until Puppet 4.0 there was no easy way to orchestrate application spread over multiple servers or services, as it was hard to specifically order actions in Puppet, which was a design choice. Ansible was better at orchestrating and ordering the steps, especially across multiple servers. This was especially significant in applications where the wrong order of ...
First of all, I strongly advise against "feature comparisons" blog post for similar software, they're quickly outdated and I'll try to keep this answer generic for a system configuration manager (SCM) and let docker out of the talk for the first part.
What it can brings you:
Reproduction of configuration from environment to environment
Versioning of the ...
The direct answer is "no".
Ansible does not have any database, because it is supposed to be run by different operators from different computers and it's purpose is to be sure that target systems are in the exact state, as specified in playbooks.
There's an option to attach external facts cache backends to Ansible. So you can setup redis as your cache, ...
The prerequisites for a chef server are here and common to any installation.
You only need to allow https to port 443 from your inner infrastructure to the cloud server.
If you have a proxy with SSL interception I'd recommend adding this proxy certificate to each client cacert.pem and set an environment variable SSL_CERT_FILE=<chef_install_path>...
First, try setting dns_alt_names in /etc/puppet/puppet.conf:
dns_alt_names = www.puppetmaster.com
autosign = true
Then see if your puppet-agent -t run works properly. be sure that you have properly set your server on the puppet client in /etc/puppet/puppet.conf too:
server = www.puppetmaster.com
The Foreman comes with a Puppet Master whether you like it or not since The Foreman uses puppet as part of it's installer. This can't be disabled and The Forman will leave it behind and running - so you might as well use what is deployed anyway and make the Puppet Master and your Foreman server one in the same. You can keep your Ansible installation ...
This really might depend on the context. On long term it's worth to take a deeper look for a moment if you are not after quick shots and go beyond experiments for a sustainable (and large) infrastructure.
So we have got many clouds out there. Deployment automation means, they have some API.
So what does make a deployment automation tool ...
You could try this:
Their CTO uses it to spin up K8S clusters for his weekly youtube live stream called TGIK, in order to showcase whatever he wants to talk about.
I myself use GKE so I do not need it.
Go to https://forge.puppet.com and look for modules with a high "Quality Score"
For example https://forge.puppet.com/puppetlabs/stdlib/scores.
Then you can take a look at the Project URL and view it's .travis.yml and the tests in spec/
Cloud setup could be done completly by Terraform. Check out terraform provider resources for required parameters ex. Azure Data Factory
Configuration management stuff mostly in use for OS tuning inside Virtual Machines. So maybe you don't need them at all.
I think that the simplest solution is to have the lifecycle of the 7-Zip package managed by exec resources rather than as package resources. Imagine an exec resource that installs 7-zip, lets call it install-7-zip. There is also a second puppet exec resource that uninstalls 7-zip, lets call it uninstall-7-zip.
If all of your other puppet resources that ...
These tools serve slightly different purposes: use a configuration management tool like Ansible/Puppet for configuration / customization and orchestration tool like Terraform to provision infrastructure.
Ansible and Puppet are primarily configuration management tools. It is suitable for resource customization and configuration.
Puppet requires Puppet Agent ...
On the agent I needed to set the server ip set to puppet in
I had accidentally put it on the agents ip address and then been incorrectly assuming i'd done something wrong on the master rather than the agent.
(server ip) (domian name) puppet
You can indeed use IP address in the "certname" directive of puppet.conf file.
In addition, you can create a private hosted zone in AWS Route53 that is called for example lab.local and then create an A record for your puppet server such as for example puppetmaster.lab.local and then use this address in the certname directive.
Opening a hosted zone in Route ...
While it may not be the answer you are looking for, puppet's DSL lacks verbs on purpose. Puppet's idempotent philosophy is a huge reason it is so useful for some use cases but for this type of need you will want to use a tool which is more targeted to that role.
When you hit limitations due to the idempotent philosophy of Puppet it is a good indication ...