Puppet 에이전트가 환경을 인식하지 못하는 이유는 무엇입니까?


1

다음 puppet.conf과 같은 동적 환경을 구성 했습니다.

 modulepath = $confdir/environments/$environment/modules
 manifest = $confdir/environments/$environment/site/manifests/site.pp
 environmentpath = /etc/puppetlabs/puppet/environments

environments디렉토리에는 manifest/site.pp파일 및 modules디렉토리 와 함께 환경이 있습니다 .

그러나 에이전트를 실행할 때 sudo puppet agent --test --environment=test 다음 오류가 발생합니다 ( production에이전트 puppet.conf파일 에서 환경을 설정하지 않았습니다 ).

Warning: Local environment: "test" doesn't match server specified node environment "production", switching agent to "production".

프로덕션 환경의 모듈에만 적용됩니다.

꼭두각시 엔터프라이즈 3.7.3을 사용하고 있습니다.

답변:


2

PE 버전을 사용하고 있었기 때문에 노드가 production환경 에 자동 분류되어 문제가되었습니다. agent-specified분류 섹션에서 환경을 변경 했습니다.


요점 : 이것은 PE가 Puppet Dashboard를 통해 수행하는 외부 노드 분류기를 사용하는 것과 관련이 있습니다. ENC를 사용하도록 오픈 소스 Puppet을 구성 할 수 있습니다. 동일한 제한 사항이 적용됩니다.
Felix Frank

포인터 주셔서 감사합니다. :) 나는 Node > Classification > Rules(Tab)에 가서 agent_specified_environment내가 만든 환경 이름 을 선택 하고 입력했습니다. 변경 사항을 커밋하십시오.
Technext

1

설명이 없지만 3.73이 있고 문제없이 환경을 사용합니다. 내 puppet.conf파일에는 다음이 포함되어 environmentpath=$confdir/environments있지만 manifest또는 modulepath항목 이 없습니다 .

모듈 및 매니페스트 경로는 environment.conf환경 디렉토리의 루트에 정의되어 있습니다.

manifest = manifests/
modulepath = modules:site

에이전트의 puppet.conf경우 노드에서 환경을 지정하도록 환경을 수정 했지만 매개 변수가 작동해야합니다 (제공 한 오류에 따라 사용할 환경을 에이전트에 명확하게 알려줍니다).


감사. 나는 전역 puppet.conf파일 에있는 것을 제외하고는 본질적으로 같은 일을했습니다 . 비슷한 설정이 OS 버전에서 작동하므로 PE 버전이 다른지 궁금합니다.
kaizenCoder

@aspiringCodeArtisan-아마도 차이가있을 수 있습니다. 오픈 소스 버전을 사용합니다.
ETL
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.