퍼핏과 함께 zypper 명령을 사용하여 여러 패키지를 설치하고 싶습니다. 나 자신의 저장소를 만들고 거기에 bacula 패키지를 버렸다. 내 매니페스트는 다음과 같습니다 :퍼펫 zypper 명령을 사용하여 여러 패키지를 설치합니다. 패키지 이름을 연결했습니다.
#cat manifests/init.pp
class bacula()
{
$baculas = [ "bacula-dir", "bacula-fd", "bacula-bat", "bacula-bconsole", "bacula- catalog-postgresql", "bacula-libs", "bacula-postgresql", "bacula-sd", "bacula-sql", "bacula-tools", "bacula-updatedb" ]
package { $baculas: ensure => "installed" }
exec { 'install_bacula':
provider => shell,
path => [ "/bin/", "/usr/bin", "/sbin" ],
command => "/usr/bin/zypper -n in $baculas;",
logoutput => on_failure,
}
}
패키지가 잘 설치된 동안 출력에 오류가 있습니다. 패키지의 이름이 연결되어 있고 꼭두각시가 긴 패키지 이름을 찾을 수 없다는 오류를 리턴 한 것 같습니다. 아래 출력 :
# puppet agent --test
info: Caching catalog for otoyas
info: Applying configuration version '1418720157'
notice: /Stage[main]/Bacula/Package[bacula-dir]/ensure: created
notice: /Stage[main]/Bacula/Package[bacula-sd]/ensure: created
notice: /Stage[main]/Bacula/Package[bacula-fd]/ensure: created
notice: /Stage[main]/Bacula/Exec[install_bacula]/returns: Loading repository data...
notice: /Stage[main]/Bacula/Exec[install_bacula]/returns: Reading installed packages...
notice: /Stage[main]/Bacula/Exec[install_bacula]/returns: 'bacula-dirbacula-fdbacula-batbacula-bconsolebacula-catalog-postgresqlbacula-libsbacula-postgresqlbacula-sdbacula-sqlbacula-toolsbacula-updatedb' not found in package names. Trying capabilities.
notice: /Stage[main]/Bacula/Exec[install_bacula]/returns: No provider of 'bacula-dirbacula-fdbacula-batbacula-bconsolebacula-catalog-postgresqlbacula-libsbacula-postgresqlbacula-sdbacula-sqlbacula-toolsbacula-updatedb' found.
err: /Stage[main]/Bacula/Exec[install_bacula]/returns: change from notrun to 0 failed: /usr/bin/zypper -n in bacula-dirbacula-fdbacula-batbacula-bconsolebacula-catalog-postgresqlbacula-libsbacula-postgresqlbacula-sdbacula-sqlbacula-toolsbacula-updatedb; returned 104 instead of one of [0] at /etc/puppet/modules/bacula/manifests/init.pp:12
notice: /Stage[main]/Bacula/Package[bacula-bat]/ensure: created
notice: /Stage[main]/Bacula/Package[bacula-updatedb]/ensure: created
notice: /Stage[main]/Vsftpd/Exec[install_vsftpd]/returns: executed successfully
notice: /Stage[main]/Bacula/Package[bacula-tools]/ensure: created
notice: /Stage[main]/Bacula/Package[bacula-postgresql]/ensure: created
notice: Finished catalog run in 6.28 seconds
어떻게 수정합니까? 이 작업을 수행 할 수있는 더 좋은 방법이 있다면, 나는 꼭두각시를 처음 사용하기 때문에 제안을 기다리고 있습니다.
감사합니다.
작동합니다! 감사. Btw, 매니페스트에 나열된 모든 bacula 패키지를 지정하기 위해 꼭두각시의 출력이 필요합니까? 11 개의 bacula 패키지가 $ baculas에 할당되어있는 것처럼 보이지만 출력에는 7 개의 패키지 만 생성됩니다. – gidot
'zypper'는 평가의 초기 단계에 있었던 하나 이상의 패키지의 종속성으로 이들 중 일부를 가져 왔습니다. 중요한 패키지를 명시 적으로 선언하는 것이 좋습니다. 인형은 불필요한 무상 작업을 수행하지 않습니다. –