123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- class nova::migration::libvirt(
- $use_tls = false,
- $auth = 'none',
- $live_migration_tunnelled = $::os_service_default,
- $live_migration_completion_timeout = $::os_service_default,
- $live_migration_progress_timeout = $::os_service_default,
- $override_uuid = false,
- $configure_libvirt = true,
- $configure_nova = true,
- ){
- include ::nova::deps
- validate_re($auth, [ '^sasl$', '^none$' ], 'Valid options for auth are none and sasl.')
- if $use_tls {
- $listen_tls = '1'
- $listen_tcp = '0'
- } else {
- $listen_tls = '0'
- $listen_tcp = '1'
- }
- if $configure_nova {
- if $use_tls {
- nova_config {
- 'libvirt/live_migration_uri': value => 'qemu+tls://%s/system';
- }
- }
- nova_config {
- 'libvirt/live_migration_tunnelled': value => $live_migration_tunnelled;
- 'libvirt/live_migration_completion_timeout': value => $live_migration_completion_timeout;
- 'libvirt/live_migration_progress_timeout': value => $live_migration_progress_timeout;
- }
- }
- if $configure_libvirt {
- Anchor['nova::config::begin']
- -> File_line<| tag == 'libvirt-file_line'|>
- -> Anchor['nova::config::end']
- File_line<| tag == 'libvirt-file_line' |>
- ~> Service['libvirt']
- if $override_uuid {
- if ! $::libvirt_uuid {
- $host_uuid = generate('/bin/cat', '/proc/sys/kernel/random/uuid')
- file { '/etc/libvirt/libvirt_uuid':
- content => $host_uuid,
- require => Package['libvirt'],
- }
- } else {
- $host_uuid = $::libvirt_uuid
- }
- augeas { 'libvirt-conf-uuid':
- context => '/files/etc/libvirt/libvirtd.conf',
- changes => [
- "set host_uuid ${host_uuid}",
- ],
- notify => Service['libvirt'],
- require => Package['libvirt'],
- }
- }
- case $::osfamily {
- 'RedHat': {
- file_line { '/etc/libvirt/libvirtd.conf listen_tls':
- path => '/etc/libvirt/libvirtd.conf',
- line => "listen_tls = ${listen_tls}",
- match => 'listen_tls =',
- tag => 'libvirt-file_line',
- }
- file_line { '/etc/libvirt/libvirtd.conf listen_tcp':
- path => '/etc/libvirt/libvirtd.conf',
- line => "listen_tcp = ${listen_tcp}",
- match => 'listen_tcp =',
- tag => 'libvirt-file_line',
- }
- if $use_tls {
- file_line { '/etc/libvirt/libvirtd.conf auth_tls':
- path => '/etc/libvirt/libvirtd.conf',
- line => "auth_tls = \"${auth}\"",
- match => 'auth_tls =',
- tag => 'libvirt-file_line',
- }
- } else {
- file_line { '/etc/libvirt/libvirtd.conf auth_tcp':
- path => '/etc/libvirt/libvirtd.conf',
- line => "auth_tcp = \"${auth}\"",
- match => 'auth_tcp =',
- tag => 'libvirt-file_line',
- }
- }
- file_line { '/etc/sysconfig/libvirtd libvirtd args':
- path => '/etc/sysconfig/libvirtd',
- line => 'LIBVIRTD_ARGS="--listen"',
- match => 'LIBVIRTD_ARGS=',
- tag => 'libvirt-file_line',
- }
- }
- 'Debian': {
- file_line { '/etc/libvirt/libvirtd.conf listen_tls':
- path => '/etc/libvirt/libvirtd.conf',
- line => "listen_tls = ${listen_tls}",
- match => 'listen_tls =',
- tag => 'libvirt-file_line',
- }
- file_line { '/etc/libvirt/libvirtd.conf listen_tcp':
- path => '/etc/libvirt/libvirtd.conf',
- line => "listen_tcp = ${listen_tcp}",
- match => 'listen_tcp =',
- tag => 'libvirt-file_line',
- }
- if $use_tls {
- file_line { '/etc/libvirt/libvirtd.conf auth_tls':
- path => '/etc/libvirt/libvirtd.conf',
- line => "auth_tls = \"${auth}\"",
- match => 'auth_tls =',
- tag => 'libvirt-file_line',
- }
- } else {
- file_line { '/etc/libvirt/libvirtd.conf auth_tcp':
- path => '/etc/libvirt/libvirtd.conf',
- line => "auth_tcp = \"${auth}\"",
- match => 'auth_tcp =',
- tag => 'libvirt-file_line',
- }
- }
- if $::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemmajrelease, '16') >= 0 {
-
-
- $libvirtd_opts = 'libvirtd_opts="-l"'
- } else {
- $libvirtd_opts = 'libvirtd_opts="-d -l"'
- }
- file_line { "/etc/default/${::nova::compute::libvirt::libvirt_service_name} libvirtd opts":
- path => "/etc/default/${::nova::compute::libvirt::libvirt_service_name}",
- line => $libvirtd_opts,
- match => 'libvirtd_opts=',
- tag => 'libvirt-file_line',
- }
- }
- default: {
- warning("Unsupported osfamily: ${::osfamily}, make sure you are configuring this yourself")
- }
- }
- }
- }
|