marcusianlevine.airflow
Rol de Ansible: airflow
Instala y configura un host de airflow. Se puede usar para configurar nodos maestros y trabajadores.
Requisitos
Necesitarás acceso sudo al host que se está provisionando, usa lo siguiente para ejecutarlo como root.
- name: Provisionar hosts maestros de airflow
hosts: airflow_hosts
become: yes
roles:
- marcusianlevine.airflow
Variables del Rol
Variables de configuración base de airflow:
# Usuario bajo el cual se debe iniciar airflow
airflow_user: airflow
# Grupo bajo el cual se debe iniciar airflow
airflow_user: "{{ airflow_user }}"
# Versión de airflow que se instalará
airflow_version: 1.8.1
# Directorio donde se instalará airflow
airflow_install_directory: /usr/share/airflow
# Paquetes adicionales que se instalarán para airflow a través de pip install
airflow_extra_packages:
- celery
- alldbs
# Servicios que se iniciarán en el host
airflow_services:
- webserver
- scheduler
- worker
Variables extra para apoyar patrones de despliegue específicos:
# determinar si se debe configurar y qué gestor de procesos usar
use_systemd: yes
use_supervisor: no
# soporte para instalar airflow en un entorno virtual
# NOTA: requerido para usar con ansible-container
virtualenv_path: indefinido
airflow.cfg
La configuración principal de airflow se realiza con objetos yaml, que simplemente fusionan la configuración predeterminada default_airflow
con cualquier anulación encontrada en el objeto airflow
. Todas las claves de los objetos se templatan en el airflow.cfg
bajo la sección apropiada. Todos los valores son los valores predeterminados de 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
Dependencias
Ninguna
Ejemplo 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"
Licencia (MIT)
Copyright (c) 2017 CreditCards.com
Se concede por la presente, sin cargo, a cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el "Software"), para tratar en el Software sin restricción, incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y permitir a personas a quienes se les suministra el Software hacerlo, sujeto a las siguientes condiciones:
Se deberá incluir el aviso de copyright anterior y este aviso de permiso en todas las copias o porciones sustanciales del Software.
EL SOFTWARE SE PROVEE "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITÁNDOSE A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, O EN CONEXIÓN CON EL SOFTWARE O EL USO O CUALQUIER OTRA TRANSACCIÓN EN EL SOFTWARE.
ansible-galaxy install marcusianlevine.airflow