Puppet Class: airflow::config

Inherits:
airflow
Defined in:
manifests/config.pp

Overview

Class: airflow::config

Description: Manages the following resources:user,group,directories tree,

AIRFLOW_HOME environment variable and airflow.cfg file.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'manifests/config.pp', line 5

class airflow::config inherits airflow {
  # Create user and group
  group { $airflow::group:
    ensure => 'present',
    name   => $airflow::group,
    gid    => $airflow::gid,
  } ->
  user { $airflow::user:
    ensure     => 'present',
    shell      => $airflow::shell,
    managehome => true,
    uid        => $airflow::uid,
    gid        => $airflow::group
  }
  # Create airflow base home folders
  file { $airflow::home_folder:
    ensure => directory,
    owner   => $airflow::user,
    group   => $airflow::group,
    mode    => $airflow::folders_mode,
    require => Python::Pip["$airflow::package_name"],
    recurse => true
  }
  # Create airflow folders
  $airflow_folders = [ 
                    $airflow::log_folder,$airflow::run_folder,      
                    $airflow::dags_folder,$airflow::plugins_folder
                     ]
  file { $airflow_folders:
    ensure  => directory,
    owner   => "${airflow::user}",
    group   => "${airflow::group}",
    mode    => $airflow::folders_mode,
    require => File["$airflow::home_folder"]
  }
  # Set the AIRFLOW_HOME environment variable on the server
  file { "${airflow::user_home_folder}/.bash_profile":
    content => inline_template("AIRFLOW_HOME=${airflow::home_folder}")
  }
  # Setup airflow.cfg configuration file
  file { "${airflow::home_folder}/airflow.cfg":
    ensure   => 'file',
    content  => template("${module_name}/airflow.cfg.erb"),
    mode     => '0755',
    require  =>  Python::Pip["$airflow::package_name"]
  }
}