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에 배포, 실패하지 않으면 휴면 배포"와 같은 작업을 수행할 수 있습니다.