rax_files - Manipulate Rackspace Cloud Files Containers

Author:Paul Durivage

Synopsis

New in version 1.5.

Manipulate Rackspace Cloud Files Containers

Options

parameter required default choices comments
api_key no
    Rackspace API key (overrides credentials)
    clear_meta no no
    • yes
    • no
    Optionally clear existing metadata when applying metadata to existing containers. Selecting this option is only appropriate when setting type=meta
    container yes
      The container to use for container or metadata operations.
      credentials no
        File to find the Rackspace credentials in (ignored if api_key and username are provided)
        env no
          Environment as configured in ~/.pyrax.cfg, see https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#pyrax-configuration (added in Ansible 1.5)
          meta no
            A hash of items to set as metadata values on a container
            private no
              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
              public no
                Used to set a container as public, available via the Cloud Files CDN
                region no DFW
                  Region to create an instance in
                  state no present
                  • present
                  • absent
                  Indicate desired state of the resource
                  ttl no
                    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 no file
                    • file
                    • meta
                    Type of object to do work on, i.e. metadata object or a container object
                    username no
                      Rackspace username (overrides credentials)
                      verify_ssl no
                        Whether or not to require SSL validation of API endpoints (added in Ansible 1.5)
                        web_error no
                          Sets an object to be presented as the HTTP error page when accessed by the CDN URL
                          web_index no
                            Sets an object to be presented as the HTTP index page when accessed by the CDN URL

                            Note

                            Requires pyrax

                            Examples


                            - name: "Test Cloud Files Containers"
                              hosts: local
                              gather_facts: no
                              tasks:
                                - name: "List all containers"
                                  rax_files: state=list
                            
                                - name: "Create container called 'mycontainer'"
                                  rax_files: container=mycontainer
                            
                                - name: "Create container 'mycontainer2' with metadata"
                                  rax_files:
                                    container: mycontainer2
                                    meta:
                                      key: value
                                      file_for: someuser@example.com
                            
                                - name: "Set a container's web index page"
                                  rax_files: container=mycontainer web_index=index.html
                            
                                - name: "Set a container's web error page"
                                  rax_files: container=mycontainer web_error=error.html
                            
                                - name: "Make container public"
                                  rax_files: container=mycontainer public=yes
                            
                                - name: "Make container public with a 24 hour TTL"
                                  rax_files: container=mycontainer public=yes ttl=86400
                            
                                - name: "Make container private"
                                  rax_files: container=mycontainer private=yes
                            
                            - name: "Test Cloud Files Containers Metadata Storage"
                              hosts: local
                              gather_facts: no
                              tasks:
                                - name: "Get mycontainer2 metadata"
                                  rax_files:
                                    container: mycontainer2
                                    type: meta
                            
                                - name: "Set mycontainer2 metadata"
                                  rax_files:
                                    container: mycontainer2
                                    type: meta
                                    meta:
                                      uploaded_by: someuser@example.com
                            
                                - name: "Remove mycontainer2 metadata"
                                  rax_files:
                                    container: "mycontainer2"
                                    type: meta
                                    state: absent
                                    meta:
                                      key: ""
                                      file_for: ""

                            Note

                            The following environment variables can be used, RAX_USERNAME, RAX_API_KEY, RAX_CREDS_FILE, RAX_CREDENTIALS, RAX_REGION.

                            Note

                            RAX_CREDENTIALS and RAX_CREDS_FILE points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticating

                            Note

                            RAX_USERNAME and RAX_API_KEY obviate the use of a credentials file

                            Note

                            RAX_REGION defines a Rackspace Public Cloud region (DFW, ORD, LON, ...)