Я новичок в Puppet, так что извините, если этот вопрос даже не правильно сформулирован, ха-ха. Я пытаюсь использовать Boxen для настройки своего нового Macbook Pro. Я нашел скрипт , который поможет мне управлять тем, что находится в доке. Я не знал, как его запустить, поэтому просто скопировал его в каталог script
в моем репозитории Boxen. Затем я попытался использовать его следующим образом:
# Public: Add a new app to the dock
define dock-app($app = $title) {
exec { "Add $app to dock":
command => '/opt/boxen/repo/script/dockutil add',
}
}
# Public: Remove all existing apps from the dock
class my-osx::dock::clear() {
exec { 'Clear existing dock app':
command => '/opt/boxen/repo/script/dockutil remove --all',
}
}
А затем я использовал бы его следующим образом в manifest / site.pp
:
include webstorm
include chrome
include chrome::canary
include my-osx::dock::clear
dock-app { '/Applications/"Google Chrome".app': }
dock-app { '/Applications/"Google Chrome Canary".app': }
dock-app { '/Applications/Webstorm.app': }
dock-app { '/Applications/Utilities/Terminal.app': }
(Опять же, я действительно понятия не имею, что делаю , поэтому, пожалуйста, скажите мне лучший способ, если вы знаете об одном хаха.)
Кажется, это работает без ошибок, однако у меня есть несколько нерешенных вопросов:
dockutil
.Есть ли эквивалент __ dirname
в узле, где вы можете получить каталог текущего файла, в котором вы находитесь? webstorm
, где они будут установлены вместо жесткого программирования пути? dockutils
? Спасибо!
Тем не менее дал мне проходной отрицательный голос: Не могли бы вы оставить отзыв, чтобы я мог улучшить?
Меня не устраивает необходимость использования абсолютного пути для поиска скрипта dockutil.
Вы можете частично решить эту проблему, установив ресурс по умолчанию для вашего exec. В частности, вы можете указать путь. Возможно, установить что-то подобное?
Exec {
path => ['/opt/boxen/repo/script/', '/usr/sbin', '/usr/bin', '/sbin', '/bin']
}
Если вы создали пользовательский факт для сообщения каталога вашего dockutils
скрипта на удаленном хосте, вы можете переписать свою конфигурацию таким образом. Вы должны быть немного осторожны с этим. Удаленно возможно, что у вас может быть неверное / поврежденное значение факта.
define dock-app($app = $title) {
exec { "Add $app to dock":
command => "$::dockerpath/dockutil add",
}
}