使用相对路径的木偶复制文件
问题描述:
我想用puppet和vagrant编写代码,并且无法找到如何将文件从包含清单的目录复制到目标服务器。使用相对路径的木偶复制文件
在ansible我用这个:
- name: Copy public key
copy:
src: ./myKey
dest: /home/user/.ssh/authorized_keys
我想这样做傀儡
- file { 'myKey':
path => '/home/user/.ssh/authorized_keys',
ensure => file,
source => ./myKey }
我明白了如何使用绝对路径,使这项工作,但想用相对路径,因为我的脚本将被一个git克隆拉下来,并在另一台将有不同目录设置的机器上运行。
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.1.1", auto_config: true
config.vm.box = "puppetlabs/centos-7.2-64-puppet-enterprise"
config.vm.provision "puppet" do |puppet|
puppet.manifest_file = "srv_site.pp"
end
end
答
为了在木偶复制文件,你需要把文件中的模块路径下的文件。所以,如果你的模块名为MyModule的文件应该在这里:
./mymodule/files/mykey
和文件由
file { 'mykey':
ensure => file,
path => '/home/user/.ssh/authorized_keys',
source => "puppet:///modules/${module_name}/mykey"
}
你不能傀儡师源指向不同的地方复制的模块中,除非您在pupper master上设置了一个文件服务器挂载点,请参阅https://docs.puppet.com/puppet/4.10/file_serving.html。 但源码可以指向其他地方,请参阅https://docs.puppet.com/puppet/4.10/types/file.html#file-attribute-source。
主人还是没有主人? –
我使用vagrant来提出它,所以我认为主人?我使用的是: Vagrant.configure(“2”)do | config | config.vm.provision“傀儡” 结束 我会更好使用这个吗? puppet.module_path =“./”还是要继续查看模块文件夹? 对不起,如果这是明显的通过测试,我会在星期一进行测试。 有了puppet -apply我知道有-module选项可以指定,但我不知道如何做到这一点与流浪。 – lime
请发布Vagrantfile的Puppet provisioning部分让我们知道设置。 –