package.pp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # Class: nginx::package
  2. #
  3. # This module manages NGINX package installation
  4. #
  5. # Parameters:
  6. #
  7. # There are no default parameters for this class.
  8. #
  9. # Actions:
  10. #
  11. # Requires:
  12. #
  13. # Sample Usage:
  14. #
  15. # This class file is not called directly
  16. class nginx::package(
  17. $package_name = 'nginx',
  18. $package_source = 'nginx',
  19. $package_ensure = 'present',
  20. $manage_repo = true,
  21. ) {
  22. anchor { 'nginx::package::begin': }
  23. anchor { 'nginx::package::end': }
  24. case $::osfamily {
  25. 'redhat': {
  26. class { 'nginx::package::redhat':
  27. manage_repo => $manage_repo,
  28. package_ensure => $package_ensure,
  29. package_name => $package_name,
  30. require => Anchor['nginx::package::begin'],
  31. before => Anchor['nginx::package::end'],
  32. }
  33. }
  34. 'debian': {
  35. class { 'nginx::package::debian':
  36. package_name => $package_name,
  37. package_source => $package_source,
  38. package_ensure => $package_ensure,
  39. manage_repo => $manage_repo,
  40. require => Anchor['nginx::package::begin'],
  41. before => Anchor['nginx::package::end'],
  42. }
  43. }
  44. 'suse': {
  45. class { 'nginx::package::suse':
  46. require => Anchor['nginx::package::begin'],
  47. before => Anchor['nginx::package::end'],
  48. }
  49. }
  50. 'archlinux': {
  51. class { 'nginx::package::archlinux':
  52. require => Anchor['nginx::package::begin'],
  53. before => Anchor['nginx::package::end'],
  54. }
  55. }
  56. 'Solaris': {
  57. class { 'nginx::package::solaris':
  58. package_name => $package_name,
  59. package_source => $package_source,
  60. package_ensure => $package_ensure,
  61. require => Anchor['nginx::package::begin'],
  62. before => Anchor['nginx::package::end'],
  63. }
  64. }
  65. default: {
  66. case $::operatingsystem {
  67. 'amazon': {
  68. # Amazon was added to osfamily RedHat in 1.7.2
  69. # https://github.com/puppetlabs/facter/commit/c12d3b6c557df695a7b2b009da099f6a93c7bd31#lib/facter/osfamily.rb
  70. warning("Module ${module_name} support for ${::operatingsystem} with facter < 1.7.2 is deprecated")
  71. warning("Please upgrade from facter ${::facterversion} to >= 1.7.2")
  72. class { 'nginx::package::redhat':
  73. require => Anchor['nginx::package::begin'],
  74. before => Anchor['nginx::package::end'],
  75. }
  76. }
  77. default: {
  78. fail("Module ${module_name} is not supported on ${::operatingsystem}")
  79. }
  80. }
  81. }
  82. }
  83. }