fastly

ansible-fastly

Статус сборки Ansible Galaxy

Модуль Ansible для настройки сервисов в Fastly

Установка

$ ansible-galaxy install Jimdo.fastly

Документация

Опции модуля

Название Обязательно Описание По умолчанию
name да Уникальное имя для создаваемого сервиса
fastly_api_key нет Ключ API Fastly. Если не указан, используется значение переменной окружения FASTLY_API_KEY.
activate_new_version нет Настройка автоматической активации вновь созданных версий true
domains да Список доменных имен, которые будут служить точками доступа для вашего сервиса
backends да Список бэкендов для обслуживания запросов от ваших доменов
cache_settings нет Список настроек кэша
conditions нет Список условий
directors нет Список директоров
gzips нет Список настроек gzip
headers нет Список заголовков для изменения для каждого запроса
healthchecks нет Список проверок работоспособности для бэкендов
request_settings нет Список настроек запросов
response_objects нет Список объектов ответов
settings нет Объект настроек
s3s нет Список логгеров S3
syslogs нет Список логгеров Syslog
vcl_snippets нет Список фрагментов VCL

Бэкенд

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
port нет целое число 80
address да строка
ssl_hostname нет строка
ssl_ca_cert нет строка
ssl_cert_hostname нет строка
shield нет строка
healthcheck нет строка
weight нет целое число 100
connect_timeout нет целое число 1000
first_byte_timeout нет целое число 15000
between_bytes_timeout нет целое число 10000
error_threshold нет целое число 0
max_conn нет целое число 200

Настройки кэша

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
action нет перечисление ('cache', 'pass', 'restart')
cache_condition нет строка
stale_ttl нет целое число 0

Условие

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
comment нет строка
priority нет целое число 0
statement да строка
type да перечисление ('REQUEST', 'PREFETCH', 'CACHE', 'RESPONSE')

Директор

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
backends нет массив строк
capacity нет целое число 100
comment нет строка ''
quorum нет целое число 75
shield нет строка
type нет целое число (одно из [1,2,3,4]) 1
retries нет целое число 5

Заголовок

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
action нет перечисление ('set', 'append', 'delete', 'regex', 'regex_repeat') set
dst да строка
ignore_if_set нет целое число (одно из [0,1]) 0
priority нет целое число 100
regex нет строка
request_condition нет строка
response_condition нет строка
cache_condition нет строка
src да строка
substitution нет строка
type да перечисление ('request', 'fetch', 'cache', 'response')

Проверка состояния

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
check_interval нет целое число
comment нет строка ''
expected_response нет целое число 200
host да строка
http_version нет строка 1.1
initial нет целое число
method нет строка HEAD
path нет строка '/'
threshold нет целое число
timeout нет целое число
window нет целое число

Настройка запроса

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
request_condition нет строка
action нет перечисление ('lookup', 'pass')
xff нет перечисление ('clear', 'leave', 'append', 'append_all', 'overwrite')
hash_keys нет строка
default_host нет строка
max_stale_age нет целое число 0
force_miss нет целое число 0
force_ssl нет целое число 0
timer_support нет целое число 0
geo_headers нет целое число 0
bypass_busy_wait нет целое число 0

Объект ответа

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
request_condition нет строка
response нет строка Ok
status нет целое число 200
content нет строка
content_type нет строка

Фрагменты VCL

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
dynamic нет целое число 0
type нет строка "init"
content да строка
priority нет целое число 100

Логирование S3

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
access_key нет строка
bucket_name нет строка
domain нет строка
format нет строка %{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b
format_version нет целое число 2
gzip_level нет целое число 0
message_type нет перечисление ('classic', 'loggly', 'logplex', 'blank') classic
path нет строка /
period нет целое число 3600
placement нет строка
redundancy нет строка
response_condition нет строка ''
secret_key нет строка
server_side_encryption_kms_key_id нет строка
server_side_encryption нет строка
timestamp_format нет строка %Y-%m-%dT%H

Логирование Syslog

Документация Fastly

Поле Обязательно Тип По умолчанию
name да строка
address да строка
format нет строка %{%Y-%m-%dT%H:%M:%S}t %h "%r" %>s %b
format_version нет целое число 2
hostname нет строка
ipv4 нет строка
message_type нет перечисление ('classic', 'loggly', 'logplex', 'blank') classic
placement нет строка
port да целое число
response_condition нет строка ''
tls_ca_cert нет строка
tls_hostname нет строка
token нет строка
use_tls нет целое число 0

Настройки

Документация Fastly

Поле Обязательно Тип По умолчанию
general.default_ttl нет целое число 3600

Примеры

Использование модуля fastly_service в плейбуке

---
- 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

VCR.py используется в тестах для имитации HTTP-запросов.

Чтобы обновить кассеты, просто удалите директорию tests/fixtures/cassettes и запустите тесты как обычно. Вам необходимо использовать действительный ключ API Fastly для корректной записи.

О проекте

Ansible module for Fastly

Установить
ansible-galaxy install Jimdo/ansible-fastly
Лицензия
mit
Загрузки
56927
Владелец