ansible-fastly

Ansible-Modul zur Konfiguration von Diensten in Fastly
Installation
$ ansible-galaxy install Jimdo.fastly
Dokumentation
Moduloptionen
Name |
Erforderlich |
Beschreibung |
Standard |
name |
ja |
Der eindeutige Name für den zu erstellenden Dienst |
|
fastly_api_key |
nein |
Fastly API-Schlüssel. Wenn nicht gesetzt, wird der Wert der Umgebungsvariablen FASTLY_API_KEY verwendet. |
|
activate_new_version |
nein |
Konfiguriert, ob neu erstellte Versionen automatisch aktiviert werden sollen |
ja |
domains |
ja |
Liste von Domainnamen, die als Einstiegspunkte für Ihren Dienst dienen |
|
backends |
ja |
Liste von Backends zur Bearbeitung von Anfragen Ihrer Domains |
|
cache_settings |
nein |
Liste von Cache-Einstellungen |
|
conditions |
nein |
Liste von Bedingungen |
|
directors |
nein |
Liste von Regisseuren |
|
gzips |
nein |
Liste von Gzip-Konfigurationen |
|
headers |
nein |
Liste von Headern, die für jede Anfrage bearbeitet werden sollen |
|
healthchecks |
nein |
Liste von Gesundheitsprüfungen für Backends |
|
request_settings |
nein |
Liste von Anfrageinstellungen |
|
response_objects |
nein |
Liste von Antwortobjekten |
|
settings |
nein |
Einstellungen-Objekt |
|
s3s |
nein |
Liste von S3-Loggern |
|
syslogs |
nein |
Liste von Syslog-Loger |
|
vcl_snippets |
nein |
Liste von VCL-Elementen |
|
Backend
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
port |
nein |
integer |
80 |
address |
ja |
string |
|
ssl_hostname |
nein |
string |
|
ssl_ca_cert |
nein |
string |
|
ssl_cert_hostname |
nein |
string |
|
shield |
nein |
string |
|
healthcheck |
nein |
string |
|
weight |
nein |
integer |
100 |
connect_timeout |
nein |
integer |
1000 |
first_byte_timeout |
nein |
integer |
15000 |
between_bytes_timeout |
nein |
integer |
10000 |
error_threshold |
nein |
integer |
0 |
max_conn |
nein |
integer |
200 |
Cache-Einstellungen
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
action |
nein |
enum ('cache', 'pass', 'restart') |
|
cache_condition |
nein |
string |
|
stale_ttl |
nein |
integer |
0 |
Bedingung
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
comment |
nein |
string |
|
priority |
nein |
integer |
0 |
statement |
ja |
string |
|
type |
ja |
enum ('REQUEST', 'PREFETCH', 'CACHE', 'RESPONSE') |
|
Direktor
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
backends |
nein |
array von Strings |
|
capacity |
nein |
integer |
100 |
comment |
nein |
string |
'' |
quorum |
nein |
integer |
75 |
shield |
nein |
string |
|
type |
nein |
integer (einer von [1,2,3,4]) |
1 |
retries |
nein |
integer |
5 |
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
action |
nein |
enum ('set', 'append', 'delete', 'regex', 'regex_repeat') |
set |
dst |
ja |
string |
|
ignore_if_set |
nein |
integer (einer von [0,1]) |
0 |
priority |
nein |
integer |
100 |
regex |
nein |
string |
|
request_condition |
nein |
string |
|
response_condition |
nein |
string |
|
cache_condition |
nein |
string |
|
src |
ja |
string |
|
substitution |
nein |
string |
|
type |
ja |
enum ('request', 'fetch', 'cache', 'response') |
|
Gesundheitsprüfung
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
check_interval |
nein |
integer |
|
comment |
nein |
string |
'' |
expected_response |
nein |
integer |
200 |
host |
ja |
string |
|
http_version |
nein |
string |
1.1 |
initial |
nein |
integer |
|
method |
nein |
string |
HEAD |
path |
nein |
string |
'/' |
threshold |
nein |
integer |
|
timeout |
nein |
integer |
|
window |
nein |
integer |
|
Anfrageeinstellungen
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
request_condition |
nein |
string |
|
action |
nein |
enum ('lookup', 'pass') |
|
xff |
nein |
enum ('clear', 'leave', 'append', 'append_all', 'overwrite') |
|
hash_keys |
nein |
string |
|
default_host |
nein |
string |
|
max_stale_age |
nein |
integer |
0 |
force_miss |
nein |
integer |
0 |
force_ssl |
nein |
integer |
0 |
timer_support |
nein |
integer |
0 |
geo_headers |
nein |
integer |
0 |
bypass_busy_wait |
nein |
integer |
0 |
Antwortobjekt
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
request_condition |
nein |
string |
|
response |
nein |
string |
Ok |
status |
nein |
integer |
200 |
content |
nein |
string |
|
content_type |
nein |
string |
|
VCL-Snippets
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
dynamic |
nein |
integer |
0 |
type |
nein |
string |
"init" |
content |
ja |
string |
|
priority |
nein |
integer |
100 |
S3-Logging
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
access_key |
nein |
string |
|
bucket_name |
nein |
string |
|
domain |
nein |
string |
|
format |
nein |
string |
%{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
format_version |
nein |
integer |
2 |
gzip_level |
nein |
integer |
0 |
message_type |
nein |
enum ('classic', 'loggly', 'logplex', 'blank') |
classic |
path |
nein |
string |
/ |
period |
nein |
integer |
3600 |
placement |
nein |
string |
|
redundancy |
nein |
string |
|
response_condition |
nein |
string |
'' |
secret_key |
nein |
string |
|
server_side_encryption_kms_key_id |
nein |
string |
|
server_side_encryption |
nein |
string |
|
timestamp_format |
nein |
string |
%Y-%m-%dT%H |
Syslog-Logging
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
name |
ja |
string |
|
address |
ja |
string |
|
format |
nein |
string |
%{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
format_version |
nein |
integer |
2 |
hostname |
nein |
string |
|
ipv4 |
nein |
string |
|
message_type |
nein |
enum ('classic', 'loggly', 'logplex', 'blank') |
classic |
placement |
nein |
string |
|
port |
ja |
int |
|
response_condition |
nein |
string |
'' |
tls_ca_cert |
nein |
string |
|
tls_hostname |
nein |
string |
|
token |
nein |
string |
|
use_tls |
nein |
int |
0 |
Einstellungen
Fastly-Dokumentation
Feld |
Erforderlich |
Typ |
Standard |
general.default_ttl |
nein |
integer |
3600 |
Beispiele
Verwendung des fastly_service-Moduls in einem Playbook
---
- 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
Entwicklung
Tests ausführen
FASTLY_API_KEY=some_secret python -m unittest discover tests
VCR-Kassetten aktualisieren
VCR.py wird in den Tests verwendet, um HTTP-Anfragen zu simulieren.
Um die Kassetten zu aktualisieren, löschen Sie einfach das Verzeichnis tests/fixtures/cassettes
und führen die Tests wie gewohnt aus. Sie müssen einen gültigen Fastly-API-Schlüssel verwenden, damit die Aufnahme funktioniert.