marcusianlevine.airflow
Rôle Ansible : airflow
Installer et configurer un hôte airflow. Peut être utilisé pour configurer des nœuds maîtres et travailleurs.
Exigences
Vous aurez besoin d'un accès sudo sur l'hôte à provisionner, utilisez ce qui suit pour exécuter en tant que root.
- name: Provisionner les hôtes maître airflow
hosts: airflow_hosts
become: yes
roles:
- marcusianlevine.airflow
Variables de rôle
Variables de configuration de base d'airflow :
# Utilisateur sous lequel airflow doit être démarré
airflow_user: airflow
# Groupe sous lequel airflow doit être démarré
airflow_user: "{{ airflow_user }}"
# Version d'airflow à installer
airflow_version: 1.8.1
# Dossier dans lequel airflow sera installé
airflow_install_directory: /usr/share/airflow
# Paquets supplémentaires qui seront installés pour airflow via pip install
airflow_extra_packages:
- celery
- alldbs
# Services qui seront démarrés sur l'hôte
airflow_services:
- webserver
- scheduler
- worker
Variables supplémentaires pour soutenir des modèles de déploiement spécifiques :
# déterminer si et quel gestionnaire de processus configurer
use_systemd: yes
use_supervisor: no
# support pour l'installation d'airflow dans un environnement virtuel
# NOTE : requis pour une utilisation avec ansible-container
virtualenv_path: undefined
airflow.cfg
La configuration principale d'airflow se fait avec des objets yaml, qui est simplement la configuration par défaut default_airflow
fusionnée avec les remplacements trouvés dans l'objet airflow
. Toutes les clés des objets seront insérées dans le airflow.cfg
sous la section appropriée. Toutes les valeurs sont les valeurs par défaut d'airflow.
airflow:
core:
dags_folder: "/usr/share/airflow_dags"
base_log_folder: "/var/log/airflow"
webserver:
base_url: "{{ airflow_base_url }}"
scheduler:
statsd_on: True
Dépendances
Aucune
Exemple de Playbook
play.yml
- hosts: airflow-masters
become: yes
roles:
- creditcardscom.airflow
vars/main.yml
airflow_user: airflow_user
airflow_version: 1.8.0
airflow_services:
- webserver
- scheduler
airflow:
core:
dags_folder: "/home/{{ airflow_user }}/dags"
Licence (MIT)
Copyright (c) 2017 CreditCards.com
La permission est par la présente accordée, sans frais, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter dans le Logiciel sans restriction, y compris sans limitation les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
Le mention de copyright ci-dessus et cet avis de permission doivent être inclus dans toutes les copies ou portions substantielles du Logiciel.
LE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER AUX GARANTIES DE COMMERCIALITÉ, D'ADÉQUATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU DÉTENTEURS DE DROITS D'AUTEUR NE SAURAIENT ÊTRE TENUS RESPONSABLES DE TOUTE REVENDICATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, UN DÉLIT OU AUTRE, RESSORTISSANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION D'AUTRES TRANSACTIONS DANS LE LOGICIEL.
ansible-galaxy install marcusianlevine.airflow