community.general.rax_files – Manipulate Rackspace Cloud Files Containers
Note
This plugin is part of the community.general collection (version 3.8.3).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.rax_files
.
Requirements
The below requirements are needed on the host that executes this module.
pyrax
python >= 2.6
Parameters
Parameter |
Comments |
---|---|
Rackspace API key, overrides credentials. |
|
The URI of the authentication service. If not specified will be set to https://identity.api.rackspacecloud.com/v2.0/ |
|
Optionally clear existing metadata when applying metadata to existing containers. Selecting this option is only appropriate when setting type=meta Choices:
|
|
The container to use for container or metadata operations. |
|
File to find the Rackspace credentials in. Ignored if api_key and username are provided. |
|
Environment as configured in ~/.pyrax.cfg, see https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#pyrax-configuration. |
|
Authentication mechanism to use, such as rackspace or keystone. Default: “rackspace” |
|
A hash of items to set as metadata values on a container |
|
Used to set a container as private, removing it from the CDN. Warning! Private containers, if previously made public, can have live objects available until the TTL on cached objects expires Choices:
|
|
Used to set a container as public, available via the Cloud Files CDN Choices:
|
|
Region to create an instance in |
|
Indicate desired state of the resource Choices:
|
|
The tenant ID used for authentication. |
|
The tenant name used for authentication. |
|
In seconds, set a container-wide TTL for all objects cached on CDN edge nodes. Setting a TTL is only appropriate for containers that are public |
|
Type of object to do work on, i.e. metadata object or a container object Choices:
|
|
Rackspace username, overrides credentials. |
|
Whether or not to require SSL validation of API endpoints. Choices:
|
|
Sets an object to be presented as the HTTP error page when accessed by the CDN URL |
|
Sets an object to be presented as the HTTP index page when accessed by the CDN URL |
Notes
Note
The following environment variables can be used,
RAX_USERNAME
,RAX_API_KEY
,RAX_CREDS_FILE
,RAX_CREDENTIALS
,RAX_REGION
.RAX_CREDENTIALS
andRAX_CREDS_FILE
points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAME
andRAX_API_KEY
obviate the use of a credentials fileRAX_REGION
defines a Rackspace Public Cloud region (DFW, ORD, LON, …)The following environment variables can be used,
RAX_USERNAME
,RAX_API_KEY
,RAX_CREDS_FILE
,RAX_CREDENTIALS
,RAX_REGION
.RAX_CREDENTIALS
andRAX_CREDS_FILE
points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAME
andRAX_API_KEY
obviate the use of a credentials fileRAX_REGION
defines a Rackspace Public Cloud region (DFW, ORD, LON, …)
Examples
- name: "Test Cloud Files Containers"
hosts: local
gather_facts: no
tasks:
- name: "List all containers"
community.general.rax_files:
state: list
- name: "Create container called 'mycontainer'"
community.general.rax_files:
container: mycontainer
- name: "Create container 'mycontainer2' with metadata"
community.general.rax_files:
container: mycontainer2
meta:
key: value
file_for: [email protected]
- name: "Set a container's web index page"
community.general.rax_files:
container: mycontainer
web_index: index.html
- name: "Set a container's web error page"
community.general.rax_files:
container: mycontainer
web_error: error.html
- name: "Make container public"
community.general.rax_files:
container: mycontainer
public: yes
- name: "Make container public with a 24 hour TTL"
community.general.rax_files:
container: mycontainer
public: yes
ttl: 86400
- name: "Make container private"
community.general.rax_files:
container: mycontainer
private: yes
- name: "Test Cloud Files Containers Metadata Storage"
hosts: local
gather_facts: no
tasks:
- name: "Get mycontainer2 metadata"
community.general.rax_files:
container: mycontainer2
type: meta
- name: "Set mycontainer2 metadata"
community.general.rax_files:
container: mycontainer2
type: meta
meta:
uploaded_by: [email protected]
- name: "Remove mycontainer2 metadata"
community.general.rax_files:
container: "mycontainer2"
type: meta
state: absent
meta:
key: ""
file_for: ""
Authors
Paul Durivage (@angstwad)