[server] 퍼펫 클라이언트를 새로운 퍼펫 마스터로 마이그레이션

기존 퍼펫 클라이언트를 마이그레이션하여 새 퍼펫 마스터 서버를 가리 키려면 어떻게해야합니까? 오히려 수동으로 각 클라이언트 상자로 이동하지 않고 새 인증서를 생성하고 싶습니다.

/ etc / puppet 및 / var / lib / puppet의 모든 파일을 새 서버로 재 동기화하면 인증서 오류가 발생합니다.

/etc/init.d/puppetmaster start
* Starting puppet master
Could not run: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key

/var/lib/ssl/certs/var/lib/ssl/private_key파일을에서 old_hostname로 복사하여 문제를 해결할 수있었습니다. new_hostname기본적으로 꼭두각시 클라이언트를 새로운 꼭두각시 마스터마이그레이션하는 데 제안 된 것입니다
(오래된 꼭두각시 마스터 서버가 사라졌으며 백업 만 사용)

불행히도 내 고객은 여전히 ​​부족한 것이 있다는 것을 알고 다음 오류를 알려줍니다.

sudo puppetd --test --server newservername.example.net --noop
info: Retrieving plugin
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': hostname was not match with the server certificate
err: /File[/var/lib/puppet/lib]: Could not evaluate: hostname was not match with the server certificate Could not retrieve file metadata for puppet://newservername.example.net/plugins: hostname was not match with the server certificate
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

따라서 클라이언트 인증서는 여전히 연결된 호스트 이름을 알고 있으며 스위치에 만족하지 않습니다.

퍼펫을 사용하여 (레거시 꼭두각시 마스터를 가리키는) 새 인증서를 배포하거나 서명 프로세스를 자동화하는 방법이 있습니까?

요약 : 두 가지 해결책이 제시되었습니다. 1) autosign마스터를 켜고 인증을 완전히 건너 뛰거나 2) 인증서가 마스터의 호스트 이름에 바인드되므로 이전 CNAME이 새 마스터를 가리 키도록 설정합니다. autosign은 보안을 끄는 것처럼 느꼈기 때문에 (제한된 시간 이었지만) # 2를 선택했습니다.



답변

두 퍼펫 마스터를 일정 시간 동안 유지하고 한 번에 조금씩 클라이언트를 마이그레이션하려고하십니까?

그렇다면 각 클라이언트 시스템에 관계없이 중단됩니다. 새 마스터를 가리킬 것인지 아니면 호스트 파일 항목을 추가 할 것인지 등을 지정합니다. 이 경우 새 마스터를 새로 시작하고 각 클라이언트에 다시 서명하면됩니다 (유효성 문제를 해결하려면 호스트 파일 해킹보다 낫습니다).

그렇지 않은 경우 (이전 서버를 중단하고 모든 것을 한 번에 축소하려는 경우) 이전 서버의 호스트 이름을 새 서버로 가져 가십시오. 클라이언트가 이전 이름 ​​(인증서에있는 이름)으로 새 서버에 연결하는 경우 인증서가 유효한 것으로 인식됩니다.


답변

$ssldir기존 puppetmaster를 사용하여 새로운 puppetmaster에서 사용할 수 있습니다 .

그 외에는 다음과 같은 스크립트를 배포 할 수 있어야합니다.

  • (클라이언트 스크립트와 관련이 없음 : 새 퍼펫 서버에서 자동 서명을 활성화 할 수 있음)
  • 나중에 조금 실행
  • 꼭두각시 클라이언트 중지
  • 클라이언트 ssldir을 정리하십시오
  • 새 서버를 가리 키도록 클라이언트에서 puppet.conf를 수정하십시오.
  • 끝없는 재구성 루프가 발생하지 않도록 잠금 파일 생성
  • 꼭두각시 다시 시작

추악하지만 마이그레이션 모듈이 이전 서버 에만 있고 새 모듈 에만 마이그레이션 모듈없는지 확인 하는 한 번의 일이며 마술을해야합니다 …


답변