ansible-fastly

Module Ansible pour configurer des services dans Fastly
Installation
$ ansible-galaxy install Jimdo.fastly
Documentation
Options du module
| Nom |
Requis |
Description |
Par défaut |
| name |
vrai |
Le nom unique du service à créer |
|
| fastly_api_key |
faux |
Clé API Fastly. Si elle n'est pas définie, la valeur de la variable d'environnement FASTLY_API_KEY est utilisée. |
|
| activate_new_version |
faux |
Configure si les nouvelles versions créées doivent être activées automatiquement |
vrai |
| domains |
vrai |
Liste des noms de domaine à servir comme points d'entrée pour votre service |
|
| backends |
vrai |
Liste des backends pour gérer les demandes de vos domaines |
|
| cache_settings |
faux |
Liste des paramètres de cache |
|
| conditions |
faux |
Liste des conditions |
|
| directors |
faux |
Liste des directeurs |
|
| gzips |
faux |
Liste des configurations gzip |
|
| headers |
faux |
Liste des en-têtes à manipuler pour chaque demande |
|
| healthchecks |
faux |
Liste des vérifications de santé pour l'usage des backends |
|
| request_settings |
faux |
Liste des paramètres de demande |
|
| response_objects |
faux |
Liste des objets de réponse |
|
| settings |
faux |
Objet de paramètres |
|
| s3s |
faux |
Liste des journaux S3 |
|
| syslogs |
faux |
Liste des journaux Syslog |
|
| vcl_snippets |
faux |
Liste des extraits VCL |
|
Backend
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| port |
faux |
entier |
80 |
| address |
vrai |
chaîne |
|
| ssl_hostname |
faux |
chaîne |
|
| ssl_ca_cert |
faux |
chaîne |
|
| ssl_cert_hostname |
faux |
chaîne |
|
| shield |
faux |
chaîne |
|
| healthcheck |
faux |
chaîne |
|
| weight |
faux |
entier |
100 |
| connect_timeout |
faux |
entier |
1000 |
| first_byte_timeout |
faux |
entier |
15000 |
| between_bytes_timeout |
faux |
entier |
10000 |
| error_threshold |
faux |
entier |
0 |
| max_conn |
faux |
entier |
200 |
Paramètres de cache
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| action |
faux |
enum ('cache', 'pass', 'restart') |
|
| cache_condition |
faux |
chaîne |
|
| stale_ttl |
faux |
entier |
0 |
Condition
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| comment |
faux |
chaîne |
|
| priority |
faux |
entier |
0 |
| statement |
vrai |
chaîne |
|
| type |
vrai |
enum ('REQUEST', 'PREFETCH', 'CACHE', 'RESPONSE') |
|
Directeur
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| backends |
faux |
tableau de chaînes |
|
| capacity |
faux |
entier |
100 |
| comment |
faux |
chaîne |
'' |
| quorum |
faux |
entier |
75 |
| shield |
faux |
chaîne |
|
| type |
faux |
entier (un des [1,2,3,4]) |
1 |
| retries |
faux |
entier |
5 |
En-tête
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| action |
faux |
enum ('set', 'append', 'delete', 'regex', 'regex_repeat') |
set |
| dst |
vrai |
chaîne |
|
| ignore_if_set |
faux |
entier (un des [0,1]) |
0 |
| priority |
faux |
entier |
100 |
| regex |
faux |
chaîne |
|
| request_condition |
faux |
chaîne |
|
| response_condition |
faux |
chaîne |
|
| cache_condition |
faux |
chaîne |
|
| src |
vrai |
chaîne |
|
| substitution |
faux |
chaîne |
|
| type |
vrai |
enum ('request', 'fetch', 'cache', 'response') |
|
Vérification de santé
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| check_interval |
faux |
entier |
|
| comment |
faux |
chaîne |
'' |
| expected_response |
faux |
entier |
200 |
| host |
vrai |
chaîne |
|
| http_version |
faux |
chaîne |
1.1 |
| initial |
faux |
entier |
|
| method |
faux |
chaîne |
HEAD |
| path |
faux |
chaîne |
'/' |
| threshold |
faux |
entier |
|
| timeout |
faux |
entier |
|
| window |
faux |
entier |
|
Paramètres de demande
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| request_condition |
faux |
chaîne |
|
| action |
faux |
enum ('lookup', 'pass') |
|
| xff |
faux |
enum ('clear', 'leave', 'append', 'append_all', 'overwrite') |
|
| hash_keys |
faux |
chaîne |
|
| default_host |
faux |
chaîne |
|
| max_stale_age |
faux |
entier |
0 |
| force_miss |
faux |
entier |
0 |
| force_ssl |
faux |
entier |
0 |
| timer_support |
faux |
entier |
0 |
| geo_headers |
faux |
entier |
0 |
| bypass_busy_wait |
faux |
entier |
0 |
Objet de réponse
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| request_condition |
faux |
chaîne |
|
| response |
faux |
chaîne |
Ok |
| status |
faux |
entier |
200 |
| content |
faux |
chaîne |
|
| content_type |
faux |
chaîne |
|
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| dynamic |
faux |
entier |
0 |
| type |
faux |
chaîne |
"init" |
| content |
vrai |
chaîne |
|
| priority |
faux |
entier |
100 |
Journalisation S3
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| access_key |
faux |
chaîne |
|
| bucket_name |
faux |
chaîne |
|
| domain |
faux |
chaîne |
|
| format |
faux |
chaîne |
%{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
| format_version |
faux |
entier |
2 |
| gzip_level |
faux |
entier |
0 |
| message_type |
faux |
enum ('classic', 'loggly', 'logplex', 'blank') |
classic |
| path |
faux |
chaîne |
/ |
| period |
faux |
entier |
3600 |
| placement |
faux |
chaîne |
|
| redundancy |
faux |
chaîne |
|
| response_condition |
faux |
chaîne |
'' |
| secret_key |
faux |
chaîne |
|
| server_side_encryption_kms_key_id |
faux |
chaîne |
|
| server_side_encryption |
faux |
chaîne |
|
| timestamp_format |
faux |
chaîne |
%Y-%m-%dT%H |
Journalisation Syslog
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| name |
vrai |
chaîne |
|
| address |
vrai |
chaîne |
|
| format |
faux |
chaîne |
%{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b |
| format_version |
faux |
entier |
2 |
| hostname |
faux |
chaîne |
|
| ipv4 |
faux |
chaîne |
|
| message_type |
faux |
enum ('classic', 'loggly', 'logplex', 'blank') |
classic |
| placement |
faux |
chaîne |
|
| port |
vrai |
int |
|
| response_condition |
faux |
chaîne |
'' |
| tls_ca_cert |
faux |
chaîne |
|
| tls_hostname |
faux |
chaîne |
|
| token |
faux |
chaîne |
|
| use_tls |
faux |
int |
0 |
Paramètres
Documentation Fastly
| Champ |
Requis |
Type |
Par défaut |
| general.default_ttl |
faux |
entier |
3600 |
Exemples
Utilisation du module fastly_service dans un Playbook
---
- hosts: localhost
connection: local
gather_facts: False
roles:
- Jimdo.fastly
tasks:
- fastly_service:
name: Service de redirection
domains:
- name: test1.example.net
comment: domaine de redirection
backends:
- name: localhost
port: 80
address: 127.0.0.1
headers:
- name: Définir l'en-tête Location
dst: http.Location
type: response
action: set
src: http://test3.example.net req.url.path
ignore_if_set: 0
priority: 10
response_objects:
- name: Définir le code d'état 301
status: 301
$ ansible-playbook -i localhost, fastly.yml
Développement
Exécution des tests
FASTLY_API_KEY=some_secret python -m unittest discover tests
Mise à jour des cassettes VCR
VCR.py est utilisé dans les tests pour simuler les requêtes HTTP.
Pour mettre à jour les cassettes, il suffit de supprimer le répertoire tests/fixtures/cassettes et d'exécuter les tests comme d'habitude. Vous devez utiliser une clé API Fastly valide pour l'enregistrement.