- Docs »
- cloudscale_server - Manages servers on the cloudscale.ch IaaS service
-
You are reading an unmaintained version of the Ansible documentation. Unmaintained Ansible versions can contain unfixed security vulnerabilities (CVE). Please upgrade to a maintained version. See the latest Ansible documentation.
cloudscale_server - Manages servers on the cloudscale.ch IaaS service
- Create, start, stop and delete servers on the cloudscale.ch IaaS service.
- All operations are performed using the cloudscale.ch public API v1.
- For details consult the full API documentation: https://www.cloudscale.ch/en/api/v1.
- A valid API token is required for all operations. You can create as many tokens as you like using the cloudscale.ch control panel at https://control.cloudscale.ch.
Parameter |
Choices/Defaults |
Comments |
anti_affinity_with
|
|
UUID of another server to create an anti-affinity group with.
|
api_timeout
(added in 2.5) |
Default:
30
|
Timeout in seconds for calls to the cloudscale.ch API.
|
api_token
|
|
cloudscale.ch API token.
This can also be passed in the CLOUDSCALE_API_TOKEN environment variable.
|
bulk_volume_size_gb
|
|
Size of the bulk storage volume in GB.
No bulk storage volume if not set.
|
flavor
|
|
Flavor of the server.
|
image
|
|
Image used to create the server.
|
name
|
|
Name of the Server.
Either name or uuid are required. These options are mutually exclusive.
|
ssh_keys
|
|
List of SSH public keys.
Use the full content of your .pub file here.
|
state
|
Choices:
running ←
- stopped
- absent
|
State of the server
|
use_ipv6
|
Default:
"yes"
|
Enable IPv6 on the public network interface.
|
use_private_network
|
Default:
"no"
|
Attach a private network interface to the server.
|
use_public_network
|
Default:
"yes"
|
Attach a public network interface to the server.
|
user_data
|
|
Cloud-init configuration (cloud-config) data to use for the server.
|
uuid
|
|
UUID of the server.
Either name or uuid are required. These options are mutually exclusive.
|
volume_size_gb
|
Default:
10
|
Size of the root volume in GB.
|
Note
- Instead of the api_token parameter the CLOUDSCALE_API_TOKEN environment variable can be used.
- To create a new server at least the
name
, ssh_key
, image
and flavor
options are required.
- If more than one server with the name given by the
name
option exists, execution is aborted.
- Once a server is created all parameters except
state
are read-only. You can’t change the name, flavor or any other property. This is a limitation of the cloudscale.ch API. The module will silently ignore differences between the configured parameters and the running server if a server with the correct name or UUID exists. Only state changes will be applied.
# Start a server (if it does not exist) and register the server details
- name: Start cloudscale.ch server
cloudscale_server:
name: my-shiny-cloudscale-server
image: debian-8
flavor: flex-4
ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
use_private_network: True
bulk_volume_size_gb: 100
api_token: xxxxxx
register: server1
# Start another server in anti-affinity to the first one
- name: Start second cloudscale.ch server
cloudscale_server:
name: my-other-shiny-server
image: ubuntu-16.04
flavor: flex-8
ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
anti_affinity_with: '{{ server1.uuid }}'
api_token: xxxxxx
# Stop the first server
- name: Stop my first server
cloudscale_server:
uuid: '{{ server1.uuid }}'
state: stopped
api_token: xxxxxx
# Delete my second server
- name: Delete my second server
cloudscale_server:
name: my-other-shiny-server
state: absent
api_token: xxxxxx
# Start a server and wait for the SSH host keys to be generated
- name: Start server and wait for SSH host keys
cloudscale_server:
name: my-cloudscale-server-with-ssh-key
image: debian-8
flavor: flex-4
ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
api_token: xxxxxx
register: server
until: server.ssh_fingerprints
retries: 60
delay: 2
Common return values are documented here, the following are the fields unique to this module:
Key |
Returned |
Description |
anti_affinity_with
string
|
success when not state == absent |
List of servers in the same anti-affinity group
|
flavor
string
|
success when not state == absent |
The flavor that has been used for this server
Sample:
flex-8
|
href
string
|
success when not state == absent |
API URL to get details about this server
Sample:
https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc
|
image
string
|
success when not state == absent |
The image used for booting this server
Sample:
debian-8
|
interfaces
list
|
success when not state == absent |
List of network ports attached to the server
Sample:
[{'type': 'public', 'addresses': ['...']}]
|
name
string
|
success |
The display name of the server
Sample:
its-a-me-mario.cloudscale.ch
|
ssh_fingerprints
list
|
success when not state == absent |
A list of SSH host key fingerprints. Will be null until the host keys could be retrieved from the server.
Sample:
['ecdsa-sha2-nistp256 SHA256:XXXX', '...']
|
ssh_host_keys
list
|
success when not state == absent |
A list of SSH host keys. Will be null until the host keys could be retrieved from the server.
Sample:
['ecdsa-sha2-nistp256 XXXXX', '...']
|
state
string
|
success |
The current status of the server
Sample:
running
|
uuid
string
|
success |
The unique identifier for this server
Sample:
cfde831a-4e87-4a75-960f-89b0148aa2cc
|
volumes
list
|
success when not state == absent |
List of volumes attached to the server
Sample:
[{'device': '/dev/vda', 'size_gb': '50', 'type': 'ssd'}]
|
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Community, see here.
Hint
If you notice any issues in this documentation you can edit this document to improve it.