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


8

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

/ 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를 선택했습니다.

답변:


3

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

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

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


예, 각 클라이언트의 재 서명 을 자동화 할 수 있는지에 대한 질문이있었습니다 . 인증서가 클라이언트가 특정 서버에 도달하는 데 사용하는 호스트 이름에 바인딩되어 있음을 지적함으로써 답을 얻었으므로 호스트 이름을 재사용하면 인증서를 재사용 할 수 있습니다. 감사!
mrisher

간단 puppetca --sign --all하게 클라이언트 인증서를 트릭 할 수 있습니다. 서버 하나는 불일치 오류와 관련된 문제를 제공하는 서버입니다.
Shane Madden

3

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

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

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

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


Hi : autosign트릭은 좋은 것이지만 위험 해 보입니다. 이것이 없으면이 솔루션이 실제로 클라이언트 인증서 불일치 문제를 해결합니까?
mrisher

자동 서명은 꼭두각시 마스터에 새로운 수천 명의 고객을 처리하지 않아도되는 게으른 방법입니다. 새로운 마스터로 마이그레이션 한 고객이 서명하지 않으면 아무런 작업도 수행하지 않는다는 점이 다릅니다.
Martin M.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.