我可以在"傀儡应用"运行时指定 puppet 的根执行目录吗?



假设我在AWS中工作,并且有一个EBS卷连接到一个实例。该卷是根卷的副本,只要它是通过对另一个实例的根卷进行快照创建的。

我想在EBS卷上运行木偶,但不要将其挂载路径硬编码到我的木偶清单中。假设它安装在/tmp/new-root-vol。有没有任何方法可以在不在清单中指定的情况下针对该路径运行puppet-application?

换句话说,在运行时之前,我如何在不知道/tmp/new-root-vol命名空间的情况下获得这个清单片段来创建/tmp/new-root-vol/testfile

file {'testfile':
  path    => '/testfile',
  content => 'Hello, volume'
}

一种可能是chroot。这个特性请求表明,只要木偶可执行文件可以从新的根目录访问,它就可以工作。

我不知道有什么方法可以做到这一点。然而,您可以在您的site.pp中创建一个变量(或包含另一个类似constants.pp的清单),并使用一个变量:

site.pp

$root_dir = '/'
node default {
  include your_manifests
}

您提交

file {'testfile':
  path    => "${root_dir}testfile",
  content => 'Hello, volume'
}

您甚至可以更改每个节点的根目录。

最新更新