假设我想确保我的虚拟机已经开发了它。
exec{ "openstack":
command => "git clone https://git.openstack.org/openstack-dev/devstack",
}
这是我为它写的木偶代码,它第一次正常工作。现在我想做个检查。我想只在尚未完成的情况下克隆存储库。怎么做
答案 0 :(得分:5)
你说
exec { 'openstack':
command => 'git clone https://git.openstack.org/openstack-dev/devstack',
creates => '/path/to/somewhere/devstack',
cwd => '/path/to/somewhere',
path => '/usr/bin',
}
现在,如果目录/path/to/somewhere/devstack
存在,则克隆命令将不会运行。
答案 1 :(得分:4)
exec { "openstack":
command => 'git clone https://git.openstack.org/openstack-dev/devstack /path/to/devstack",
unless => 'test -d /path/to/devstack'
}
这是一个非常黑客的处理方式。你应该看一下vcsrepo puppet模块https://github.com/puppetlabs/puppetlabs-vcsrepo