[英]Puppet: How to execute a Exec resource if another Exec resource failed
只有在另一個 exec 資源失敗時才可以執行資源。
exec {'register_host':
unless => '/etc/is_host_exist.sh',
command => '/etc/script/register_host.sh -h hostname',
path => '/usr/bin:/usr/sbin/',
provider => 'shell',
notify => 'register_service',
}
exec {'register_service':
command => '/etc/script/register_service.sh -s svcname',
path => '/usr/bin:/usr/sbin/',
provider => 'shell',
}
所以,這里我想在 register_host 失敗時執行 register_service 。 有些我的依賴邏輯不起作用。
謝謝詹姆斯
Exec
資源不是冪等的,應盡可能避免使用。
話雖如此,讓我們看看你想要發生什么,用偽代碼:
register_host_success = register_host()
if (!register_host_success) {
register_service()
}
使用notify
所以,考慮到is_host_exist.sh
可以檢查register_host
是否失敗,那么:
subscribe => Exec['register_host']
,所以你要確保每當Exec['register_host']
被觸發時,你的Exec['register_service']
也會被觸發,Exec['register_service']
僅作為Exec['register_host']
的結果被調用Exec['register_host']
失敗時才需要運行Exec['register_service']
'] 。exec {'register_host':
unless => '/etc/is_host_exist.sh',
command => '/etc/script/register_host.sh -h hostname',
path => '/usr/bin:/usr/sbin/',
provider => 'shell',
}
exec {'register_service':
command => '/etc/script/register_service.sh -s svcname',
path => '/usr/bin:/usr/sbin/',
provider => 'shell',
unless => '/etc/is_host_exist.sh',
refresh => true,
subscribe => Exec['register_host']
}
假設您的腳本( *.sh
)將在成功時exit
exit 0
並在失敗時以non 0
退出。 notify
/ subscribe
可以互換使用,使用你認為最好的任何東西(更多文檔)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.