config.pp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. # == Class icingaweb2::config
  2. #
  3. class icingaweb2::config (
  4. $config_dir = $::icingaweb2::config_dir,
  5. $config_dir_purge = $::icingaweb2::config_dir_purge,
  6. $web_root = $::icingaweb2::web_root,
  7. ) {
  8. @user { 'icingaweb2':
  9. ensure => present,
  10. home => $::icingaweb2::web_root,
  11. managehome => true,
  12. }
  13. @group { 'icingaweb2':
  14. ensure => present,
  15. system => true,
  16. }
  17. realize(User['icingaweb2'])
  18. realize(Group['icingaweb2'])
  19. File {
  20. require => Class['::icingaweb2::install'],
  21. owner => $::icingaweb2::config_user,
  22. group => $::icingaweb2::config_group,
  23. mode => $::icingaweb2::config_file_mode,
  24. }
  25. file {
  26. $::icingaweb2::config_dir:
  27. ensure => directory,
  28. mode => $::icingaweb2::config_dir_mode,
  29. purge => $::icingaweb2::config_dir_purge,
  30. recurse => $::icingaweb2::config_dir_recurse;
  31. "${::icingaweb2::config_dir}/enabledModules":
  32. ensure => directory,
  33. mode => $::icingaweb2::config_dir_mode;
  34. "${::icingaweb2::config_dir}/modules":
  35. ensure => directory,
  36. mode => $::icingaweb2::config_dir_mode;
  37. "${::icingaweb2::config_dir}/authentication.ini":
  38. ensure => file;
  39. "${::icingaweb2::config_dir}/config.ini":
  40. ensure => file;
  41. "${::icingaweb2::config_dir}/resources.ini":
  42. ensure => file;
  43. "${::icingaweb2::config_dir}/roles.ini":
  44. ensure => file;
  45. $::icingaweb2::web_root:
  46. ensure => directory,
  47. mode => $::icingaweb2::config_dir_mode;
  48. "${::icingaweb2::web_root}/modules":
  49. ensure => directory,
  50. mode => $::icingaweb2::config_dir_mode;
  51. }
  52. # Configure authentication.ini settings
  53. case $::icingaweb2::auth_backend {
  54. 'db': {
  55. icingaweb2::config::authentication_database { 'Local Database Authentication':
  56. auth_section => 'icingaweb2',
  57. auth_resource => $::icingaweb2::auth_resource,
  58. }
  59. }
  60. 'external': {
  61. icingaweb2::config::authentication_external { 'External Authentication':
  62. auth_section => 'icingaweb2',
  63. }
  64. }
  65. default: {}
  66. }
  67. # Configure config.ini settings
  68. Ini_Setting {
  69. ensure => present,
  70. require => File["${::icingaweb2::config_dir}/config.ini"],
  71. path => "${::icingaweb2::config_dir}/config.ini",
  72. }
  73. # Logging Configuration
  74. ini_setting { 'icingaweb2 config logging method':
  75. section => 'logging',
  76. setting => 'log',
  77. value => "\"${::icingaweb2::log_method}\"",
  78. }
  79. ini_setting { 'icingaweb2 config logging level':
  80. section => 'logging',
  81. setting => 'level',
  82. value => "\"${::icingaweb2::log_level}\"",
  83. }
  84. ini_setting { 'icingaweb2 config logging application':
  85. section => 'logging',
  86. setting => 'application',
  87. value => "\"${::icingaweb2::log_application}\"",
  88. }
  89. # Preferences Configuration
  90. ini_setting { 'icingaweb2 config preferences store':
  91. section => 'preferences',
  92. setting => 'store',
  93. value => "\"${::icingaweb2::log_store}\"",
  94. }
  95. ini_setting { 'icingaweb2 config preferences resource':
  96. section => 'preferences',
  97. setting => 'resource',
  98. value => "\"${::icingaweb2::log_resource}\"",
  99. }
  100. # Configure resources.ini
  101. icingaweb2::config::resource_database { 'icingaweb_db':
  102. resource_db => $::icingaweb2::web_db,
  103. resource_host => $::icingaweb2::web_db_host,
  104. resource_port => $::icingaweb2::web_db_port,
  105. resource_dbname => $::icingaweb2::web_db_name,
  106. resource_username => $::icingaweb2::web_db_user,
  107. resource_password => $::icingaweb2::web_db_pass,
  108. }
  109. icingaweb2::config::resource_database { 'icinga_ido':
  110. resource_db => $::icingaweb2::ido_db,
  111. resource_host => $::icingaweb2::ido_db_host,
  112. resource_port => $::icingaweb2::ido_db_port,
  113. resource_dbname => $::icingaweb2::ido_db_name,
  114. resource_username => $::icingaweb2::ido_db_user,
  115. resource_password => $::icingaweb2::ido_db_pass,
  116. }
  117. # Configure roles.ini
  118. icingaweb2::config::roles { 'Admins':
  119. role_users => $::icingaweb2::admin_users,
  120. role_permissions => $::icingaweb2::admin_permissions,
  121. }
  122. if $::icingaweb2::manage_apache_vhost {
  123. ::apache::custom_config { 'icingaweb2':
  124. content => template($::icingaweb2::template_apache),
  125. }
  126. }
  127. }