仅在先前尚未执行的情况下使用puppet运行命令

时间:2016-06-07 06:36:06

标签: puppet

假设我想确保我的虚拟机已经开发了它。

exec{ "openstack":
  command => "git clone https://git.openstack.org/openstack-dev/devstack",
}

这是我为它写的木偶代码,它第一次正常工作。现在我想做个检查。我想只在尚未完成的情况下克隆存储库。怎么做

2 个答案:

答案 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