debian.pp 2.0 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 => 'ABF5BD827BD9BF62',
  36. key_source => 'http://nginx.org/keys/nginx_signing.key',
  37. }
  38. }
  39. 'nginx-mainline': {
  40. apt::source { 'nginx':
  41. location => "http://nginx.org/packages/mainline/${distro}",
  42. repos => 'nginx',
  43. key => 'ABF5BD827BD9BF62',
  44. key_source => 'http://nginx.org/keys/nginx_signing.key',
  45. }
  46. }
  47. 'passenger': {
  48. apt::source { 'nginx':
  49. location => 'https://oss-binaries.phusionpassenger.com/apt/passenger',
  50. repos => 'main',
  51. key => '561F9B9CAC40B2F7',
  52. key_source => 'https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key.txt',
  53. required_packages => 'apt-transport-https ca-certificates',
  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. }