Дать псевдоним для файла вроде работает. В качестве примера, файл, имя которого "tomcat_dir" может быть использован для следующих шагов с "require => File [" tomcat_dir "]":
file {"tomcat_dir":
ensure => directory,
path => "/usr/local/tomcat",
mode => "755",
owner => "tomcat",
group => "65534",
recurse => true,
require => [ Exec["tomcat_unzip"] ],
}
Но если я сделаю это:
file { [ "/usr/local/tomcat", "/usr/local/tomcat/dir1", "/usr/local/tomcat/dir2", "/usr/local/tomcat/dir3", "/usr/local/tomcat/dir4"]:
ensure => directory,
mode => "755",
owner => "tomcat",
group => "65534",
require => [ Exec["tomcat_untar"] ],
}
Как я мог сказать, что Exec ["test_unzip"] требует "файл {[" / usr / local / tomcat / dir1 "," / usr / local / tomcat / dir2 "," / usr / local / tomcat / dir3 "," / usr / local / tomcat / dir4 "]" без копирования / вставки всех путей?
exec {"test_unzip":
cwd => "/usr/local/tomcat/dir1",
command => "/usr/bin/unzip /tmp/${tomcat_zip_name}",
unless => "test -f /usr/local/jboss${version}/server/boursorama-${application}/version-${container_version}",
require => [ !!!!!!!!!!!!!!! ],
}
Потому что, если я изменяю некоторые пути, я должен изменить все "требования", которые я использую в своем классе!
Спасибо!
Сделай это:
file { [ "/usr/local/tomcat", "/usr/local/tomcat/dir1", "/usr/local/tomcat/dir2", "/usr/local/tomcat/dir3", "/usr/local/tomcat/dir4"]:
ensure => directory,
mode => "755",
owner => "tomcat",
group => "65534",
require => Exec["tomcat_untar"],
before => Exec['test_unzip'],
}
Чтобы тебе не пришлось менять test_unzip
.
Что ж, чтобы сохранить ту же структуру, вы можете объявить список каталогов как переменную, а затем объявить и потребовать с этой переменной.
Но это звучит очень беспорядочно - почему бы не создать родительский каталог (/usr/local/tomcat
) требуются подкаталоги (и определяют их массово), затем либо notify
в exec
, или иметь exec
подписаться на родительский каталог (или потребовать его)?
В вашем распоряжении множество инструментов на языке для создания необходимого вам потока процессов и структуры зависимостей, и грубая сила со списком может быть не лучшим решением для вас.
Если для ресурса требуется несколько других ресурсов, вы должны объявить это требование. Нет никакого способа обойти это.
Однако в вашем случае я не понимаю, почему это exec
вы указали требует не более /usr/local/tomcat/dir1
.