Я использую марионетку для создания бродячей виртуальной машины (на основе Ubuntu). В моем сценарии мне нужно:
sudo apt-get build-dep python-lxml
Я знаю, что могу установить apt
модуль puppet, чтобы использовать:
apt::builddep { 'python-lxml': }
Но я не могу найти ссылку на установку модуля из скрипта и как его включить/требовать. Мне кажется, что документы puppet относятся только к установке с помощью команды инструмент линейной марионетки
Я также пытался сделать что-то вроде:
define build_dep($pkgname){
exec {
"builddepend_$pkgname":
commmand => "sudo apt-get build-dep $pkgname";
}
}
build_dep{
"python-imaging":
pkgname => "python-imaging";
"python-lxml":
pkgname => "python-lxml";
}
Но puppet завершил работу с ошибкой. А также:
exec{"install apt module":
command => "puppet module install puppetlabs/apt"
}
class { 'apt':
require => Exec["install apt module"]}
include apt
apt::builddep { 'python-imaging':
}
но получил could not find declared class apt at..
есть идеи? направления? Я знаю, что упускаю что-то очевидное, но не могу понять это.
EDIT: Если я предварительно устанавливаю (с puppet module install
из командной строки), apt:builddep
работает нормально. Но мне нужен puppet для загрузки и установки модуля. Некоторые другие обходные пути также работают для основного варианта использования, но не отвечают на мой главный вопрос.
git submodule update --init
для обработки (предопределения) зависимостей модулей. и запустите его предварительно puppet\vagrant 25.07.2013(puppet module install puppetlabs/apache; true)
, но это может привести к непредвиденным последствиям, если модуль не установится по другим причинам. 10.02.2014--force
, вы можете выполнить что-то вроде(puppet module list |grep puppetlabs-nodejs ) || (mkdir -p /etc/puppet/modules; puppet module install puppetlabs/nodejs)
(в комментариях нет возврата каретки, извините) 06.04.2014puppet module install puppetlabs-stdlib 2> /dev/null || /bin/true
помог мне обойти сообщения об ошибках и сбои подготовки 28.09.2015