services.pp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # == Class: nova::compute::libvirt::services
  2. #
  3. # Install and manage libvirt services.
  4. #
  5. # === Parameters:
  6. #
  7. # [*libvirt_service_name*]
  8. # (optional) libvirt service name.
  9. # Defaults to $::nova::params::libvirt_service_name
  10. #
  11. # [*virtlock_service_name*]
  12. # (optional) virtlock service name.
  13. # Defaults to $::nova::params::virtlock_service_name
  14. #
  15. # [*virtlog_service_name*]
  16. # (optional) virtlog service name.
  17. # Defaults to $::nova::params::virtlog_service_name
  18. #
  19. # [*libvirt_virt_type*]
  20. # (optional) Libvirt domain type. Options are: kvm, lxc, qemu, uml, xen
  21. # Defaults to 'kvm'
  22. #
  23. class nova::compute::libvirt::services (
  24. $libvirt_service_name = $::nova::params::libvirt_service_name,
  25. $virtlock_service_name = $::nova::params::virtlock_service_name,
  26. $virtlog_service_name = $::nova::params::virtlog_service_name,
  27. $libvirt_virt_type = 'kvm',
  28. ) inherits nova::params {
  29. include ::nova::deps
  30. include ::nova::params
  31. if $libvirt_service_name {
  32. # messagebus
  33. if($::osfamily == 'RedHat' and $::operatingsystem != 'Fedora') {
  34. service { 'messagebus':
  35. ensure => running,
  36. enable => true,
  37. name => $::nova::params::messagebus_service_name,
  38. provider => $::nova::params::special_service_provider,
  39. }
  40. Package['libvirt'] -> Service['messagebus'] -> Service['libvirt']
  41. }
  42. # libvirt-nwfilter
  43. if $::osfamily == 'RedHat' {
  44. package { 'libvirt-nwfilter':
  45. ensure => present,
  46. name => $::nova::params::libvirt_nwfilter_package_name,
  47. before => Service['libvirt'],
  48. tag => ['openstack', 'nova-support-package'],
  49. }
  50. case $libvirt_virt_type {
  51. 'qemu': {
  52. $libvirt_package_name_real = "${::nova::params::libvirt_daemon_package_prefix}kvm"
  53. }
  54. 'parallels': {
  55. $libvirt_package_name_real = $::nova::params::libvirt_package_name
  56. }
  57. default: {
  58. $libvirt_package_name_real = "${::nova::params::libvirt_daemon_package_prefix}${libvirt_virt_type}"
  59. }
  60. }
  61. } else {
  62. $libvirt_package_name_real = $::nova::params::libvirt_package_name
  63. }
  64. # libvirt
  65. package { 'libvirt':
  66. ensure => present,
  67. name => $libvirt_package_name_real,
  68. tag => ['openstack', 'nova-support-package'],
  69. }
  70. service { 'libvirt' :
  71. ensure => running,
  72. enable => true,
  73. name => $libvirt_service_name,
  74. provider => $::nova::params::special_service_provider,
  75. require => Package['libvirt'],
  76. }
  77. # when nova-compute & libvirt run together
  78. Service['libvirt'] -> Service<| title == 'nova-compute'|>
  79. }
  80. if $virtlock_service_name {
  81. service { 'virtlockd':
  82. ensure => running,
  83. enable => true,
  84. name => $virtlock_service_name,
  85. provider => $::nova::params::special_service_provider,
  86. require => Package['libvirt']
  87. }
  88. }
  89. if $virtlog_service_name {
  90. service { 'virtlogd':
  91. ensure => running,
  92. enable => true,
  93. name => $virtlog_service_name,
  94. provider => $::nova::params::special_service_provider,
  95. require => Package['libvirt']
  96. }
  97. }
  98. }