꼭두각시 - 환경별로 작업을 제한합니까?

꼭두각시 - 환경별로 작업을 제한합니까?

Puppet Agent 명령을 어떻게 제한할 수 있나요? 꼭두각시 에이전트가 프로덕션 브랜치에 대해 아무 것도 없이 실행되도록 허용하면 됩니다.

  • 차단하다puppet agent --test --environment devbranch
  • 허용하다puppet agent --test --environment devbranch --noop
  • 허용하다puppet agent --test --environment production

나는 auth.conf의 어떤 종류의 마법이 이 문제를 처리할 수 있어야 한다고 생각하지만 나는 그렇게 할 만큼 익숙하지 않습니다.

답변1

@Zoredache 덕분에 나는 이 빌드를 내가 필요한 방식으로 얻을 수 있었습니다.

저는 [main] 섹션을 사용하여 브랜치를 동적으로 생성 및 관리하고 [production] 섹션을 사용하여 noop 설정을 재정의합니다. [에이전트]에서도 수행할 수 있다고 확신하지만 이미 여기서 시작했습니다.

[main]
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    confdir = /puppet/$environment
    vardir = /puppet/.$environment-var
    ssldir=/etc/puppet/ssl
    environment = production
    server = puppet.domain.org
    pluginsync = true
    noop = true
    # Disable running all branches by default

[production]
    noop = false

편집: 너무 빨리 말한 것 같습니다. 멍청이가 피를 흘리고 있습니다. 위의 구문이 옳았지만 내가 살펴본 캐비아 중 하나는 이 작업을 허용하지 않습니다.https://puppet.com/docs/puppet/latest/env_environments.html

.. 환경에는 몇 가지 제한 사항이 있으며, 대부분은 디자인 선택이 아닌 알려진 버그 또는 구현의 모호함입니다.

Puppet은 환경 구성 블록에서 modulepath, Manifest, Manifestdir 및 templatedir 설정만 읽습니다.; 이러한 블록의 다른 설정은 [마스터] 또는 [메인] 블록의 설정을 위해 무시됩니다. (이슈 7497)

답변2

그렇게 할 수는 없습니다. 명령줄에 액세스할 수 있는 사람은 거의 모든 옵션을 시행할 수 있습니다.

내가 권장하는 환경을 누가 배포할 수 있는지 제어하려면MCollective인형을 실행하기 위해. 거기에서 매우 상세한 ACL을 만들 수 있으며 여러 노드에서 꼭두각시를 조정하고 "2개의 머신에 배포, 실패하지 않으면 다음 10에 배포, 실패하지 않으면 휴면 배포"와 같은 작업을 수행할 수 있습니다.

관련 정보