airflow
Airflow is a system to programmatically author, schedule and monitor data pipelines.
Version information
released Jan 25th 2016
This version is compatible with:
- Puppet >=3.8.2 < 4.0.0
Start using this module
Add this module to your Puppetfile:
mod 'similarweb-airflow', '0.1.2'
Learn more about managing modules with a PuppetfileDocumentation
similarweb/airflow — version 0.1.2 Jan 25th 2016
Airflow
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with airflow
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Development - Guide for contributing to the module
Overview
This module manages airflow by Airbnb.
Module Description
The airflow module sets up and configures airflow.
This module has been tested against airflow versions: 1.5.2, 1.6.2
Setup
Limitations
This module does not initialize the airflow database schema - you can do so by executing:
airflow initdb
More info here.
The module has been tested on CentOS 7
The module manages the following
- Airflow package.
- Airflow configuration file.
- Airflow services.
- Airflow templates.
Important Note
- This module does not install: MySQL, PostgreSQL, RabbitMQ or Redis - You have to use other modules for them. We use puppetlabs/mysql, puppetlabs/rabbitmq and garethr/erlang.
Please refer to airflow installation before using this module.
Setup Requirements
airflow module depends on the following puppet modules:
- puppetlabs-stdlib >= 1.0.0
- stankevich-python >= 1.9.8
- camptocamp-systemd >= 0.2.2
Beginning with airflow
Install this module via any of these approaches:
- librarian-puppet
- git-submodule
puppet module install similarweb-airflow
Usage
Main class
Install airflow 1.6.2 to /usr/local/airflow
class { 'airflow':
version => '1.6.2',
home_folder => '/usr/local/airflow'
}
Install airflow, the work scheduler and the celery based worker
class { 'airflow': } ->
class { 'airflow::service::scheduler:' }
class { 'airflow::service::worker:' }
Hiera Support
- Example: Defining ldap authentication and mesos settings in hiera.
airflow::ldap_settings:
ldap_url: ldap:://<your.ldap.server>:<port>
user_filter: objectClass=*
user_name_attr: uid
bind_user: cn=Manager,dc=example,dc=com
bind_password: insecure
basedn: dc=example,dc=com
airflow::mesos_settings:
master: localhost:5050
framework_name: Airflow
task_cpu: 1
task_memory: 256
checkpoint: false
failover_timeout: 604800
authenticate: false
default_principal: admin
default_secret: admin
Reference
Classes
Public classes
airflow
- Installs and configures airflow.airflow::service::worker
- Handles airflow's worker service.airflow::service::scheduler
- Handles airflow's scheduler service.airflow::service::webserver
- Handles airflow's webserver service.airflow::service::flower
- Handles airflow's flower service.
Private classes
airflow::install
- Installs airflow python package.airflow::config
- Configures airflow.
Contributing
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Commit your changes.
- Submit a Pull Request using Github
Dependencies
- puppetlabs-stdlib (>= 4.9.0)
- stankevich-python (>= 1.9.8)
- camptocamp-systemd (>= 0.2.2)
Copyright 2016 SimilarWeb. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY SimilarWeb ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SimilarWeb OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of SimilarWeb.