marcusianlevine.airflow
Ansibleロール: airflow
airflowホストのインストールと設定を行います。マスターおよびワーカーノードの設定に利用できます。
要件
ホストに対してsudoアクセスが必要です。以下のようにしてrootとして実行してください。
- name: airflowマスターホストのプロビジョニング
hosts: airflow_hosts
become: yes
roles:
- marcusianlevine.airflow
ロール変数
基本的なairflowの設定変数:
# airflowを起動するユーザー
airflow_user: airflow
# airflowを起動するグループ
airflow_group: "{{ airflow_user }}"
# インストールするairflowのバージョン
airflow_version: 1.8.1
# airflowをインストールするディレクトリ
airflow_install_directory: /usr/share/airflow
# pip installでairflow用にインストールする追加パッケージ
airflow_extra_packages:
- celery
- alldbs
# ホストで起動されるサービス
airflow_services:
- webserver
- scheduler
- worker
特定のデプロイメントパターンをサポートするための追加変数:
# 設定するプロセスマネージャの有無と種類を決定
use_systemd: yes
use_supervisor: no
# airflowを仮想環境にインストールすることをサポート
# NOTE: ansible-container用に必要
virtualenv_path: undefined
airflow.cfg
主なairflowの設定はyamlオブジェクトで行われます。これはデフォルトの設定default_airflow
がairflow
オブジェクト内のオーバーライドとマージされるシンプルなものです。すべてのオブジェクトキーは適切なセクションのairflow.cfg
にテンプレート化されます。すべての値はデフォルトの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
依存関係
なし
例のプレイブック
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"
ライセンス (MIT)
著作権 (c) 2017 CreditCards.com
このソフトウェアと関連する文書ファイル(「ソフトウェア」)のコピーを取得したすべての人に対し、制限なしにソフトウェアを扱う権利を、無償で与えます。これには、使用、コピー、変更、マージ、公開、配布、サブライセンス、販売などの権利が含まれます。また、このソフトウェアを提供された人がこれを行うことを許可します。ただし、以下の条件に従います。
上記の著作権通知およびこの許可通知は、ソフトウェアのすべてのコピーまたは重要な部分に含めなければなりません。
本ソフトウェアは「現状のまま」提供されており、明示的または黙示的な保証はありません。商品性、特定目的への適合性、権利侵害の保証を含みますが、これに限りません。著者または著作権者は、契約、不法行為、その他の理由によるクレーム、損害、その他の責任について、一切の責任を負わないものとします。ソフトウェアまたはその使用またはその他の取引に起因または関連するいかなる場合でも、そうです。