URL: https://linuxfr.org/forums/programmationautre/posts/installation-d-un-rpm-sur-aix-a-l-aide-de-puppet Title: Installation d’un RPM sur AIX à l’aide de Puppet Authors: Marotte ⛧ Date: 2018年01月17日T14:07:37+01:00 License: CC By-SA Tags: puppet, aix et rpm Score: 1 Bonjour, Complètement ignorant quant à l’utilisation de cet outil, je suis en train d’écrire mon premier module afin d’apprendre à m’en servir. Sans surprise je butte sur un truc à priori simple, donc je le soumets à votre sagacité légendaire, histoire que vous ~~bossiez à ma place~~ puissiez montrer toute l’étendue de vos connaissances ! Voici l’extrait de mon fichier Puppet : On récupère le fichier RPM qui va bien et on le copie dans /tmp : ``` case $::kernelversion { '6100','7100' : { $package_nrpe='xxx-nrpe-2.15.0-9' $aix_version='aix6.1' } '5300' : { $package_nrpe='xxx-nrpe-2.15.0-2' $aix_version='aix5.3' } default : { fail('Module NRPE: version AIX non supportée.')} } $nrpe_rpm="${package_nrpe}.${aix_version}.noarch.rpm" file { "/tmp/${nrpe_rpm}": ensure => present, source => "puppet:///modules/nrpe/aix/${nrpe_rpm}" } ``` Ensuite, si j’ai bien compris, je ne peux pas utiliser le paramètre `onlyif` (ou encore `unless`) directement sur une ressource de type `Package`, je crée donc une ressource de type `Exec` : ``` exec { 'NRPE_not_installed': command => '/usr/bin/true', unless => "/usr/bin/rpm -q ${package_nrpe}" } ``` que je peux (enfin c’est ce que je croyais...) utiliser comme deuxième pré-requis (ie: paramètre `require`) pour ma ressource Package (le premier pré-requis étant la présence du fichier RPM dans /tmp): ``` package { $nrpe_rpm: ensure => installed, provider => 'rpm', source => "/tmp/${nrpe_rpm}", require => [File["/tmp/${nrpe_rpm}"],Exec['NRPE_not_installed']] } ``` Malheureusement, quand je lance un run Puppet depuis l’agent avec la commande `puppet agent -t`, Puppet n’est pas content : ``` Error: Execution of '/usr/bin/rpm -i /tmp/xxx-nrpe-2.15.0-9.aix6.1.noarch.rpm' returned 1: package xxx-nrpe-2.15.0-9 is already installed Error: /Stage[main]/Nrpe::Aix/Package[xxx-nrpe-2.15.0-9.aix6.1.noarch.rpm]/ensure: change from absent to present failed: Execution of '/usr/bin/rpm -i /tmp/xxx-nrpe-2.15.0-9.aix6.1.noarch.rpm' returned 1: package xxx-nrpe-2.15.0-9 is already installed ``` Je ne comprends pas pourquoi ça ne fonctionne pas. Est-ce que je dois, au lieu d’utiliser une ressource de type Package, utiliser une ressource de type Exec qui fait un `rpm -i ...` ?

AltStyle によって変換されたページ (->オリジナル) /