假设我在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'
}
您甚至可以更改每个节点的根目录。