digital_ocean - Create/delete a droplet/SSH_key in DigitalOcean

Synopsis

New in version 1.3.

Create/delete a droplet in DigitalOcean and optionally wait for it to be ‘running’, or deploy an SSH key.

Options

parameter required default choices comments
api_key no
    DigitalOcean api key.
    backups_enabled no no
    • yes
    • no
    Optional, Boolean, enables backups for your droplet. (added in Ansible 1.6)
    client_id no
      DigitalOcean manager id.
      command no droplet
      • droplet
      • ssh
      Which target you want to operate on.
      id no
        Numeric, the droplet id you want to operate on.
        image_id no
          Numeric, this is the id of the image you would like the droplet created with.
          name no
            String, this is the name of the droplet - must be formatted by hostname rules, or the name of a SSH key.
            private_networking no no
            • yes
            • no
            Bool, add an additional, private network interface to droplet for inter-droplet communication. (added in Ansible 1.4)
            region_id no
              Numeric, this is the id of the region you would like your server to be created in.
              size_id no
                Numeric, this is the id of the size you would like the droplet created with.
                ssh_key_ids no
                  Optional, comma separated list of ssh_key_ids that you would like to be added to the server.
                  ssh_pub_key no
                    The public SSH key you want to add to your account.
                    state no present
                    • present
                    • active
                    • absent
                    • deleted
                    Indicate desired state of the target.
                    unique_name no no
                    • yes
                    • no
                    Bool, require unique hostnames. By default, DigitalOcean allows multiple hosts with the same name. Setting this to "yes" allows only one host per name. Useful for idempotence. (added in Ansible 1.4)
                    virtio no yes
                    • yes
                    • no
                    Bool, turn on virtio driver in droplet for improved network and storage I/O. (added in Ansible 1.4)
                    wait no yes
                    • yes
                    • no
                    Wait for the droplet to be in state 'running' before returning. If wait is "no" an ip_address may not be returned.
                    wait_timeout no 300
                      How long before wait gives up, in seconds.

                      Note

                      Requires dopy

                      Examples


                      # Ensure a SSH key is present
                      # If a key matches this name, will return the ssh key id and changed = False
                      # If no existing key matches this name, a new key is created, the ssh key id is returned and changed = False
                      
                      - digital_ocean: >
                            state=present
                            command=ssh
                            name=my_ssh_key
                            ssh_pub_key='ssh-rsa AAAA...'
                            client_id=XXX
                            api_key=XXX
                      
                      # Create a new Droplet
                      # Will return the droplet details including the droplet id (used for idempotence)
                      
                      - digital_ocean: >
                            state=present
                            command=droplet
                            name=mydroplet
                            client_id=XXX
                            api_key=XXX
                            size_id=1
                            region_id=2
                            image_id=3
                            wait_timeout=500
                        register: my_droplet
                      - debug: msg="ID is {{ my_droplet.droplet.id }}"
                      - debug: msg="IP is {{ my_droplet.droplet.ip_address }}"
                      
                      # Ensure a droplet is present
                      # 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.
                      
                      - digital_ocean: >
                            state=present
                            command=droplet
                            id=123
                            name=mydroplet
                            client_id=XXX
                            api_key=XXX
                            size_id=1
                            region_id=2
                            image_id=3
                            wait_timeout=500
                      
                      # Create a droplet with ssh key
                      # 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.
                      
                      - digital_ocean: >
                            state=present
                            ssh_key_ids=id1,id2
                            name=mydroplet
                            client_id=XXX
                            api_key=XXX
                            size_id=1
                            region_id=2
                            image_id=3
                      

                      Note

                      Two environment variables can be used, DO_CLIENT_ID and DO_API_KEY.