执行简单命令非常简单。但是,如果命令是脚本块而不是单行代码,那么写入的最佳方式是什么,例如:
History
我能想到的几种方法是:
还有其他选择吗?
答案 0 :(得分:4)
如果您确实想将其写为脚本块,我通常会按照您描述的方式进行编写:
exec { 'Multi line exec':
command => "source foo.sh
echo 'bar'
touch /var/tmp/baz
",
path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin',
provider => 'shell',
}
一般来说,我建议不要这样做,因为它会因为逃避事情而变得有点复杂(以及$
变量和实际shell $
变量的木偶使用之间的差异......
根据脚本的复杂程度,如果您想使用Puppet以外的工具运行它,我通常会将其创建为具有file
类型的磁盘文件,然后具有一个exec运行脚本。
或者甚至更好,将shell部分拆分为具有依赖关系的独立exec资源,除非参数。