Posted in Devops, Information Technology

Solutions Automation Cheat Sheet

Classical Automation Tools

Framework DSL Push/Pull CM CM Encryption Drift Management Job Scheduling Orchestration
Ansible Propietary Push Built-in Built-in ? Ansible Tower Ansible Tower
cfengine Propietary Push/Pull ? ? ? Enterprise Only ?
Puppet Ruby Push/Pull Hiera Hiera Eyaml Foreman, PuppetDB, Polscan Puppet Enterprise Puppet Enterprise, mcollective
Chef Ruby Push/Pull Builtin Builtin Pushy, (knife plugin + ZeroMQ) %
Saltstack Python Push Builtin Builtin ? salt-run Saltstack Enterprise

Smaller automation tools

  • Bcfg2: Alternative to puppet and cfengine by Argonne National Laboratory. (IMO out-dated)
  • cdist: configuration with shell scripting
  • EMC UIM
    • Unified Infrastructure Manager, VCE VBlock (enterprise, commercial)
  • slaughter (Perl, active, small user base)
  • Sprinkle (Ruby, quite recent)
  • Rundeck – Workflow manager for node – role systems like EC2, chef, puppet …
  • IBM Tivoli

Finally it is worth to check the Wikipedia Comparison Chart for other less known and new tools!

Automation Drift Management

Testing

Misc

  • Augeas: Very flexible file editor to be used with Puppet or standalone. Could also work with cfengine.
    $ augtool
    augtool> set /files/etc/ssh/sshd_config/PermitRootLogin no
    augtool> save
    
  • cfengine – Force running shortly after a recent execution
    cfagent -K
    
  • cfengine – Design Center: Git repository with sketches and examples for cfengine.
  • cfengine – Find and install sketches from the Design Center repository
    # cf-sketch --search utilities
    Monitoring::nagios_plugin_agent /tmp/design-center/sketches/utilities/nagios_plugin_agent
    [...]
    # cf-sketch --install Monitoring::nagios_plugin_agent
    
  • SaltStack – Run commands
    salt '*' cmd.run 'apt-get install bash'
    
  • SaltStack – Batch concurrency
    salt '*' state.highstate -b <count>
    
  • osquery – Facebook SQL facter
    echo "SELECT * FROM etc_hosts;" | osqueryi
    
    $ osqueryi
    osquery> SELECT
        ...> u.username,
        ...> g.groupname
        ...> FROM users as u
        ...> JOIN groups as g ON u.gid = g.gid;

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s