Rename digital ocean module to digital_ocean, add documentation.

This commit is contained in:
Vincent Viallet 2013-06-18 10:45:45 +08:00
parent 6c88a80bd7
commit fe7fcf2d15

View file

@ -17,7 +17,7 @@
# along with Ansible. If not, see <http://www.gnu.org/licenses/>. # along with Ansible. If not, see <http://www.gnu.org/licenses/>.
DOCUMENTATION = ''' DOCUMENTATION = '''
--- ---
module: do module: digital_ocean
short_description: Create/delete a droplet/SSH_key in DigitalOcean short_description: Create/delete a droplet/SSH_key in DigitalOcean
description: description:
- Create/delete a droplet in DigitalOcean and optionally waits for it to be 'running', or deploy an SSH key. - Create/delete a droplet in DigitalOcean and optionally waits for it to be 'running', or deploy an SSH key.
@ -75,12 +75,30 @@ notes:
EXAMPLES = ''' EXAMPLES = '''
# a playbook task line: # Ensure a SSH key is present
tasks: - digital_ocean: state=present command=ssh name=my_ssh_key ssh_pub_key='ssh-rsa AAAA...' client_id=XXX api_key=XXX
- do: state=present client_id=XXX api_key=XXX id=33
# /usr/bin/ansible invocations If a key matches this name, will return the ssh key id and changed = False
ansible -i host -m do -a "state=present client_id=XXX api_key=XXX id=3" If no existing key matches this name, a new key is created, the ssh key id is returned and changed = False
# Create a new Droplet
- digital_ocean: state=present command=droplet name=my_new_droplet client_id=XXX api_key=XXX size_id=1 region_id=2 image_id=3 wait_timeout=500
Will return the droplet details including the droplet id (used for idempotence)
# Ensure a droplet is present
- digital_ocean: state=present command=droplet id=123 name=my_new_droplet client_id=XXX api_key=XXX size_id=1 region_id=2 image_id=3 wait_timeout=500
If droplet id already exist, will return the droplet details and changed = False
If no droplet matches the id, a new droplet will be created and the droplet details (including the new id) are returned, changed = True.
# Create a droplet with ssh key
- digital_ocean: state=present ssh_key_ids=id name=my_new_droplet client_id=XXX api_key=XXX size_id=1 region_id=2 image_id=3
The ssh key id can be passed as argument at the creation of a droplet (see ssh_key_ids).
Several keys can be added to ssh_key_ids as id1,id2,id3
The keys are used to connect as root to the droplet.
''' '''
import sys import sys
@ -277,8 +295,8 @@ def core(module):
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec = dict( argument_spec = dict(
command = dict(required=True, choices=['droplet', 'ssh']), command = dict(required=True, choices=['droplet', 'ssh'], default='droplet'),
state = dict(required=True, choices=['active', 'present', 'absent', 'deleted']), state = dict(required=True, choices=['active', 'present', 'absent', 'deleted'], default='present'),
client_id = dict(aliases=['CLIENT_ID'], no_log=True), client_id = dict(aliases=['CLIENT_ID'], no_log=True),
api_key = dict(aliases=['API_KEY'], no_log=True), api_key = dict(aliases=['API_KEY'], no_log=True),
name = dict(type='str'), name = dict(type='str'),