Ansible module to configure services in Fastly
$ ansible-galaxy install Jimdo.fastly
Name | Required | Description | Default |
---|---|---|---|
name | true | The unique name for the service to create | |
fastly_api_key | false | Fastly API key. If not set then the value of the FASTLY_API_KEY environment variable is used. | |
activate_new_version | false | Configures whether newly created versions should be activated automatically | true |
domains | true | List of domain names to serve as entry points for your service | |
backends | true | List of backends to service requests from your domains | |
cache_settings | false | List of cache settings | |
conditions | false | List of conditions | |
directors | false | List of directors | |
gzips | false | List of gzip configurations | |
headers | false | List of headers to manipulate for each request | |
healthchecks | false | List of healthchecks for the backend purpose | |
request_settings | false | List of request settings | |
response_objects | false | List of response objects | |
settings | false | Settings object | |
s3s | false | List of S3 loggers | |
syslogs | false | List of Syslog loggers | |
vcl_snippets | false | List of VCL snippets |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
port | false | integer | 80 |
address | true | string | |
ssl_hostname | false | string | |
ssl_ca_cert | false | string | |
ssl_cert_hostname | false | string | |
shield | false | string | |
healthcheck | false | string | |
weight | false | integer | 100 |
connect_timeout | false | integer | 1000 |
first_byte_timeout | false | integer | 15000 |
between_bytes_timeout | false | integer | 10000 |
error_threshold | false | integer | 0 |
max_conn | false | integer | 200 |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
action | false | enum ('cache', 'pass', 'restart') | |
cache_condition | false | string | |
stale_ttl | false | integer | 0 |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
comment | false | string | |
priority | false | integer | 0 |
statement | true | string | |
type | true | enum ('REQUEST', 'PREFETCH', 'CACHE', 'RESPONSE') |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
backends | false | array of strings | |
capacity | false | integer | 100 |
comment | false | string | '' |
quorum | false | integer | 75 |
shield | false | string | |
type | false | integer (one of [1,2,3,4]) | 1 |
retries | false | integer | 5 |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
action | false | enum ('set', 'append', 'delete', 'regex', 'regex_repeat') | set |
dst | true | string | |
ignore_if_set | false | integer (one of [0,1]) | 0 |
priority | false | integer | 100 |
regex | false | string | |
request_condition | false | string | |
response_condition | false | string | |
cache_condition | false | string | |
src | true | string | |
substitution | false | string | |
type | true | enum ('request', 'fetch', 'cache', 'response') |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
check_interval | false | integer | |
comment | false | string | '' |
expected_response | false | integer | 200 |
host | true | string | |
http_version | false | string | 1.1 |
initial | false | integer | |
method | false | string | HEAD |
path | false | string | '/' |
threshold | false | integer | |
timeout | false | integer | |
window | false | integer |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
request_condition | false | string | |
action | false | enum ('lookup', 'pass') | |
xff | false | enum ('clear', 'leave', 'append', 'append_all', 'overwrite') | |
hash_keys | false | string | |
default_host | false | string | |
max_stale_age | false | integer | 0 |
force_miss | false | integer | 0 |
force_ssl | false | integer | 0 |
timer_support | false | integer | 0 |
geo_headers | false | integer | 0 |
bypass_busy_wait | false | integer | 0 |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
request_condition | false | string | |
response | false | string | Ok |
status | false | integer | 200 |
content | false | string | |
content_type | false | string |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
dynamic | false | integer | 0 |
type | false | string | "init" |
content | true | string | |
priority | false | integer | 100 |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
access_key | false | string | |
bucket_name | false | string | |
domain | false | string | |
format | false | string | %{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
format_version | false | integer | 2 |
gzip_level | false | integer | 0 |
message_type | false | enum ('classic', 'loggly', 'logplex', 'blank') | classic |
path | false | string | / |
period | false | integer | 3600 |
placement | false | string | |
redundancy | false | string | |
response_condition | false | string | '' |
secret_key | false | string | |
server_side_encryption_kms_key_id | false | string | |
server_side_encryption | fasle | string | |
timestamp_format | false | string | %Y-%m-%dT%H |
Field | Required | Type | Default |
---|---|---|---|
name | true | string | |
address | true | string | |
format | false | string | %{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
format_version | false | integer | 2 |
hostname | false | string | |
ipv4 | false | string | |
message_type | false | enum ('classic', 'loggly', 'logplex', 'blank') | classic |
placement | false | string | |
port | true | int | |
response_condition | false | string | '' |
tls_ca_cert | false | string | |
tls_hostname | false | string | |
token | false | string | |
use_tls | false | int | 0 |
Field | Required | Type | Default |
---|---|---|---|
general.default_ttl | false | integer | 3600 |
---
- hosts: localhost
connection: local
gather_facts: False
roles:
- Jimdo.fastly
tasks:
- fastly_service:
name: Redirect service
domains:
- name: test1.example.net
comment: redirect domain
backends:
- name: localhost
port: 80
address: 127.0.0.1
headers:
- name: Set Location header
dst: http.Location
type: response
action: set
src: http://test3.example.net req.url.path
ignore_if_set: 0
priority: 10
response_objects:
- name: Set 301 status code
status: 301
$ ansible-playbook -i localhost, fastly.yml
FASTLY_API_KEY=some_secret python -m unittest discover tests
VCR.py is used in the tests for mocking HTTP requests.
In order to update the cassettes just delete the tests/fixtures/cassettes
directory and run the tests as usual. You have to use a valid Fastly API key for the recording to work.