PowerFlex 3.6 Відсутній ляльковий сертифікат для шлюзу PowerFlex у device_config
Summary: У цій статті пояснюється, як виявити та виправити проблеми, спричинені відсутністю puppet-cert для шлюзу PowerFlex у таблиці device_config бази даних.
Symptoms
-
Операції, пов'язані з обслуговуванням, такі як оновлення RCM/IC, вхід або вихід з сервісного режиму тощо... зазнає невдачі.
-
У deployment.log міститься аналогічна наведеній нижче помилці.
-
Помилка VXOS REST API, що виникла в post_request: Невизначений метод '[]' для nil:NilClass
-
Ми можемо помітити дві різні назви для шлюзу PowerFlex у розділі «Ресурси» в PowerFlex Manager.
Приклад:

Cause
Спосіб, у який PFxM отримує інформацію про конфігурацію пристрою у версії 3.7.x і пізніших версіях, змінено для використання записів бази даних, які є ключовими з імені сертифіката маріонетки.
Якась операція призвела до зміни повідомленого імені шлюзу в PFxM, або шлюз перевстановлюється з іншим іменем хоста, або змінюється сертифікат SSL.
У таблиці бази даних був запис лише для поточного імені шлюзу PowerFlex, але служби бачать старе ім'я шлюзу PowerFlex.
Resolution
Верифікація:
1) Перейдіть до id завдання під /opt/Dell/ASM/deployments/Job-xxx<,> де не вдалося виконати операції, пов'язані зі службою для вузла.
Приклад: cd /opt/Dell/ASM/deployments/Job-xxx<
>
2) Виконайте наведену нижче команду, щоб визначити, який ляльковий сертифікат намагається використовувати служба.
cat deployment.json|grep -i cert|grep scaleio
Приклад: [delladmin@pfxm-нефрит 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-нефрит Job-913d3f1a-b7cd-4fe9-a4b5-2085d8034d17-0-0]$
3) Підключіться до бази даних asm_dev і перевірте наявність сертифікатів, які є для шлюзу scaleio.
psql -U orion asm_dev
asm_dev=> виберіть certname з device_config де certname наприклад 'scaleio-%';
Приклад:
asm_dev=> виберіть certname з device_config, де certname наприклад 'scaleio-%';
certname
----------------------
scaleio-powerflex_gw
(1 рядок)
4) Переконайтеся, що сертифікат маріонетки, який ми помітили з файлу deployment.jason, відсутній у базі даних. У цьому прикладі це "scaleio-sio_gw" і він відсутній у базі даних.
Виконуйте наведені нижче кроки лише в тому випадку, якщо крок 4 вірний.
1) Зробіть знімок віртуальної машини PowerFlex Manager.
2) Виконайте наведений нижче запит і запишіть значення полів (certname, host, provider, scheme credential_id) для поточного шлюзу У цьому прикладі поточний шлюз має значення scaleio-powerflex_gw.
asm_dev=> вибрати * з device_config були certname на кшталт 'scaleio-%';
Ідентифікатор | certname | господар | порт | шлях | провайдер | схема | 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 | Масштаб-powerflex_gw | 192.168.150.100 | | scaleio/bin/discovery.rb | сценарій | сценарій | ff8080816e8e8257016e8e96df6d00e5 | | | | | | 2022-04-13 07:01:26974846-04 | |
.
3) Виконайте запит нижче, щоб додати новий запис у device_config таблиці для відсутнього сертифіката.
Примітка:-У наведеній нижче команді замініть поля VALUES на відповідне значення.
ВСТАВТЕ device_config (certname, хост, провайдер, схема, credential_id) VALUES('<Відсутнє ім'я> сертифіката', '<Значення з поточного шлюзу, записане на попередньому кроці>', '<Значення з поточного шлюзу, записане на попередньому кроці>', '<Значення з поточного шлюзу, записане на попередньому кроці><>');
Приклад: asm_dev=> ВСТАВИТИ В device_config (certname, host, provider, scheme, credential_id) VALUES('scaleio-sio_gw', '192.168.150.100', 'script', 'script', 'ff8080816e8257016e8e96df6d00e5');
ВСТАВИТИ 0 1
4) Виконайте запит нижче, щоб підтвердити, що додано новий запис для відсутнього сертифіката.
Виберіть certname з device_config де certname наприклад 'scaleio-%';
Приклад:
asm_dev=> виберіть certname з device_config, де certname наприклад 'scaleio-%';
certname
----------------------
scaleio-powerflex_gw
scaleio-sio_gw
(два ряди)
asm_dev-> \q
[delladmin@pfxm-нефрит ~]$
5) Повторіть спробу операції в PowerFlex Manager.