Я пытаюсь создать зависимость зависимости, так что профиль phpwebserver
запускается до профиля silex_api
.Правильно ли я использую марионетку?
роль:
class roles::dev{
include profiles::phpwebserver
include profiles::silex_api
Class ['profiles::phpwebserver'] ->
Class ['profiles::silex_api']
}
silex_api Профиль:
class profiles::silex_api{
class { '::silex' :
package_version => '1.6.2',
}
class {'::composer' :
command_name => 'composer.phar',
target_dir => '/var',
user => 'root'
}
contain ::composer
contain ::silex
}
phpwebserver Профиль:
class profiles::phpwebserver{
class { '::apache':
default_vhost => false,
conf_template => "apache/httpd.silex.conf.erb",
service_name => "httpd",
package_ensure => "2.2.15-39.el6",
service_enable => true,
service_ensure => "running",
}
class {'::apache::mod::php':
package_name => "php",
path => "${::apache::params::lib_path}/libphp54-php5.so",
}
contain ::apache
contain ::apache::mod::php
}
классы:
class silex{
class { 'silex::install': }
class { 'silex::service': }
}
The phpwebserver
профилей успешно бежит первым, если я явно содержит все классы внутри silex_api
, как показано ниже:
class profiles::silex_api{
class { '::silex' :
package_version => '1.6.2',
}
class {'::composer' :
command_name => 'composer.phar',
target_dir => '/var',
user => 'root'
}
contain ::composer
contain ::silex::install
contain ::silex::service
}
Теперь мне нужно contain
все подклассы, которые мне, не кажется правильным. Есть ли лучший способ сделать это или это стандартный способ обеспечения соответствия требованиям?
Спасибо, но я не вижу, как автоматическая привязка данных собирается решить проблему зависимости здесь? – kaizenCoder
RE: «если вы используете include, не объявляйте класс снова» - руководство для марионетки начинающего делает именно это: https://puppet.com/docs/puppet/5.3/bgtm.html#ordering – 7yl4r