구성을 적용할 수 없을 때 Puppet에서 0이 아닌 종료 코드를 얻는 방법은 무엇입니까?

구성을 적용할 수 없을 때 Puppet에서 0이 아닌 종료 코드를 얻는 방법은 무엇입니까?

나는 다음 Puppet 구성을 시도했습니다.루트 비밀번호 비활성화:

class users {
  user { 'root':
    password => '*',
  }
}

하지만 신청 후 아무런 경고나 오류 메시지가 표시되지 않습니다.su -이전 비밀번호를 계속 사용할 수 있습니다 .그 이유는 디버그 출력을 검사한 후에야 명확해졌습니다.

# puppet apply --debug --modulepath modules manifests/host.pp
[...]
Debug: Failed to load library 'shadow' for feature 'libshadow'
[...]

와트. 나는 이 문제를 해결하는 방법을 알고 있지만 ( sudo pacman --sync --needed --refresh ruby-shadow), 그게 요점이 아닙니다.내 구성을 적용하지 못한 경우 Puppet이 충돌하고 굽도록 하려면 어떻게 해야 합니까?, 적어도 0이 아닌 종료 코드를 제공함으로써? --detailed-exitcodes도움이 안돼.

해결 방법: 다음은 실행할 때만 작동합니다.두 배- 처음 실행 시 user디렉터리 컴파일 시 해당 항목을 무시합니다.

class users {
  package { 'ruby-shadow':
    ensure => present,
  }

  user { 'root':
    password => '*',
    require => Package['ruby-shadow'],
  }
}

답변1

를 사용하면 사용 puppet apply --help가능한 모든 옵션을 볼 수 있습니다. 귀하의 관심 사항은 다음과 같습니다.

* --detailed-exitcodes:
  Provide transaction information via exit codes. If this is enabled, an exit
  code of '2' means there were changes, an exit code of '4' means there were
  failures during the transaction, and an exit code of '6' means there were both
  changes and failures.

귀하의 구체적인 경우:

# puppet apply --detailed-exitcodes --debug --modulepath modules manifests/host.pp

관련 정보