假設我想確保我的虛擬機具有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'屬性。這是克隆到所需目錄的兩個答案中唯一的一個。 –