假设我想确保我的虚拟机具有devstack。只有先前没有执行过使用puppet命令才能运行命令
exec{ "openstack":
command => "git clone https://git.openstack.org/openstack-dev/devstack",
}
这是我为它编写的傀儡代码,它第一次正常工作。现在我想检查一下。我只想在它尚未完成的情况下克隆存储库。如何做到这一点
假设我想确保我的虚拟机具有devstack。只有先前没有执行过使用puppet命令才能运行命令
exec{ "openstack":
command => "git clone https://git.openstack.org/openstack-dev/devstack",
}
这是我为它编写的傀儡代码,它第一次正常工作。现在我想检查一下。我只想在它尚未完成的情况下克隆存储库。如何做到这一点
你说
exec{ 'openstack':
command => 'git clone https://git.openstack.org/openstack-dev/devstack',
cwd => '/path/to/somewhere',
creates => '/path/to/somewhere/devstack',
}
现在,如果目录/path/to/somewhere/devstack
存在克隆命令将不会运行。
exec { "openstack":
command => 'git clone https://git.openstack.org/openstack-dev/devstack /path/to/devstack",
unless => 'test -d /path/to/devstack'
}
它是一个非常hacky的方式来处理这个。你应该看看vcsrepo木偶模块https://github.com/puppetlabs/puppetlabs-vcsrepo
我总是忘记'创造',但是,然后再次,我不经常使用exec或创建文件。 – ptierno
非常感谢亚历克斯! –
你也可以在'git'上使用'-C'来移除'cwd'属性。这是克隆到所需目录的两个答案中唯一的一个。 –