Кукольный манифест для распаковки заархивированного файла на хосте Windows

Я продолжаю получать сообщение об ошибке «Не удалось найти команду «C:\puppetfolder\unzip.exe» или «Не удалось найти команду« C:\puppetfolder\ 7-Zip.exe» в зависимости от того, что я пытаюсь… в основном я пытаюсь разархивировать заархивированный файл (server.zip) в каталог C:\puppetfolder. Puppet может загружать файлы 7z1507.exe и unzip.exe в каталог C:\puppetfolder\, поэтому исполняемые файлы принадлежат им. Но должен ли я использовать извлечение, распаковку, распаковку или 7zip в атрибуте команды, чтобы этот файл server.zip распаковывался в тот же каталог? Или мой аргумент неверен для этого варианта использования?

-> файл { 'C:\puppetfolder\7z1507.exe':

ensure   => 'present',
provider => 'windows',
mode     => '0775',
owner    => 'Administrator',
group    => 'Administrator',

}

-> файл { 'C:\puppetfolder\unzip.exe':

ensure  => 'present',
mode    => '0775',
owner   => 'Administrator',
group   => 'Administrator',

}

->

файл { 'C:\puppetfolder\server.zip':

ensure   => 'file',
source   => 'puppet:///modules/downloadscript/server.zip',
checksum => 'mtime',
mode     => '0775',
owner    => 'Administrator',
group    => 'Administrator',

}

-> exec {'unzip_c:\puppetfolder\server.zip':

 path         => 'c:\\puppetfolder\\unzip.exe',
command      => "C:\\puppetfolder\\unzip.exe /c C:\\puppetfolder\\server.zip C:\\puppetfolder -y",
provider     =>  'windows',

}

-> exec { 'install_c:\puppetfolder\downloadtest.ps1':

command     => 'C:\\puppetfolder\\downloadtest.bat',
logoutput   => 'true',
provider    => 'windows',

} }


person bloodgreen    schedule 05.10.2015    source источник


Ответы (1)


В кузнице есть модуль reidmv-unzip, который обеспечивает распаковку типа.

puppet module install reidmv-unzip

Затем вы можете определить источник и место назначения содержимого zip. Источник должен быть локальным файлом в системе Windows.

С этим типом ваш манифест будет переписан следующим образом:

file { 'C:/puppetfolder/server.zip':
  ensure   => 'file',
  source   => 'puppet:///modules/downloadscript/server.zip',
  checksum => 'mtime',
  mode     => '0775',
  owner    => 'Administrator',
  group    => 'Administrator',
}
->
unzip { 'server-file':                            
  source  => 'C:/puppetfolder/server.zip',               
  creates => 'C:/puppetfolder/downloadtest.bat',                                                                            
}
->
exec { 'install_c:/puppetfolder/downloadtest.ps1':
  command     => 'C:/puppetfolder/downloadtest.bat',
  logoutput   => 'true',
  provider    => 'windows',
}
person saq0    schedule 15.10.2015