I have not started working with Ansible, however i am very interested
in evaluating it, so the main way to manage the device is ssh, however
it the blog it is mentioned that any ssh device, or as long as it has
an API, how about if i would like to manage provisioning a new node,
so i need to install the OS, configure the BIOS, and Raid card and if
i have more than network cards, i might be interested in configuring
bonding in both the switch and the bare-metal hardware. would that be
a possible scenarios now? will the different devices involved in
bare-metal, virtual, or cloud, or cloud instance configuration have
the ability to communicate and be configured with Ansible?
So it sounds like you're discussing configuring a device via the
management port where you can get at all of these things from the one
port.
There's obviously the "raw" module now for communicating via SSH
without modules, what it sounds like you would need for your
management hardware (arbitrarily, let's say Cisco UCS management
ports) is write a server side module that talks to them, abstracting
out the things you do. (I know UCS is particularly good about
allowing you to configure a ton there).
Basically you could need to look at how the raw module works, and have
it parse arguments using things like utils.parse_kv(), and embed the
logic in a module just like the raw module, but called something like
'ucs' (or "acme_blade_chasis", etc).
The other thing you could do is find if it had another type of API,
and use "delegate_to" to speak to the device using another host to
speak to that API -- for example XML/SOAP/etc. Then you can also
use higher level APIs than SSH, this is actually a bit easier in many
cases, provided you have something other than SSH to talk to. (For
instance, Cisco UCS has an XML API).