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