debian.pp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. ensure_packages([ 'apt-transport-https', 'ca-certificates' ])
  52. Package['apt-transport-https','ca-certificates'] -> Apt::Source['nginx']
  53. package { 'passenger':
  54. ensure => 'present',
  55. require => Exec['apt_update'],
  56. }
  57. if $package_name != 'nginx-extras' {
  58. warning('You must set $package_name to "nginx-extras" to enable Passenger')
  59. }
  60. }
  61. default: {
  62. fail("\$package_source must be 'nginx-stable', 'nginx-mainline' or 'passenger'. It was set to '${package_source}'")
  63. }
  64. }
  65. }
  66. }