community.general.clc_server (8.5.0) — module

Create, Delete, Start and Stop servers in CenturyLink Cloud

Authors: CLC Runner (@clc-runner)

Install collection

Install with ansible-galaxy collection install community.general:==8.5.0


Add to requirements.yml

  collections:
    - name: community.general
      version: 8.5.0

Description

An Ansible module to Create, Delete, Start and Stop servers in CenturyLink Cloud.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Note - You must set the CLC_V2_API_USERNAME And CLC_V2_API_PASSWD Environment variables before running these examples

- name: Provision a single Ubuntu Server
  community.general.clc_server:
    name: test
    template: ubuntu-14-64
    count: 1
    group: Default Group
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure 'Default Group' has exactly 5 servers
  community.general.clc_server:
    name: test
    template: ubuntu-14-64
    exact_count: 5
    count_group: Default Group
    group: Default Group
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Stop a Server
  community.general.clc_server:
    server_ids:
      - UC1ACCT-TEST01
    state: stopped
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Start a Server
  community.general.clc_server:
    server_ids:
      - UC1ACCT-TEST01
    state: started
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete a Server
  community.general.clc_server:
    server_ids:
      - UC1ACCT-TEST01
    state: absent

Inputs

    
cpu:
    default: 1
    description:
    - How many CPUs to provision on the server
    type: int

ttl:
    description:
    - The time to live for the server in seconds.  The server will be deleted when this
      time expires.
    type: str

name:
    description:
    - A 1 to 6 character identifier to use for the server. This is required when state
      is 'present'
    type: str

type:
    choices:
    - standard
    - hyperscale
    - bareMetal
    default: standard
    description:
    - The type of server to create.
    type: str

wait:
    default: true
    description:
    - Whether to wait for the provisioning tasks to finish before returning.
    type: bool

alias:
    description:
    - The account alias to provision the servers under.
    type: str

count:
    default: 1
    description:
    - The number of servers to build (mutually exclusive with exact_count)
    type: int

group:
    default: Default Group
    description:
    - The Server Group to create servers under.
    type: str

state:
    choices:
    - present
    - absent
    - started
    - stopped
    default: present
    description:
    - The state to insure that the provided resources are in.
    type: str

memory:
    default: 1
    description:
    - Memory in GB.
    type: int

os_type:
    choices:
    - redHat6_64Bit
    - centOS6_64Bit
    - windows2012R2Standard_64Bit
    - ubuntu14_64Bit
    description:
    - Only required for bare metal servers. Specifies the OS to provision with the bare
      metal server.
    type: str

location:
    description:
    - The Datacenter to create servers in.
    type: str

packages:
    default: []
    description:
    - The list of blue print packages to run on the server after its created.
    elements: dict
    type: list

password:
    description:
    - Password for the administrator / root user
    type: str

template:
    description:
    - The template to use for server creation.  Will search for a template if a partial
      string is provided. This is required when state is 'present'
    type: str

ip_address:
    description:
    - The IP Address for the server. One is assigned if not provided.
    type: str

managed_os:
    default: false
    description:
    - Whether to create the server as 'Managed' or not.
    required: false
    type: bool

network_id:
    description:
    - The network UUID on which to create servers.
    type: str

server_ids:
    default: []
    description:
    - Required for started, stopped, and absent states. A list of server Ids to insure
      are started, stopped, or absent.
    elements: str
    type: list

count_group:
    description:
    - Required when exact_count is specified.  The Server Group use to determine how many
      servers to deploy.
    type: str

description:
    description:
    - The description to set for the server.
    type: str

exact_count:
    description:
    - Run in idempotent mode.  Will insure that this exact number of servers are running
      in the provided group, creating and deleting them to reach that count.  Requires
      count_group to be set.
    type: int

primary_dns:
    description:
    - Primary DNS used by the server.
    type: str

storage_type:
    choices:
    - standard
    - hyperscale
    default: standard
    description:
    - The type of storage to attach to the server.
    type: str

add_public_ip:
    default: false
    description:
    - Whether to add a public ip to the server
    type: bool

custom_fields:
    default: []
    description:
    - The list of custom fields to set on the server.
    elements: dict
    type: list

secondary_dns:
    description:
    - Secondary DNS used by the server.
    type: str

alert_policy_id:
    description:
    - The alert policy to assign to the server. This is mutually exclusive with 'alert_policy_name'.
    type: str

public_ip_ports:
    default: []
    description:
    - A list of ports to allow on the firewall to the servers public ip, if add_public_ip
      is set to True.
    elements: dict
    type: list

additional_disks:
    default: []
    description:
    - The list of additional disks for the server
    elements: dict
    type: list

configuration_id:
    description:
    - Only required for bare metal servers. Specifies the identifier for the specific
      configuration type of bare metal server to deploy.
    type: str

alert_policy_name:
    description:
    - The alert policy to assign to the server. This is mutually exclusive with 'alert_policy_id'.
    type: str

public_ip_protocol:
    choices:
    - TCP
    - UDP
    - ICMP
    default: TCP
    description:
    - The protocol to use for the public ip if add_public_ip is set to True.
    type: str

source_server_password:
    description:
    - The password for the source server if a clone is specified.
    type: str

anti_affinity_policy_id:
    description:
    - The anti-affinity policy to assign to the server. This is mutually exclusive with
      'anti_affinity_policy_name'.
    type: str

cpu_autoscale_policy_id:
    description:
    - The autoscale policy to assign to the server.
    type: str

anti_affinity_policy_name:
    description:
    - The anti-affinity policy to assign to the server. This is mutually exclusive with
      'anti_affinity_policy_id'.
    type: str

Outputs

partially_created_server_ids:
  description: The list of server ids that are partially created
  returned: success
  sample:
  - UC1TEST-SVR01
  - UC1TEST-SVR02
  type: list
server_ids:
  description: The list of server ids that are created
  returned: success
  sample:
  - UC1TEST-SVR01
  - UC1TEST-SVR02
  type: list
servers:
  description: The list of server objects returned from CLC
  returned: success
  sample:
  - changeInfo:
      createdBy: service.wfad
      createdDate: 1438196820
      modifiedBy: service.wfad
      modifiedDate: 1438196820
    description: test-server
    details:
      alertPolicies: []
      cpu: 1
      customFields: []
      diskCount: 3
      disks:
      - id: 0:0
        partitionPaths: []
        sizeGB: 1
      - id: 0:1
        partitionPaths: []
        sizeGB: 2
      - id: 0:2
        partitionPaths: []
        sizeGB: 14
      hostName: ''
      inMaintenanceMode: false
      ipAddresses:
      - internal: 10.1.1.1
      memoryGB: 1
      memoryMB: 1024
      partitions: []
      powerState: started
      snapshots: []
      storageGB: 17
    groupId: 086ac1dfe0b6411989e8d1b77c4065f0
    id: test-server
    ipaddress: 10.120.45.23
    isTemplate: false
    links:
    - href: /v2/servers/wfad/test-server
      id: test-server
      rel: self
      verbs:
      - GET
      - PATCH
      - DELETE
    - href: /v2/groups/wfad/086ac1dfe0b6411989e8d1b77c4065f0
      id: 086ac1dfe0b6411989e8d1b77c4065f0
      rel: group
    - href: /v2/accounts/wfad
      id: wfad
      rel: account
    - href: /v2/billing/wfad/serverPricing/test-server
      rel: billing
    - href: /v2/servers/wfad/test-server/publicIPAddresses
      rel: publicIPAddresses
      verbs:
      - POST
    - href: /v2/servers/wfad/test-server/credentials
      rel: credentials
    - href: /v2/servers/wfad/test-server/statistics
      rel: statistics
    - href: /v2/servers/wfad/510ec21ae82d4dc89d28479753bf736a/upcomingScheduledActivities
      rel: upcomingScheduledActivities
    - href: /v2/servers/wfad/510ec21ae82d4dc89d28479753bf736a/scheduledActivities
      rel: scheduledActivities
      verbs:
      - GET
      - POST
    - href: /v2/servers/wfad/test-server/capabilities
      rel: capabilities
    - href: /v2/servers/wfad/test-server/alertPolicies
      rel: alertPolicyMappings
      verbs:
      - POST
    - href: /v2/servers/wfad/test-server/antiAffinityPolicy
      rel: antiAffinityPolicyMapping
      verbs:
      - PUT
      - DELETE
    - href: /v2/servers/wfad/test-server/cpuAutoscalePolicy
      rel: cpuAutoscalePolicyMapping
      verbs:
      - PUT
      - DELETE
    locationId: UC1
    name: test-server
    os: ubuntu14_64Bit
    osType: Ubuntu 14 64-bit
    status: active
    storageType: standard
    type: standard
  type: list