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)
        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
                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)
                    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, ...)