꼭두각시 파일이 존재하지 않을 때만 실행


11

파일 (/ usr / local / bin / papply)이 존재하지 않을 때만 다음 명령을 실행하고 싶습니다. 거기에 무엇을 넣을 지 확실하지 않습니다.

    exec { 'git add url':
        command =>'git remote add origin https://github.com/testing/puppet.git',
        require => Exec['git init'],
        cwd => '/home/vagrant/django',
        user => 'vagrant',
        onlyif => "not sure what to put here"
    }

답변:


22

이것을 시도 했습니까?

onlyif => "test ! -f /usr/local/bin/papply"

꼭두각시가 '!'을 사용할 수 있는지 확실하지 않습니다. 캐릭터

아마도 더 나은 성애 :

creates => '/usr/local/bin/papply'

명령이 실제로 파일을 생성하지 않는다는 사실이 마음에 들지 않더라도


작동하지 않으면이 오류 메시지가 나타납니다. 평가할 수 없습니다 : '!'명령을 찾을 수 없습니다
qinking126

그리고 이것은 : onlyif => "test! -f / usr / local / bin / papply"
sebastien.prudhomme

creates => '/ usr / local / bin / papply'작품, 감사합니다. 업데이트를 테스트하겠습니다. htat 하나가 작동하는지 확인하십시오.
qinking126

1
onlyif => "test! -f / usr / local / bin / papply"도 작동합니다. 감사합니다.
qinking126

7

당신이 리눅스에 있다면

unless => 'ls /somefile'

파일이 존재하지 않으면 ls는 0이 아닌 리턴 코드와 함께 리턴되며 테스트가 0이 아닌 리턴 코드를 리턴하는 경우에만 실행중인 파일을 실행하도록 허용하지 않는 한.


1

리눅스와 꼭두각시> 3.8에서 :

exec { 'test':
   command => '/bin/echo HI',
   unless  => 'test -f /a/file.txt',
}

/a/file.txt존재 하는 경우 exec가 실행되지 않습니다 .


0

당신은 사용을 고려 할 수 있습니다 생성 이 목적을 위해 존재하는 :

exec { 'git add url':
  command => 'git remote add origin https://github.com/testing/puppet.git',
  creates => '/usr/local/bin/papply'
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.