Ansible Role: airflow
安裝airflow
介紹
Airflow 被 Airbnb 內(nèi)部用來創(chuàng)建、監(jiān)控和調(diào)整數(shù)據(jù)管道。任何工作流都可以在這個使用 Python 編寫的平臺上運行(目前加入 Apache 基金會孵化器)。
Airflow 允許工作流開發(fā)人員輕松創(chuàng)建、維護(hù)和周期性地調(diào)度運行工作流(即有向無環(huán)圖或成為DAGs)的工具。在Airbnb中,這些工作流包括了如數(shù)據(jù)存儲、增長分析、Email發(fā)送、A/B測試等等這些跨越多部門的用例。這個平臺擁有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,并且提供了鉤子使得系統(tǒng)擁有很好地擴(kuò)展性。除了一個命令行界面,該工具還提供了一個 基于Web的用戶界面讓您可以可視化管道的依賴關(guān)系、監(jiān)控進(jìn)度、觸發(fā)任務(wù)等。
github地址:https://github.com/apache/incubator-airflow
官方文檔地址:https://airflow.incubator.apache.org/
要求
此角色僅在RHEL及其衍生產(chǎn)品上運行。
測試環(huán)境
ansible 2.2.1.0
os Centos 6.7 X64
角色變量
airflow_home: "/airflow"
airflow_tmpdir: "/tmp/airflow"
airflow_bin: "/usr/local/bin/airflow"
airflow_user: "airflow"
airflow_extra: [hive,hdfs,jdbc,mysql,async,postgres,rabbitmq,qds,password,ldap]
airflow_db: "airflow"
mysql_host: ""
mysql_port: ""
mysql_user: ""
mysql_password: ""
create_db: true
change_utctime: true
airflow_port: 8080
env: "HOME=/home/{{ airflow_user }},AIRFLOW_HOME={{ airflow_home }},TMPDIR={{ airflow_tmpdir }}"
ansible_python_interpreter: /usr/bin/python2.6
依賴
python2.7
supervisor
github地址
https://github.com/kuailemy123/Ansible-roles/tree/master/airflow
Example Playbook
- hosts: node1
vars:
airflow_home: '/airflow'
mysql_host: 192.168.77.128
mysql_port: 3306
mysql_user: root
mysql_password: 123456
supervisor_name: airflow
airflow_port: 8081
supervisor_program:
- { name: 'webserver', command: '/usr/local/bin/airflow webserver', user: 'airflow' }
- { name: 'scheduler', command: '/usr/local/bin/airflow scheduler', user: 'airflow' }
roles:
- { role: python2.7 }
- { role: airflow }
- { role: supervisor }