params.pp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. class apt::params {
  2. if $::osfamily != 'Debian' {
  3. fail('This module only works on Debian or derivatives like Ubuntu')
  4. }
  5. # prior to puppet 3.5.0, defined couldn't test if a variable was defined
  6. # strict variables wasn't added until 3.5.0, so this should be fine.
  7. if ! $::settings::strict_variables {
  8. $xfacts = {
  9. 'lsbdistcodename' => $::lsbdistcodename,
  10. 'lsbdistrelease' => $::lsbdistrelease,
  11. 'lsbmajdistrelease' => $::lsbmajdistrelease,
  12. 'lsbdistdescription' => $::lsbdistdescription,
  13. 'lsbminordistrelease' => $::lsbminordistrelease,
  14. 'lsbdistid' => $::lsbdistid,
  15. }
  16. } else {
  17. # Strict variables facts lookup compatibility
  18. $xfacts = {
  19. 'lsbdistcodename' => defined('$lsbdistcodename') ? {
  20. true => $::lsbdistcodename,
  21. default => undef,
  22. },
  23. 'lsbdistrelease' => defined('$lsbdistrelease') ? {
  24. true => $::lsbdistrelease,
  25. default => undef,
  26. },
  27. 'lsbmajdistrelease' => defined('$lsbmajdistrelease') ? {
  28. true => $::lsbmajdistrelease,
  29. default => undef,
  30. },
  31. 'lsbdistdescription' => defined('$lsbdistdescription') ? {
  32. true => $::lsbdistdescription,
  33. default => undef,
  34. },
  35. 'lsbminordistrelease' => defined('$lsbminordistrelease') ? {
  36. true => $::lsbminordistrelease,
  37. default => undef,
  38. },
  39. 'lsbdistid' => defined('$lsbdistid') ? {
  40. true => $::lsbdistid,
  41. default => undef,
  42. },
  43. }
  44. }
  45. $root = '/etc/apt'
  46. $provider = '/usr/bin/apt-get'
  47. $sources_list = "${root}/sources.list"
  48. $sources_list_d = "${root}/sources.list.d"
  49. $conf_d = "${root}/apt.conf.d"
  50. $preferences = "${root}/preferences"
  51. $preferences_d = "${root}/preferences.d"
  52. $keyserver = 'keyserver.ubuntu.com'
  53. $config_files = {
  54. 'conf' => {
  55. 'path' => $conf_d,
  56. 'ext' => '',
  57. },
  58. 'pref' => {
  59. 'path' => $preferences_d,
  60. 'ext' => '.pref',
  61. },
  62. 'list' => {
  63. 'path' => $sources_list_d,
  64. 'ext' => '.list',
  65. }
  66. }
  67. $update_defaults = {
  68. 'frequency' => 'reluctantly',
  69. 'timeout' => undef,
  70. 'tries' => undef,
  71. }
  72. $proxy_defaults = {
  73. 'ensure' => undef,
  74. 'host' => undef,
  75. 'port' => 8080,
  76. 'https' => false,
  77. }
  78. $purge_defaults = {
  79. 'sources.list' => false,
  80. 'sources.list.d' => false,
  81. 'preferences' => false,
  82. 'preferences.d' => false,
  83. }
  84. $source_key_defaults = {
  85. 'server' => $keyserver,
  86. 'options' => undef,
  87. 'content' => undef,
  88. 'source' => undef,
  89. }
  90. $include_defaults = {
  91. 'deb' => true,
  92. 'src' => false,
  93. }
  94. case $xfacts['lsbdistid'] {
  95. 'debian': {
  96. case $xfacts['lsbdistcodename'] {
  97. 'squeeze': {
  98. $backports = {
  99. 'location' => 'http://httpredir.debian.org/debian-backports',
  100. 'key' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
  101. 'repos' => 'main contrib non-free',
  102. }
  103. }
  104. default: {
  105. $backports = {
  106. 'location' => 'http://httpredir.debian.org/debian',
  107. 'key' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
  108. 'repos' => 'main contrib non-free',
  109. }
  110. }
  111. }
  112. $ppa_options = undef
  113. $ppa_package = undef
  114. }
  115. 'ubuntu': {
  116. $backports = {
  117. 'location' => 'http://archive.ubuntu.com/ubuntu',
  118. 'key' => '630239CC130E1A7FD81A27B140976EAF437D05B5',
  119. 'repos' => 'main universe multiverse restricted',
  120. }
  121. if $xfacts['lsbdistcodename'] == 'lucid' {
  122. $ppa_options = undef
  123. $ppa_package = 'python-software-properties'
  124. } elsif $xfacts['lsbdistcodename'] == 'precise' {
  125. $ppa_options = '-y'
  126. $ppa_package = 'python-software-properties'
  127. } elsif versioncmp($xfacts['lsbdistrelease'], '14.04') >= 0 {
  128. $ppa_options = '-y'
  129. $ppa_package = 'software-properties-common'
  130. } else {
  131. $ppa_options = '-y'
  132. $ppa_package = 'python-software-properties'
  133. }
  134. }
  135. undef: {
  136. fail('Unable to determine lsbdistid, please install lsb-release first')
  137. }
  138. default: {
  139. $ppa_options = undef
  140. $ppa_package = undef
  141. $backports = undef
  142. }
  143. }
  144. }