0

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

我想针对我的 EBS 卷运行 puppet,但不将其安装路径硬编码到我的 puppet 清单中。假设它安装在/tmp/new-root-vol. 有没有办法在清单本身中不指定它的情况下针对该路径运行 puppet apply ?

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

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

一种可能是chroot。此功能请求表明它可能工作,只要可从新根访问 puppet 可执行文件。

4

1 回答 1

0

我不知道你有什么办法可以做到这一点。但是,您可以在 site.pp 中创建一个变量(或包含另一个清单,如 constants.pp)并使用一个变量:

网站.pp

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

你归档

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

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

于 2013-08-02T02:42:16.463 回答