2013-01-23 17 views

risposta

12

È possibile utilizzare il comando linux sleep con exec e metterlo in esecuzione dopo il servizio web. qualcosa di simile:

exec { 'wait_for_my_web_service' : 
    require => Service["my_web_service"], 
    command => "sleep 10 && /run/my/command/to/get/results/from/the/web/service", 
    path => "/usr/bin:/bin", 
} 
1

La mia opinione su un'attesa solo locale + riprova configurabile.

define wait_for_port ($protocol = 'tcp', $retry = 10) { 
    $port = $title 
    exec { "wait-for-port${port}": 
    command => "until fuser ${port}/${protocol}; do i=\$[i+1]; [ \$i -gt ${retry} ] && break || sleep 1; done", 
    provider => 'shell', 
    } 
} 

wait_for_port { '3000': } 
Problemi correlati