꼭두각시 호스트 이름 문제


10

온라인으로 검색했는데 다른 사람들이 다른 목록 / 보드에서이 문제를 겪고있는 것을 확인했습니다. 마스터 서버에서 인증서에 서명 한 후 두 번째로 sudo puppetd --waitforcert 60 --test를 실행하면이 오류가 발생합니다.

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate

문제 또는 해결 방법을 잘 모르겠습니다. 그래서 내가 묻는 이유입니다.

LAN의 두 서버에서 퍼펫을 설정하고 있습니다. puppetmaster의 이름은 'puppet'이고 다른 서버의 이름은 'puppetclient'입니다. 꼭두각시를 puppetclient의 / etc / hosts에 넣었습니다.

hostname -f를 실행하면 해당 서버에 꼭두각시와 퍼퍼 클라이언트가 표시됩니다. 다른 무엇을 시도 해야할지 모르겠습니다. 누구든지 통찰력이 있습니까?

답변:


9

호스트 이름이 "puppet"이 아닌 다른 이름으로 puppetmaster 인증서가 생성 된 것 같습니다. 인증서를 다시 작성하면 좋을 것입니다.

인증서에 저장된 이름은 클라이언트가 (정확하게) 연결하도록 구성한 이름과 일치해야합니다. 예를 들어 "puppet.domain.com"에 연결하도록 클라이언트를 구성하면 인증서의 이름이 "puppet"인 경우 오류가 발생합니다.


몇 시간 전에 이런 일이 있었어요. 정규화 된 도메인 이름이 필요합니다.
Pete TerMaat

클라이언트에 .local을 추가하면 트릭을 수행했습니다. 비록 hostname -f가 보여주지 않았더라도. 감사!

1
아마도 더 좋은 방법이 rm -rf /var/lib/puppet/ssl
있을지 모르지만 필자는 필립스 마스터를

6

꼭두각시 마스터에 DNS CNAME을 사용하려면 다음을 사용하여 꼭두각시 마스터를 시작할 수 있습니다.

puppetmaster --certname cname.domain.org

cname.domain.org기본 정규화 된 도메인 이름 대신 puppetmaster를 사용하게 됩니다.


2

--certname cname.domain.org플래그 옵션 (아마존 EC2에) 나를 위해 트릭을 할 것 같았다


1

호스트 이름이 무엇인지 facter (fact fqdn)에게 물어보고 그것이 예상 한 것과 일치하는지 확인할 수 있습니다. 또한 (기본적으로) / var / lib / puppet / ssl /을 살펴보고 문제가 될 수있는 올바른 호스트 이름이없는 경우 인증서의 모양을 확인하십시오. 꼭두각시는 HTTPS를 통한 모든 통신을 수행하므로 해상도 및 호스트 이름 지정에 상당히 민감합니다.


1

지정된 클라이언트 및 서버에 Puppet을 설치하기 전에 /etc/resolv.conf 파일을 확인하고 "search"행의 첫 번째 도메인 항목이 Puppet을 실행할 도메인인지 확인하십시오. 예를 들면 다음과 같습니다.

my.puppetdomain.com my.public.domain.com을 검색하십시오.

네임 서버 192.168.1.1 네임 서버 xxx.xxx.1.1

Puppet 설치 단계에서 Puppet 서버는 /etc/resolv.conf의 첫 번째 검색 항목을 기반으로 인증서를 생성합니다. 나는 이것을 어려운 길로 발견했다. 퍼펫 노드에 인증서 관련 오류가 표시되면 다음 단계를 수행하십시오.

1) /etc/resolv.conf를 편집하고 "search"행에 나열된 첫 번째 도메인이 Puppet을 실행할 도메인을 반영하는지 확인하십시오.

2) 퍼펫 제거 (/ etc / puppet 디렉토리는 그대로 두십시오).

3) rm -rf / var / lib / puppet

4) Puppet을 다시 설치하십시오 (이는 새로운 / var / lib / puppet 디렉토리를 생성합니다).

5) Puppet 서버에서이를 수행하는 경우 / usr / sbin / puppetmasterd --mkusers 를 실행하십시오 (또는 / usr / local / sbin / puppetmasterd --mkusers를 실행하십시오 ). 그러면 올바른 도메인 이름을 사용하는 새 내부 인증서를 포함하여 / var / lib / puppet 내에 모든 필수 파일이 생성됩니다.

6) Puppet 클라이언트에서이를 수행하는 경우 --waitforcert 플래그를 사용하여 상세 모드에서 Puppet을 시작 하십시오 . puppetd -server .puppetdomain.com --waitforcert 60 --test 이 단계는 Puppet 서버에 인증서 요청을 보냅니다.

7) Puppet 서버에서 대기중인 인증서를 나열하십시오.

꼭두각시-목록

요청하는 Puppet 클라이언트의 호스트 이름이 표시되어야합니다.

puppetclient1.puppetdomain.com

8) Puppet 서버에서 방금 나열된 Puppet 클라이언트의 인증서에 서명하십시오.

puppetca --sign puppetclient1.puppetdomain.com

그런 다음 끝났습니다.

HTH ....


0

꼭두각시와 꼭두각시 클라이언트는 모두 DNS에서 확인됩니까? 그렇지 않은 경우 / etc / hosts 파일을 편집하여 IP 및 호스트 이름을 맵핑 할 수 있습니다. IIRC, 클라이언트에서만이 작업을 수행하면됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.