diff options
Diffstat (limited to 'grid5000/steps/data/setup/puppet/modules/env/manifests/std')
18 files changed, 769 insertions, 0 deletions
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp new file mode 100644 index 0000000..ef7ec33 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp @@ -0,0 +1,16 @@ +class env::std::add_g5kcode_to_path { + + file { + '/root/.ssh': + ensure => directory, + owner => root, + group => root, + mode => '0700'; + } + + # Sounds dirty as fuck, but Augeas does not manage /etc/profile which is a bash file, and not a real configuration file (or I'm really bad with Augeas). + file_line { 'g5kcode_etc_profile_path': + path => '/etc/profile', + line => 'export PATH=$PATH:/grid5000/code/bin'; + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp new file mode 100644 index 0000000..9ec247b --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp @@ -0,0 +1,33 @@ +class env::std::configure_g5kdiskmanagerbackend { + + require env::std::install_hwraid_apt_source + require env::std::configure_g5kmanager + + case $operatingsystem { + 'Debian': { + case "${::lsbdistcodename}" { + "stretch", "buster", "bullseye" : { + file { + '/etc/systemd/system/g5k-disk-manager-backend.service': + source => 'puppet:///modules/env/std/g5k-manager/g5k-disk-manager-backend.service', + ensure => file; + '/usr/local/libexec/g5k-disk-manager-backend': + source => 'puppet:///modules/env/std/g5k-manager/g5k-disk-manager-backend', + mode => '0755', + ensure => file; + '/etc/systemd/system/multi-user.target.wants/g5k-disk-manager-backend.service': + ensure => link, + target => '/etc/systemd/system/g5k-disk-manager-backend.service'; + } + } + default : { + err "${::lsbdistcodename} not supported." + } + } + } + default : { + err "${operatingsystem} not supported." + } + } +} + diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp new file mode 100644 index 0000000..d6740f5 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp @@ -0,0 +1,33 @@ +class env::std::configure_g5kmanager { + case $operatingsystem { + 'Debian': { + case "${::lsbdistcodename}" { + "stretch", "buster", "bullseye" : { + file { + '/usr/local/libexec/': + ensure => directory, + mode => '0755', + owner => 'root', + group => 'root'; + '/usr/local/lib/g5k/': + ensure => directory, + mode => '0755', + owner => 'root', + group => 'root'; + '/usr/local/lib/g5k/g5k-manager.rb': + source => 'puppet:///modules/env/std/g5k-manager/lib/g5k-manager.rb', + mode => '0755', + ensure => file; + } + } + default : { + err "${::lsbdistcodename} not supported." + } + } + } + default : { + err "${operatingsystem} not supported." + } + } +} + diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp new file mode 100644 index 0000000..bde3f08 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp @@ -0,0 +1,32 @@ +class env::std::configure_g5kpmemmanager { + + require env::std::configure_g5kmanager + + case $operatingsystem { + 'Debian': { + case "${::lsbdistcodename}" { + "buster", "bullseye" : { + file { + '/etc/systemd/system/g5k-pmem-manager.service': + source => 'puppet:///modules/env/std/g5k-manager/g5k-pmem-manager.service', + ensure => file; + '/usr/local/libexec/g5k-pmem-manager': + source => 'puppet:///modules/env/std/g5k-manager/g5k-pmem-manager', + mode => '0755', + ensure => file; + '/etc/systemd/system/multi-user.target.wants/g5k-pmem-manager.service': + ensure => link, + target => '/etc/systemd/system/g5k-pmem-manager.service'; + } + } + default : { + err "${::lsbdistcodename} not supported." + } + } + } + default : { + err "${operatingsystem} not supported." + } + } +} + diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp new file mode 100644 index 0000000..d73964d --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp @@ -0,0 +1,247 @@ +class env::std::configure_oar_client { + + $oar_packages = ['oar-common', 'oar-node'] + + if "$operatingsystem" == "Debian" { + # Can specify oar client version below + case "${::lsbdistcodename}" { + 'stretch' : { + $oar_version = "2.5.8~rc8-1~bpo9+1"; + $oar_repos = "2.5/debian/"; + $oar_repos_release = "stretch-backports_beta" + } + 'buster' : { + $oar_version = "2.5.10~g5k8-1"; + $oar_repos = "g5k" + } + 'bullseye' : { + $oar_version = "2.5.10~g5k8-1"; + $oar_repos = "g5k" + } + default : { + err "${::lsbdistcodename} not supported." + } + } + } + + if ($oar_repos == "default") { + package { + 'oar-common': + ensure => $oar_version, + require => Package["liboar-perl"]; + 'oar-node': + ensure => $oar_version, + require => Package["liboar-perl"]; + 'liboar-perl': + ensure => $oar_version; + } + } elsif ($oar_repos == "g5k") { + env::common::g5kpackages { + "oar/${::lsbdistcodename}": + source_filename => 'oar', + packages => ['liboar-perl', 'oar-common', 'oar-node'], + ensure => $oar_version + } + } else { + apt::source { + 'oar-repo': + location => "http://oar-ftp.imag.fr/oar/$oar_repos", + release => "$oar_repos_release", + repos => 'main', + notify => Exec['oar apt update'], + require => Exec["import oar gpg key"], + } + exec { + "import oar gpg key": + command => "/usr/bin/wget -q http://oar-ftp.imag.fr/oar/oarmaster.asc -O- | /usr/bin/apt-key add -", + unless => "/usr/bin/apt-key list | /bin/grep oar", + } + exec { + "oar apt update": + command => "/usr/bin/apt-get update", + } + package { + 'oar-common': + ensure => $oar_version, + install_options => ['-t', "$oar_repos_release"], + require => [ Package["liboar-perl"], Apt::Source['oar-repo'] ]; + 'oar-node': + ensure => $oar_version, + install_options => ['-t', "$oar_repos_release"], + require => [ Package["liboar-perl"], Apt::Source['oar-repo'] ]; + 'liboar-perl': + ensure => $oar_version, + install_options => ['-t', "$oar_repos_release"], + require => Apt::Source['oar-repo']; + } + } + + if ($oar_version != "installed") { + apt::pin { 'oar client pin': + packages => [ 'oar-common', 'oar-node', 'liboar-perl' ], + version => $oar_version, + priority => 1001, + } + } + + $hiera = lookup("env::std::oar::ssh") + file { + '/var/lib/oar/checklogs/': + ensure => directory, + owner => root, + group => root, + mode => '0755', + require => Package[$oar_packages]; + '/var/lib/oar/.ssh': + ensure => directory, + owner => oar, + group => oar, + mode => '0755', + require => Package[$oar_packages]; + '/var/lib/oar/.ssh/config': + ensure => present, + owner => oar, + group => oar, + mode => '0644', + source => 'puppet:///modules/env/std/oar/oar_sshclient_config', + require => [ File['/var/lib/oar/.ssh'], Package[$oar_packages] ]; + '/etc/oar/oar_ssh_host_dsa_key': + ensure => present, + owner => root, + group => root, + mode => '0600', + content => $hiera['oar_ssh_host_dsa_key'], + require => Package[$oar_packages]; + '/etc/oar/oar_ssh_host_rsa_key': + ensure => present, + owner => root, + group => root, + mode => '0600', + content => $hiera['oar_ssh_host_rsa_key'], + require => Package[$oar_packages]; + '/etc/oar/oar_ssh_host_dsa_key.pub': + ensure => present, + owner => root, + group => root, + mode => '0600', + content => $hiera['oar_ssh_host_dsa_key_pub'], + require => Package[$oar_packages]; + '/etc/oar/oar_ssh_host_rsa_key.pub': + ensure => present, + owner => root, + group => root, + mode => '0600', + content => $hiera['oar_ssh_host_rsa_key_pub'], + require => Package[$oar_packages]; + '/var/lib/oar/.batch_job_bashrc': + ensure => present, + owner => oar, + group => oar, + mode => '0755', + source => 'puppet:///modules/env/std/oar/batch_job_bashrc', + require => Package[$oar_packages]; + '/etc/security/access.conf': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => 'puppet:///modules/env/std/oar/etc/security/access.conf', + require => Package[$oar_packages]; + '/var/lib/oar/access.conf': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => 'puppet:///modules/env/std/oar/var/lib/oar/access.conf', + require => Package[$oar_packages]; + '/etc/oar/sshd_config': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => '/etc/ssh/sshd_config', + require => Package[$oar_packages, 'ssh server']; + '/var/lib/oar/.ssh/authorized_keys': + ensure => present, + owner => oar, + group => oar, + mode => '0644', + content => $hiera['oar_authorized_keys'], + require => Package[$oar_packages]; + '/etc/default/oar-node': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => 'puppet:///modules/env/std/oar/default_oar-node', + require => Package[$oar_packages]; + } + + augeas { + 'sshd_config_oar': + incl => '/etc/oar/sshd_config', + lens => 'Sshd.lns', + changes => [ + 'set /files/etc/oar/sshd_config/Port 6667', + 'set /files/etc/oar/sshd_config/HostKey /etc/oar/oar_ssh_host_rsa_key', + 'set /files/etc/oar/sshd_config/LoginGraceTime 10m', + 'set /files/etc/oar/sshd_config/PermitRootLogin no', + 'set /files/etc/oar/sshd_config/PasswordAuthentication no', + 'set /files/etc/oar/sshd_config/ChallengeResponseAuthentication no', + 'set /files/etc/oar/sshd_config/UsePAM yes', + 'set /files/etc/oar/sshd_config/X11Forwarding yes', + 'set /files/etc/oar/sshd_config/PrintMotd no', + 'set /files/etc/oar/sshd_config/PermitUserEnvironment yes', + 'set /files/etc/oar/sshd_config/MaxStartups 500', + 'set /files/etc/oar/sshd_config/AcceptEnv/1 LANG', + 'set /files/etc/oar/sshd_config/AcceptEnv/2 LC_*', + 'set /files/etc/oar/sshd_config/AcceptEnv/3 OAR_CPUSET', + 'set /files/etc/oar/sshd_config/AcceptEnv/4 OAR_USER_CPUSET', + 'set /files/etc/oar/sshd_config/AcceptEnv/5 OAR_USER_GPUDEVICE', + 'set /files/etc/oar/sshd_config/AcceptEnv/6 OAR_JOB_USER', + 'set /files/etc/oar/sshd_config/Subsystem/sftp /usr/lib/openssh/sftp-server', + 'set /files/etc/oar/sshd_config/AllowUsers/1 oar' + ], + require => File['/etc/oar/sshd_config']; + } + + file_line { 'oar_conf': + ensure => present, + match => "^(#)?COMPUTE_THREAD_SIBLINGS=*", + path => '/etc/oar/oar.conf', + line => 'COMPUTE_THREAD_SIBLINGS="yes"', + replace => true, + require => Package[$oar_packages]; + } + + if $env::target_g5k { + $key_values = lookup("env::std::oar::ssh") + + file { + "/var/lib/oar/.ssh/oarnodesetting_ssh.key": + ensure => file, + owner => oar, + group => oar, + mode => '0600', + content => $key_values['oarnodesetting_ssh_key']; + "/var/lib/oar/.ssh/oarnodesetting_ssh.key.pub": + ensure => file, + owner => oar, + group => oar, + mode => '0644', + content => $key_values['oarnodesetting_ssh_key_pub']; + "/var/lib/oar/.ssh/id_rsa": + ensure => file, + owner => oar, + group => oar, + mode => '0600', + content => $key_values['id_rsa']; + "/var/lib/oar/.ssh/id_rsa.pub": + ensure => file, + owner => oar, + group => oar, + mode => '0644', + content => $key_values['id_rsa_pub']; + } + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp new file mode 100644 index 0000000..57e084d --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp @@ -0,0 +1,39 @@ +class env::std::configure_rsyslog_remote { + + require env::commonpackages::rsyslog + + file { + "/etc/rsyslog.conf": + mode => '0600', + owner => root, + group => root, + source => "puppet:///modules/env/std/net_access/rsyslog.conf"; + "/etc/rsyslog.d/syslog_iptables.conf": + mode => '0655', + owner => root, + group => root, + source => "puppet:///modules/env/std/net_access/syslog_iptables.conf"; + } + + # Stretch has an old iptables version that does not support hashlimit-rate-match + if "${::lsbdistcodename}" == "stretch" { + # iptables installed by kameleon. + file { + "/etc/network/if-pre-up.d/iptables": + mode => '0755', + owner => root, + group => root, + source => "puppet:///modules/env/std/net_access/iptables.stretch" + } + } else { + # iptables installed by kameleon. + file { + "/etc/network/if-pre-up.d/iptables": + mode => '0755', + owner => root, + group => root, + source => "puppet:///modules/env/std/net_access/iptables" + } + } +} + diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp new file mode 100644 index 0000000..e131e3b --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp @@ -0,0 +1,120 @@ +# Recipe from grid5000-puppet +# Don't forget to update both repositories when modifying something +# + +class { 'apt': + update => { + timeout => 1000 + } +} + +class env::std::dell ( + Array $packages_names = $env::std::dell::params::packages_names, +) inherits env::std::dell::params { + + include apt + + $_key = '42550ABD1E80D7C1BC0BAD851285491434D8786F' + + case $::lsbdistcodename { + 'stretch', 'buster': { + # No official Debian support since buster + $_location = "https://linux.dell.com/repo/community/openmanage/910/stretch" + $_release = "stretch" + $_repos = "main" + $_packages_names = $packages_names + $service_status = 'service dataeng status' + } + 'bullseye': { + # Ubuntu 20.04 packages + $_location = "https://linux.dell.com/repo/community/openmanage/950/focal" + $_release = "focal" + $_repos = "main" + $_packages_names = $packages_names - 'libssl1.0.0' + $service_status = 'systemctl status dsm_sa_datamgrd.service dsm_sa_eventmgrd.service' + } + } + + apt::source { + 'dell': + comment => 'Dell repository for OpenManage Server Administrator tools', + location => $_location, + release => $_release, + repos => $_repos, + key => { + 'id' => $_key, + 'content' => template('env/std/dell/linux.dell.com.key.erb'), + }, + include => { + 'deb' => true, + 'src' => false + }, + notify => Exec['apt_update']; + } + + package { + $_packages_names: + ensure => present, + require => [ + Apt::Source['dell'], + Exec['apt_update'], + ]; + } + + case $::lsbdistcodename { + # OMSA <= 9.1.0 + 'stretch', 'buster': { + service { + 'dataeng': + enable => true, + require => Package[$_packages_names]; + } + } + # OMSA >= 9.3.0 + 'bullseye': { + service { + 'dsm_sa_datamgrd': + enable => true, + require => Package[$_packages_names]; + } + service { + 'dsm_sa_eventmgrd.service': + enable => true, + require => Package[$_packages_names]; + } + } + } + + if ($::lsbdistcodename == 'buster') or ($::lsbdistcodename == 'bullseye') { + # Using enable => false doesn't seem to work, maybe because openipmi use systemd-sysv-generator + exec { + 'disable openipmi service': + command => "/lib/systemd/systemd-sysv-install disable openipmi", + require => Package[$packages, 'ipmitool']; + } + } + + if ($::lsbdistcodename == 'bullseye') { + # Fix bug 12930 + exec { + 'disable NVMe devices support': + command => "/bin/sed -i 's/^vil7=dsm_sm_psrvil/; vil7=dsm_sm_psrvil/' /opt/dell/srvadmin/etc/srvadmin-storage/stsvc.ini", + require => Package[$_packages_names]; + } + } + + if ($::lsbdistcodename == 'buster') { + # Fix bug 8048 and 8975 + file { + '/etc/systemd/system/dataeng.service.d': + ensure => 'directory', + require => Package[$packages]; + '/etc/systemd/system/dataeng.service.d/stop.conf': + ensure => 'file', + content => "[Service]\nExecStop=\nKillMode=control-group\nKillSignal=9", + require => Package[$packages]; + } + File['/etc/systemd/system/dataeng.service.d'] + ->File['/etc/systemd/system/dataeng.service.d/stop.conf'] + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp new file mode 100644 index 0000000..e6d3665 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp @@ -0,0 +1,16 @@ +# Recipe from grid5000-puppet, keep synchronized! +# + +class env::std::dell::params { + + $packages_names = [ + 'srvadmin-base', + "srvadmin-idracadm7", + "srvadmin-idracadm8", + 'srvadmin-storageservices', + 'srvadmin-omcommon', + 'libncurses5', + 'libxslt1.1', + 'libssl1.0.0', + ] +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp new file mode 100644 index 0000000..908d323 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp @@ -0,0 +1,19 @@ +class env::std::disable_lvm_pvscan { + + # Disable LVM2 pvscan on std environment to avoid issues with disk reservation (see bug 9453) + package {'lvm2': + ensure => installed; + } + + file { + "/etc/lvm/lvm.conf": + mode => '0644', + owner => root, + group => root, + source => "puppet:///modules/env/std/lvm/lvm.conf", + require => Package['lvm2'], + notify => Exec['generate_initramfs']; + + } +} + diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp new file mode 100644 index 0000000..c03fc8b --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp @@ -0,0 +1,26 @@ +class env::std::g5k_generator { + + case $operatingsystem { + 'Debian','Ubuntu': { + + #smbios-utils package for binary tool smbios-sys-info-lite + package { + 'smbios-utils': + ensure => 'installed' + } + + file { + '/lib/systemd/system-generators/g5k-generator': + ensure => present, + owner => root, + group => root, + mode => '0755', + source => 'puppet:///modules/env/std/g5k_generator/g5k_generator', + require => Package['smbios-utils'] + } + } + default: { + err "${operatingsystem} not supported." + } + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp new file mode 100644 index 0000000..871045f --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp @@ -0,0 +1,35 @@ +class env::std::install_g5kchecks { + + include 'env::std::ipmitool' # ipmitool is required by g5k-checks + if $env::deb_arch == 'amd64' { + include 'env::std::dell' # dell tools are required by g5k-checks + } + + case $operatingsystem { + + 'Debian','Ubuntu': { + + require env::commonpackages::rake + require env::commonpackages::rubyrspec + + env::common::g5kpackages { + 'g5k-checks': + ensure => $::env::common::software_versions::g5k_checks, + release => "${::lsbdistcodename}"; + } + + file { + '/etc/g5k-checks.conf': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => "puppet:///modules/env/std/g5kchecks/g5k-checks.conf", + require => Package["g5k-checks"]; + } + } + default: { + err "${operatingsystem} not supported." + } + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp new file mode 100644 index 0000000..0d894ba --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp @@ -0,0 +1,9 @@ +class env::std::install_g5ksubnets { + + include env::common::software_versions + + env::common::g5kpackages { + 'g5k-subnets': + ensure => $::env::common::software_versions::g5k_subnets; + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp new file mode 100644 index 0000000..1194f73 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp @@ -0,0 +1,38 @@ +class env::std::install_hwraid_apt_source { + + include apt + + # FIXME remove when HWRAID bullseye repository + if "${::lsbdistcodename}" == "bullseye" { + apt::source { 'hwraid.le-vert.net': + key => { + 'id' => '0073C11919A641464163F7116005210E23B3D3B4', + 'content' => template('env/std/hwraid/hwraid.le-vert.net.key.erb'), + }, + comment => 'Repo for megacli package', + location => 'http://hwraid.le-vert.net/debian', + release => "buster", + repos => 'main', + include => { + 'deb' => true, + 'src' => false + } + } + + } else { + apt::source { 'hwraid.le-vert.net': + key => { + 'id' => '0073C11919A641464163F7116005210E23B3D3B4', + 'content' => template('env/std/hwraid/hwraid.le-vert.net.key.erb'), + }, + comment => 'Repo for megacli package', + location => 'http://hwraid.le-vert.net/debian', + release => "${::lsbdistcodename}", + repos => 'main', + include => { + 'deb' => true, + 'src' => false + } + } + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp new file mode 100644 index 0000000..719d060 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp @@ -0,0 +1,27 @@ +class env::std::install_libguestfs_backport { + + case $lsbdistcodename { + 'buster': { + if $env::deb_arch == 'arm64' { + env::common::g5kpackages { + 'libguestfs-backport': + packages => 'libguestfs-tools', + ensure => $::env::common::software_versions::libguestfs_backport_arm64; + } + } + elsif $env::deb_arch == 'ppc64el' { + env::common::g5kpackages { + 'libguestfs-backport': + packages => 'libguestfs-tools', + ensure => $::env::common::software_versions::libguestfs_backport_ppc64el; + } + } + else { + err "${env::deb_arch} not supported" + } + } + default: { + err "${lsbdistcodename} not supported." + } + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp new file mode 100644 index 0000000..1bd4d87 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp @@ -0,0 +1,11 @@ +class env::std::install_megacli { + + require env::std::install_hwraid_apt_source + + package { + 'megacli': + ensure => installed, + require => [Apt::Source['hwraid.le-vert.net'], Exec['apt_update']] + } + +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp new file mode 100644 index 0000000..fb0e4a6 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp @@ -0,0 +1,29 @@ +class env::std::install_sudog5k { + + case $operatingsystem { + 'Debian': { + require env::commonpackages::rake + require env::commonpackages::rubyrspec + require env::commonpackages::rsyslog + + env::common::g5kpackages { + 'sudo-g5k': + ensure => $::env::common::software_versions::sudo_g5k; + } + + } + default: { + err "${operatingsystem} not suported." + } + } + + file { + '/etc/sudo-g5k/id_rsa_sudo-g5k': + ensure => file, + owner => root, + group => root, + mode => '0600', + source => 'puppet:///modules/env/std/sudo-g5k/id_rsa_sudo-g5k', + require => Package['sudo-g5k']; + } +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp new file mode 100644 index 0000000..fed7222 --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp @@ -0,0 +1,18 @@ +class env::std::ipmitool { + + package { 'ipmitool': + ensure => 'installed' + } + + augeas { + 'module_ipmi_si': + context => "/files/etc/modules", + changes => ["ins ipmi_si after #comment[last()]",], + onlyif => "match ipmi_si size == 0 "; + 'module_ipmi_devintf': + context => "/files/etc/modules", + changes => ["ins ipmi_devintf after #comment[last()]",], + onlyif => "match ipmi_devintf size == 0 "; + } + +} diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp new file mode 100644 index 0000000..c9285ae --- /dev/null +++ b/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp @@ -0,0 +1,21 @@ +class env::std::nvidia_reset_mig () { + + file{ + '/usr/local/bin/nvidia-reset-mig': + ensure => present, + owner => root, + group => root, + mode => '0755', + source => 'puppet:///modules/env/std/nvidia_configure/nvidia-reset-mig'; + '/etc/systemd/system/nvidia-reset-mig.service': + ensure => present, + owner => root, + group => root, + mode => '0644', + source => 'puppet:///modules/env/std/nvidia_configure/nvidia-reset-mig.service'; + '/etc/systemd/system/multi-user.target.wants/nvidia-reset-mig.service': + ensure => link, + target => '/etc/systemd/system/nvidia-reset-mig.service'; + + } +} |