PowerFlex 3.6 — brak certyfikatu puppet dla bramki PowerFlex w systemie device_config
Summary: W tym artykule wyjaśniono, jak zidentyfikować i rozwiązać problemy spowodowane brakiem certyfikatu puppet-cert dla bramki PowerFlex w tabeli device_config w bazie danych.
Symptoms
-
Czynności związane z serwisem, takie jak aktualizacja RCM/IC, wchodzenie lub wychodzenie z trybu serwisowego itp. zakończy się niepowodzeniem.
-
deployment.log zawiera podobny do poniższego błędu.
-
Błąd interfejsu REST API VXOS napotkany w post_request: Niezdefiniowana metoda '[]' dla nil:NilClass
-
Dwie różne nazwy bramki PowerFlex są wymienione w sekcji zasobów w programie PowerFlex Manager.
Przykład:

Cause
Sposób, w jaki PFxM pobiera informacje o konfiguracji urządzenia w wersji 3.7.x i nowszych, został zmieniony w celu użycia wpisów bazy danych, które są kluczowane poza nazwą certyfikatu puppet.
Niektóre operacje spowodowały zmianę zgłoszonej nazwy bramki w PFxM. Albo brama została ponownie zainstalowana z inną nazwą hosta, albo certyfikat SSL został zmieniony.
Tabela Baza danych zawierała tylko wpis dla bieżącej nazwy bramy PowerFlex, ale usługi widzą starą nazwę bramy PowerFlex.
Resolution
Weryfikacji:
1) Przejdź do identyfikatora zadania w /opt/Dell/ASM/deployments/Job-xxx<>, w którym operacje związane z usługą dla węzła zakończyły się niepowodzeniem.
Przykład: cd /opt/Dell/ASM/deployments/Job-xxx<
>
2) Uruchom poniższe polecenie, aby określić, którego certyfikatu marionetki próbuje użyć usługa.
cat deployment.json|grep -i cert|grep scaleio
Przykład: [delladmin@pfxm-jade Job-913d3f1a-b7cd-4fe9-a4b5-2085d8034d17-0-0]$ cat deployment.json|grep -i cert|grep scaleio.
"puppetCertName": "scaleio-sio_gw",
"puppetCertName": "scaleio-sio_gw",
[delladmin@pfxm-jade Job-913d3f1a-b7cd-4fe9-a4b5-2085d8034d17-0-0]$
3) Połącz się z bazą danych asm_dev i sprawdź, czy istnieją nazwy certyfikatów bramy scaleIO.
psql -U orion asm_dev
asm_dev=> wybierz nazwę certyfikatu z device_config, gdzie nazwa_certyfikatu np. 'scaleio-%';
Przykład:
asm_dev=> wybierz nazwę certyfikatu z device_config, gdzie nazwa_certyfikatu, np. 'scaleio-%';
CertName
----------------------
scaleIO-powerflex_gw
(1 wiersz)
4) Upewnij się, że w bazie danych brakuje certyfikatu puppet, który zauważyliśmy w pliku deployment.jason. W tym przykładzie jest to "scaleio-sio_gw" i nie ma go w bazie danych.
Wykonaj poniższe czynności tylko wtedy, gdy krok 4 jest prawdziwy.
1) Wykonaj migawkę maszyny wirtualnej PowerFlex Manager.
2) Uruchom poniższe zapytanie i zanotuj wartości pól (nazwa certyfikatu, host, dostawca, schemat credential_id) dla bieżącej bramy W tym przykładzie bieżąca brama to scaleio-powerflex_gw.
asm_dev=> select * z device_config były nazwami certname, takimi jak 'scaleio-%';
Identyfikator | certname | gospodarz | port | ścieżka | Dostawca | Program | credential_id | os_credential_id | svm_os_credential_id | os_type | svm_os_connect_ip | svm_os_type | update_time | svm_name | os_connect_ip
----+-------------------------+-----------------+------+--------------------------+----------+--------+----------------------------------+------------------+----------------------+---------+-------------------+-------------+-------------------------------+----------+---------------
49 | scaleio-powerflex_gw | 192.168.150.100 | | scaleio/bin/discovery.rb | Skrypt | Skrypt | FF8080816E8E8257016E8E96DF6D00E5 | | | | | | 2022-04-13 07:01:26974846-04 | |
.
3) Uruchom poniższe zapytanie, aby dodać nowy wpis w tabeli device_config dla brakującego certyfikatu.
Nuta:-W poniższym poleceniu zastąp pola VALUES odpowiednią wartością.
INSERT INTO device_config (nazwa certyfikatu, host, dostawca, schemat credential_id) VALUES('<Brak nazwy> certyfikatu', '<Wartość z bieżącej bramki zanotowana w poprzednim kroku>', '<Wartość z bieżącej bramki zanotowana w poprzednim kroku>', '<Wartość z bieżącej bramki zanotowana w poprzednim kroku>>');<
Przykład: asm_dev=> INSERT INTO device_config (nazwa certyfikatu, host, dostawca, schemat credential_id) WARTOŚCI('scaleio-sio_gw', '192.168.150.100', 'skrypt', 'skrypt', 'ff8080816e8e8257016e8e96df6d00e5');
INSERT 0 1
4) Uruchom poniższe zapytanie, aby potwierdzić, że dodano nowy wpis brakującego certyfikatu.
Wybierz nazwę certyfikatu z device_config, gdzie nazwa certyfikatu, np. "scaleio-%";
Przykład:
asm_dev=> wybierz nazwę certyfikatu z device_config, gdzie nazwa_certyfikatu, np. 'scaleio-%';
CertName
----------------------
scaleIO-powerflex_gw
SCALEIO-sio_gw
(dwa wiersze)
asm_dev-> \q
[delladmin@pfxm-jade ~]$
5) Ponów operację w programie PowerFlex Manager.