- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# cs_router – Manages routers on Apache CloudStack based clouds

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- Start, restart, stop and destroy routers.
- state=present is not able to create routers, use cs_network instead.

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6
- cs >= 0.6.10

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
account string |  | Account the router is related to.
api_http_method string | Choices: get post | HTTP method used to query the API endpoint. If not given, the `CLOUDSTACK_METHOD` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes. Fallback value is `get` if not specified.
api_key string |  | API key of the CloudStack API. If not given, the `CLOUDSTACK_KEY` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_region string | Default: "cloudstack" | Name of the ini section in the `cloustack.ini` file. If not given, the `CLOUDSTACK_REGION` env variable is considered.
api_secret string |  | Secret key of the CloudStack API. If not set, the `CLOUDSTACK_SECRET` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_timeout integer |  | HTTP timeout in seconds. If not given, the `CLOUDSTACK_TIMEOUT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes. Fallback value is 10 seconds if not specified.
api_url string |  | URL of the CloudStack API e.g. https://cloud.example.com/client/api. If not given, the `CLOUDSTACK_ENDPOINT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
domain string |  | Domain the router is related to.
name string / required |  | Name of the router.
poll_async boolean | Choices: no yes ← | Poll async jobs until job has finished.
project string |  | Name of the project the router is related to.
service_offering string |  | Name or id of the service offering of the router.
state string | Choices: present ← absent started stopped restarted | State of the router.
zone string added in 2.4 |  | Name of the zone the router is deployed in. If not set, all zones are used.

## Notes

Note

- Ansible uses the `cs` library’s configuration method if credentials are not provided by the arguments `api_url`, `api_key`, `api_secret`. Configuration is read from several locations, in the following order. The `CLOUDSTACK_ENDPOINT`, `CLOUDSTACK_KEY`, `CLOUDSTACK_SECRET` and `CLOUDSTACK_METHOD`. `CLOUDSTACK_TIMEOUT` environment variables. A `CLOUDSTACK_CONFIG` environment variable pointing to an `.ini` file. A `cloudstack.ini` file in the current working directory. A `.cloudstack.ini` file in the users home directory. Optionally multiple credentials and endpoints can be specified using ini sections in `cloudstack.ini`. Use the argument `api_region` to select the section name, default section is `cloudstack`. See https://github.com/exoscale/cs for more information.
- A detailed guide about cloudstack modules can be found in the CloudStack Cloud Guide.
- This module supports check mode.

## Examples

    # Ensure the router has the desired service offering, no matter if
    # the router is running or not.
    - name: Present router
      cs_router:
        name: r-40-VM
        service_offering: System Offering for Software Router
      delegate_to: localhost

    - name: Ensure started
      cs_router:
        name: r-40-VM
        state: started
      delegate_to: localhost

    # Ensure started with desired service offering.
    # If the service offerings changes, router will be rebooted.
    - name: Ensure started with desired service offering
      cs_router:
        name: r-40-VM
        service_offering: System Offering for Software Router
        state: started
      delegate_to: localhost

    - name: Ensure stopped
      cs_router:
        name: r-40-VM
        state: stopped
      delegate_to: localhost

    - name: Remove a router
      cs_router:
        name: r-40-VM
        state: absent
      delegate_to: localhost

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
account string | success | Account the router is related to. Sample: admin
created string | success | Date of the router was created. Sample: 2014-12-01T14:57:57+0100
domain string | success | Domain the router is related to. Sample: ROOT
id string | success | UUID of the router. Sample: 04589590-ac63-4ffc-93f5-b698b8ac38b6
name string | success | Name of the router. Sample: r-40-VM
redundant_state string | success | Redundant state of the router. Sample: UNKNOWN
requires_upgrade boolean | success | Whether the router needs to be upgraded to the new template.
role string | success | Role of the router. Sample: VIRTUAL_ROUTER
service_offering string | success | Name of the service offering the router has. Sample: System Offering For Software Router
state string | success | State of the router. Sample: Active
template_version string | success | Version of the system VM template. Sample: 4.5.1
zone string | success | Name of zone the router is in. Sample: ch-gva-2

## Status

- This module is guaranteed to have backward compatible interface changes going forward. [stableinterface]
- This module is maintained by the Ansible Community. [community]

### Authors

- René Moser (@resmo)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.