Merge "Add support for iscsid configuration"
This commit is contained in:
commit
de68e1eace
|
@ -0,0 +1,58 @@
|
||||||
|
# == Class: openstacklib::iscsid
|
||||||
|
#
|
||||||
|
# Installs and configures the iscsid daemon
|
||||||
|
#
|
||||||
|
# == Parameters
|
||||||
|
#
|
||||||
|
# [*enabled*]
|
||||||
|
# (optional) Should the service be enabled.
|
||||||
|
# Defaults to true.
|
||||||
|
#
|
||||||
|
# [*manage_service*]
|
||||||
|
# (optional) Whether the service should be managed by Puppet.
|
||||||
|
# Defaults to true.
|
||||||
|
#
|
||||||
|
# [*package_ensure*]
|
||||||
|
# (optional) ensure state for package.
|
||||||
|
# Defaults to 'present'
|
||||||
|
#
|
||||||
|
class openstacklib::iscsid(
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
$package_ensure = 'present'
|
||||||
|
) {
|
||||||
|
|
||||||
|
include openstacklib::params
|
||||||
|
|
||||||
|
package { 'open-iscsi':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::openstacklib::params::open_iscsi_package_name,
|
||||||
|
tag => 'openstack',
|
||||||
|
}
|
||||||
|
|
||||||
|
# In CentOS9/RHEL9 initiatorname.iscsi is not created automatically
|
||||||
|
# so should be created
|
||||||
|
exec { 'create-initiatorname-file':
|
||||||
|
command => 'echo "InitiatorName=`/usr/sbin/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi',
|
||||||
|
path => ['/usr/bin','/usr/sbin','/bin','/usr/bin'],
|
||||||
|
unless => 'test -e /etc/iscsi/initiatorname.iscsi',
|
||||||
|
require => Package['open-iscsi'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
|
||||||
|
# iscsid service is started automatically when iscsiadm command is
|
||||||
|
# executed but there is no harm even if the service is already started.
|
||||||
|
service { 'iscsid':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
enable => $enabled,
|
||||||
|
}
|
||||||
|
Package['open-iscsi'] ~> Service['iscsid']
|
||||||
|
Exec['create-initiatorname-file'] ~> Service['iscsid']
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,4 +9,17 @@ class openstacklib::params {
|
||||||
$pyvers = $::openstacklib::defaults::pyvers
|
$pyvers = $::openstacklib::defaults::pyvers
|
||||||
|
|
||||||
$openstackclient_package_name = "python${pyvers}-openstackclient"
|
$openstackclient_package_name = "python${pyvers}-openstackclient"
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
$open_iscsi_package_name = 'iscsi-initiator-utils'
|
||||||
|
}
|
||||||
|
'Debian': {
|
||||||
|
$open_iscsi_package_name = 'open-iscsi'
|
||||||
|
}
|
||||||
|
default:{
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, \
|
||||||
|
module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The new ``openstacklib::iscsid`` class has been added. This class can be
|
||||||
|
used to set up basic configurations for the iscsid service.
|
|
@ -0,0 +1,47 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'openstacklib::iscsid' do
|
||||||
|
shared_examples_for 'openstacklib::iscsid' do
|
||||||
|
context 'with default params' do
|
||||||
|
it { is_expected.to contain_package('open-iscsi').with(
|
||||||
|
:name => platform_params[:open_iscsi_package_name],
|
||||||
|
:ensure => 'present',
|
||||||
|
:tag => 'openstack',
|
||||||
|
)}
|
||||||
|
|
||||||
|
it { is_expected.to contain_exec('create-initiatorname-file').with({
|
||||||
|
:command => 'echo "InitiatorName=`/usr/sbin/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi',
|
||||||
|
:path => ['/usr/bin','/usr/sbin','/bin','/usr/bin'],
|
||||||
|
:unless => 'test -e /etc/iscsi/initiatorname.iscsi',
|
||||||
|
}).that_requires('Package[open-iscsi]')}
|
||||||
|
|
||||||
|
it { is_expected.to contain_service('iscsid').with(
|
||||||
|
:ensure => 'running',
|
||||||
|
:enable => true,
|
||||||
|
) }
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
on_supported_os({
|
||||||
|
:supported_os => OSDefaults.get_supported_os
|
||||||
|
}).each do |os,facts|
|
||||||
|
context "on #{os}" do
|
||||||
|
let (:facts) do
|
||||||
|
facts.merge!(OSDefaults.get_facts())
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:platform_params) do
|
||||||
|
case facts[:osfamily]
|
||||||
|
when 'Debian'
|
||||||
|
{ :open_iscsi_package_name => 'open-iscsi' }
|
||||||
|
when 'RedHat'
|
||||||
|
{ :open_iscsi_package_name => 'iscsi-initiator-utils' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'openstacklib::iscsid'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue