problem z marionetkową nazwą hosta

10

Szukałem online i widzę, że kilka innych osób miało ten problem na innych listach / tablicach. Kiedy uruchamiam sudo puppetd --waitforcementert 60 - test po raz drugi po podpisaniu certyfikatu na serwerze głównym, pojawia się ten błąd -

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

Nie jestem pewien, czy rozumiem na czym polega problem i jak go naprawić. Dlatego pytam.

Ustawiam marionetkę na dwóch serwerach w mojej sieci LAN. Puppetmaster nosi nazwę „puppet”, a drugi serwer nosi nazwę „puppetclient”. Umieszczam marionetkę w / etc / hosts na puppetclient.

uruchomienie nazwy hosta -f wyświetli marionetkę i pupperclient na odpowiednich serwerach. Nie jestem pewien, co jeszcze spróbować. Czy ktoś ma jakiś wgląd?

kwanty
źródło

Odpowiedzi:

9

Wygląda na to, że certyfikat puppetmaster został utworzony, gdy gospodarz otrzymał nazwę inną niż „marionetka”. Utwórz ponownie certyfikat i powinieneś być dobry.

Nazwa zapisana w certyfikacie musi być zgodna z tym, co skonfigurowałeś (-aś) do połączenia z klientem. Na przykład jeśli skonfigurujesz klienta do łączenia się z „puppet.domain.com”, pojawi się błąd, jeśli certyfikat będzie miał nazwę „puppet” i odwrotnie.

diq
źródło
Przydarzyło mi się to kilka godzin temu. Potrzebna była w pełni kwalifikowana nazwa domeny.
Pete TerMaat
załatwienie .local na kliencie załatwiło sprawę. nawet jeśli nazwa hosta -f go nie pokazała. Dzięki!
1
Być może istnieje lepszy sposób, ale dla mnie zregenerowałem certyfikaty CA, rm -rf /var/lib/puppet/ssla następnie ponownie uruchomiłem kukiełka
Petera Sankauskasa
6

Jeśli chcesz używać DNS CNAME dla swojego puppetmaster, możesz uruchomić puppetmaster za pomocą:

puppetmaster --certname cname.domain.org

dzięki czemu puppetmaster będzie używać cname.domain.orgzamiast domyślnej w pełni kwalifikowanej nazwy domeny.

Jaskółka oknówka
źródło
2

Wydaje się, --certname cname.domain.orgże opcja flagi zrobiła dla mnie lewę (na Amazon EC2)

kwanty
źródło
1

możesz zapytać facter (facter fqdn), jaka jest nazwa hosta i sprawdzić, czy jest to zgodne z oczekiwaniami. Zobacz także (domyślnie) / var / lib / puppet / ssl / i zobacz, jak wyglądają certyfikaty, jeśli nie mają poprawnych nazw hostów, które mogą być twoim problemem. Ponieważ marionetka wykonuje całą komunikację przez HTTPS, jest dość wrażliwa na rozdzielczość i nazewnictwo hosta.

Kij
źródło
1

Przed zainstalowaniem Puppet na wyznaczonych klientach i serwerze sprawdź plik /etc/resolv.conf i sprawdź, czy pierwszy wpis domeny w wierszu „search” to domena, pod którą ma działać Puppet. Na przykład:

wyszukaj my.puppetdomain.com my.public.domain.com

serwer nazw 192.168.1.1 serwer nazw xxx.xxx.1.1

Podczas fazy instalacji Puppet serwer Puppet wygeneruje swoje certyfikaty na podstawie pierwszego wpisu wyszukiwania w pliku /etc/resolv.conf. Przekonałem się o tym na własnej skórze. Jeśli zobaczysz błędy związane z certyfikatem w dowolnym węźle marionetkowym, wykonaj następujące czynności:

1) Edytuj plik /etc/resolv.conf i sprawdź, czy pierwsza domena wymieniona w wierszu „search” odzwierciedla domenę, w której ma działać Puppet.

2) Odinstaluj marionetkę (pozostaw katalog / etc / puppet nietknięty).

3) rm -rf / var / lib / puppet

4) Ponownie zainstaluj Puppet (spowoduje to wygenerowanie nowego katalogu / var / lib / puppet).

5) Jeśli wykonujesz to na serwerze Puppet, uruchom / usr / sbin / puppetmasterd --mkusers (alternatywnie, uruchom / usr / local / sbin / puppetmasterd --mkusers ). Spowoduje to wygenerowanie wszystkich wymaganych plików w katalogu / var / lib / puppet, w tym nowych certyfikatów wewnętrznych przy użyciu prawidłowej nazwy domeny.

6) Jeśli wykonujesz to na kliencie Puppet, uruchom Puppet w trybie pełnym, z włączoną flagą --waitforceert : puppetd -server .puppetdomain.com --waitforceert 60 - test Ten krok wyśle ​​żądanie certyfikatu do serwera Puppet.

7) Na serwerze Puppet wypisz listę oczekujących certyfikatów:

puppetca --list

Powinieneś zobaczyć nazwę hosta klienta Puppet wysyłającego żądanie:

puppetclient1.puppetdomain.com

8) Na serwerze Puppet, podpisz certyfikat klienta Puppet, który znajduje się na liście:

puppetca - sign puppetclient1.puppetdomain.com

To koniec.

HTH ....


źródło
0

Czy zarówno kukiełka, jak i klient kukiełkowy rozwiązują się w systemie DNS? Jeśli nie, możesz edytować plik / etc / hosts, aby zmapować adresy IP i nazwy hostów. IIRC, powinieneś to zrobić tylko na kliencie.

slillibri
źródło