Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
evensevenone
May 12, 2001
Glass is a solid.
Ansible is pretty easy to get going, but it doesn't manage state at all, it's basically glorified shell scripts that run in parallel. So if you run a playbook that adds a package, and then later you decide that you don't want that package, you need to add a rule to remove the package.

If you have to manage long-running physical servers, you need to think a bit carefully about what you're doing; the state of a machine is going to be the sum of all ansible recipies that have ever been run on it, not just the most recent one. So things like "lineinfile" that seem super convenient can bite you in the rear end.

I think it's pretty good if your process is to always spin up a clean VM and run ansible against it, and then if you want to change something you always spin up a new one and kill the old one (i.e. the "cattle not pets" mentality).

Also, do yourself a favor and store your inventory files in a separate place than your playbooks so you don't have to do a commit to add a new host.


edit: I don't know if Chef or Puppet are any better at this, I was just surprised at how little Ansible actually does.

Adbot
ADBOT LOVES YOU

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply