Jump to: navigation, search

Difference between revisions of "Satori/AnsibleModuleProposal"

(Created page with "== Ansible Module Proposal == When running discovery, utilize [http://docs.ansible.com/ Ansible] if it's already available on the system. ==== Benefits ==== * It's written...")
 
 
Line 18: Line 18:
 
==== Interface ====
 
==== Interface ====
  
>>>> from satori import ansible
+
>>> from satori import ansible
>>>> creds = {"username": "Tobias", "password": "pa$$word"}
+
>>> creds = {"username": "Tobias", "password": "pa$$word"}
>>>> facts = ansible.discover(host, creds)
+
>>> facts = ansible.discover(host, creds)
  
 
==== Implementation ====
 
==== Implementation ====

Latest revision as of 23:10, 7 March 2014

Ansible Module Proposal

When running discovery, utilize Ansible if it's already available on the system.

Benefits

  • It's written in Python so it's native (no shell-out)
  • It has system info (facts) already built in with the `setup` module
  • It will run ohai and facter on the system to be discovered if already installed
  • We can create our own modules that live with the code or provide an option to look at a custom path

Deficiencies

  • Each module has to be called individually
  • Potentially "heavy" in terms of installation and execution (possibly negated by not directly requiring)
  • Could open the door for changes instead of read-only

Interface

>>> from satori import ansible
>>> creds = {"username": "Tobias", "password": "pa$$word"}
>>> facts = ansible.discover(host, creds)

Implementation

  • Import `satori.ansible` in a `try except` block to see if it is installed
  • Simply require a `pip install ansible` to take advantage of it
  • Allow a `-a` flag with an optional parameter of `--ansible-module-path` and/or `--ansible-module-name` for custom modules
  • Do read only operations. This may only be allowable via the `setup` module execution _only_, and not allowing cutom modules yet.