【问题标题】:Boxen project manifest isn't resolving $repo_dirBoxen 项目清单未解析 $repo_dir
【发布时间】:2014-03-03 21:09:32
【问题描述】:

我正在尝试使用 Boxen 来设置我们的开发环境。我们有许多我们想要拉下并运行脚本以开始的存储库。我们达成了一个约定:repos 有一个 scripts/ 目录和一个需要运行的 bootstrap 脚本。

使用exec 命令似乎可以做到这一点。但是为了告诉它要运行什么,我必须访问 repo 的目录。其他脚本使用$repo_dir${boxen::config:srcdir}/${name}。我已经尝试了其中的每一个,以及许多不同风格的exec,但都无济于事。

清单

class projects::hero {

  include ruby

  boxen::project { 'hero':
    ruby          => '2.0.0',
    source        => 'myorg/hero'
  }
  ->
  Exec {
    command       => '$repo_dir/scripts/echo'
  }
  ->
  notify {'hero is running at $srcdir':}
}

这比规定的目标要简单。脚本需要在它们所在的目录中运行。所以我的第一个(希望是最终的)清单在exec 步骤中会有这样的内容:

->
exec { 'running bootstrap on hero':
  command         => '$repo_dir/scripts/bootstrap',
  cwd             => '$repo_dir/scripts'
}

脚本

目前,scripts/echo 非常简单:

#!/bin/bash
echo "Echo File!"
touch `date`

由于实际上不会看到输出,因此我们正在制作一个带有日期的文件,以便我们可以观察此副作用并知道脚本实际运行了。

调用boxen

我只是直接从manifests目录调用这个项目:

Chris:manifests chris$ boxen hero

输出

Warning: Scope(Class[Boxen::Environment]): Setting up 'hero'. This can be made permanent by having 'include projects::hero' in your personal manifest.
Error: Could not find resource 'command => $repo_dir/scripts/echo' for relationship from 'Boxen::Project[hero]' on node chris.local
Error: Could not find resource 'command => $repo_dir/scripts/echo' for relationship from 'Boxen::Project[hero]' on node chris.local

如果我改用${boxen::config::srcdir},这也是正确的。查看其他示例,这些变量被使用并且似乎有效。我叫错了吗?我应该使用其他变量吗?

【问题讨论】:

    标签: puppet boxen


    【解决方案1】:

    我注意到您的清单中有两个错误:

    ->
    Exec {
        command       => '$repo_dir/scripts/echo'
    }
    ->
    

    首先是您将 exec 的第一个字母大写。在 puppet 语言中,这意味着您正在为所有后续 exec 资源定义指定默认值 (docs)。这不是资源定义本身,因此无法应用资源排序,因此出现错误。

    另一个错误是将单引号与变量结合使用。单引号字符串被解释为文字。换句话说,'$repo_dir' 按字面意思解释为$repo_dir,而"$repo_dir" 则解释为变量$repo_dir (docs) 的内容。

    希望这会有所帮助,

    祝你好运

    【讨论】:

      猜你喜欢
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多