2017-05-03 2 views
3

Saltsack에서 동일한 작업을 수행 할 수 있습니까? (powershell을 사용하지 않은 경우)?Saltstack에서 파일 표시가 대기 중임

installation: 
cmd.run: 
- name: ./installation_script 

wait for installation: 
cmd.run: 
- name: powershell -command "Start-Sleep 10" 
- unless: powershell -command "Test-Path @('/path/to/file/to/appear')" 
+0

https://docs.saltstack.com/en/develop/ref/states/requisites.html#retrying-states

다니엘을 테스트 경로를 계속 실행됩니다 정확히 무엇을 하려는지 확실하지 않습니다. 설치가 완료된 후에 만 ​​명령을 실행 하시겠습니까? 또는 파일이있는 경우에만 명령을 실행 하시겠습니까? – alexK

+0

@alexK이 설치는 파일을 생성합니다. 이것은 작업이 완료된 마커입니다. 그래서 나는 파일이 존재할 때에 만 앞서 가고 싶다. – Anatoly

+0

그렇다면 OS 명령을 실행하는 것을 포함하지 않을 실제 방법이 없습니다. 어쩌면 단지 상태를 더 플랫폼에 무관심하게 만들려면 파이썬 상태 공급자를 사용할 수 있습니다. [here] (http://stackoverflow.com/a/21859316/1212203) – alexK

답변

6

불행히도 소금의 현재 버전에서는 더 좋은 방법이 없습니다. 그러나 retry 논리가 다음 릴리스 질소의 상태에 추가되었습니다.

내가이 릴리스에서 수행하는 방식은 다음과 같습니다.

installation: 
    cmd.run: 
    - name: ./installation_script 

wait for installation: 
    cmd.run: 
    - name: Test-Path @('/path/to/file/to/appear') 
    - retry: 
     - attempts: 15 
     - interval: 10 
     - until: True 
    - shell: powershell 

그리고이은 (등가가 PowerShell에서 무엇이든 또는) 0 종료 코드와 함께 종료 될 때까지 난

관련 문제