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"]
}
}
|