debian.pp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # Class: nginx::package::debian
  2. #
  3. # This module manages NGINX package installation on debian based systems
  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::debian(
  17. $manage_repo = true,
  18. $package_name = 'nginx',
  19. $package_source = 'nginx',
  20. $package_ensure = 'present'
  21. ) {
  22. $distro = downcase($::operatingsystem)
  23. package { 'nginx':
  24. ensure => $package_ensure,
  25. name => $package_name,
  26. }
  27. if $manage_repo {
  28. include '::apt'
  29. Exec['apt_update'] -> Package['nginx']
  30. case $package_source {
  31. 'nginx', 'nginx-stable': {
  32. apt::source { 'nginx':
  33. location => "http://nginx.org/packages/${distro}",
  34. repos => 'nginx',
  35. key => '573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62',
  36. }
  37. }
  38. 'nginx-mainline': {
  39. apt::source { 'nginx':
  40. location => "http://nginx.org/packages/mainline/${distro}",
  41. repos => 'nginx',
  42. key => '573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62',
  43. }
  44. }
  45. 'passenger': {
  46. apt::source { 'nginx':
  47. location => 'https://oss-binaries.phusionpassenger.com/apt/passenger',
  48. repos => 'main',
  49. key => '16378A33A6EF16762922526E561F9B9CAC40B2F7',
  50. }
  51. package { ['apt-transport-https', 'ca-certificates']:
  52. ensure => 'present',
  53. before => Apt::Source['nginx'],
  54. }
  55. package { 'passenger':
  56. ensure => 'present',
  57. require => Exec['apt_update'],
  58. }
  59. if $package_name != 'nginx-extras' {
  60. warning('You must set $package_name to "nginx-extras" to enable Passenger')
  61. }
  62. }
  63. default: {
  64. fail("\$package_source must be 'nginx-stable', 'nginx-mainline' or 'passenger'. It was set to '${package_source}'")
  65. }
  66. }
  67. }
  68. }