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

Cause
Способ получения PFxM информации о конфигурации устройства в версии 3.7.x и более поздних версиях изменен для использования записей базы данных, которые не содержат имени сертификата puppet.
Какая-то операция привела к изменению указанного имени шлюза в PFxM: либо шлюз переустанавливается с другим именем хоста, либо изменяется сертификат SSL.
В таблице базы данных содержалась запись только для текущего имени шлюза PowerFlex, но службы видят старое имя шлюза PowerFlex.
Resolution
Проверка:
1. Перейдите к идентификатору задания в разделе /opt/Dell/ASM/deployments/Job-xxx<>, где не удалось выполнить операции, связанные с обслуживанием для узла.
Пример: cd /opt/Dell/ASM/deployments/Job-xxx<
>
2. Выполните следующую команду, чтобы определить, какой сертификат puppet пытается использовать служба.
cat deployment.json|grep -i cert|grep scaleio
Пример: [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) Подключитесь к базе данных asm_dev и проверьте имена сертификатов, присутствующие для scaleio gateway.
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) Убедитесь, что в базе данных отсутствует сертификат puppet, который мы заметили из файла 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-%';
Идентификатор | Имя сертификата | хост | порт | Путь | провайдер | схема | 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 | сценарий | сценарий | ff8080816e8e8257016e8e96df6d00e5 | | | | | | 2022-04-13 07:01:26974846-04 | |
.
3. Выполните приведенный ниже запрос, чтобы добавить новую запись в таблицу device_config для отсутствующего сертификата.
Заметка:-В приведенной ниже команде замените поля VALUES правильным значением.
INSERT INTO device_config (certname, host, provider, scheme, credential_id) VALUES('<Отсутствует имя> сертификата', '<Значение из текущего шлюза, записанное на предыдущем шаге>', '<Значение из текущего шлюза, записанное на предыдущем шаге>', '<Значение из текущего шлюза, записанное на предыдущем шаге>', '<Значение из текущего шлюза, записанное на предыдущем шаге>');
Пример: asm_dev=> INSERT INTO device_config (certname, host, provider, scheme, credential_id) VALUES('scaleio-sio_gw', '192.168.150.100', 'script', 'script', 'ff8080816e8e8e8257016e8e96df6d00e5');
ВСТАВКА 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.