资源订购同步问题“ - >”不起作用?

时间:2014-02-12 20:12:47

标签: puppet

我遇到了非常奇怪的行为,这违背了我所学到的,教程说等等。所以如果有人能解释为什么会这样,我会很高兴。 我有一个角色模块,它由配置文件的组合(角色配置文件模式)组成。我的角色包括:

   class role::lab_prg_c2_dn inherits lab_prg_c2 {
    class { 'profile::cluster_data_node':
      namenode_fqdn          => $role::lab_prg_c2::namenode_fqdn,
      secondarynamenode_fqdn => $role::lab_prg_c2::secondarynamenode_fqdn,          
  } 
  ->
  class{'bigdatasolution':}
}

第一类安装技术,第二类安装我们的基于技术构建的组件和项目。因此,需要首先安装技术,这就是“ - >”的原因依赖。然而,在我看来,这是行不通的。由于类'bigdatasolution'的组件安装在类profile :: cluster_data_node完成之前的某处。 我试着用require => Class ['profile :: cluster_data_node']但这没有任何区别! class {'bigdatasolution':}:

的内容
   class bigdatasolution {
  $hdfs_default_conf  = '/usr/local/hadoop.hdfs.conf'
  $hbase_default_conf = '/usr/local/hadoop.hbase.conf'

  include symlinks
  include bdjar
}

符号链接 - 为类profile :: cluster_data_node中安装的配置创建符号链接,并且不直接管理 - 它将在实际指定的包安装时显示。

bdjar - 将我们的jar添加到技术库中,内容如下:

class bigdatasolution::bdjar {
  file { "/usr/lib/hadoop/lib/bigdata-properties.jar":
    ensure => present,
    mode   => 0644,
    group  => 'root',
    owner  => 'root',
    source => "puppet:///modules/bigdatasolution/bigdata-properties.jar"
  }
}

我甚至试图把require => “techcalClass”在这里,但这也无济于事。

有人可以帮我理解什么是错的,应该如何妥善解决? 我使用木偶3和命令是明确指定的 - 因此木偶不应该发生任意排序。

由于

1 个答案:

答案 0 :(得分:0)

如果您的' profile :: cluster_data_node'课程包括'其他类/模块,他们将没有依赖于' bigdatasolution'类。

我看到你确实包含了符号链接和bdjar。基本上你想要在木偶中订购的每一个订单,都需要明确写出来。

在这里你应该用require替换include语句,这样类cluster_data_node将需要完成其他两个模块才能完成。包含是一种非常迷失的方式来输入木偶中的东西,我认为最好只是避免它,而是使用明确的require语句。

TL; DR:包含的模块没有传递顺序;所需的模块。