phpseclib для подключения для извлечения данных из балансировщика нагрузки a10

Я создаю удаленный API, который будет извлекать данные из балансировщика нагрузки A10 через SSH и передавать их веб-интерфейсу в формате JSON. Я предпочитаю библиотеку phpseclib, поскольку я использовал ее для аналогичных целей, но с другими устройствами (серверами rhel, маршрутизаторами cisco и т. д.). Вот в чем дело: балансировщики нагрузки A10 обслуживают некоторые проблемы с синтаксисом командной строки, когда я пробовал phpseclib $ssh->exec("show gslb service-ip");

Я не очень хорошо разбираюсь в синтаксисе командной строки балансировщика нагрузки A10, чтобы точно знать, где искать проблему.

Я также установил sshpass на свой сервер, чтобы провести некоторое тестирование, и он возвращает то же самое, поэтому я не уверен, в чем проблема, поскольку Google ничего не обнаружил. Это может быть простая модификация phpseclib? простой взлом с одним вкладышем? Помощь!

<?php 
    include_once("phpseclib/Net/SSH2.php");
    $ssh = new Net_SSH2("<a10 load balancer ip>");
    if(!$ssh->login("<username>","<password>")) {
        echo 0;
    } else {
        echo "Pulling configuration...";
        echo $ssh->exec("show gslb service-ip");
    }
?>

Вот мой ответ, когда я запускаю из командной строки

[root@<servername> php]# php controller.php
Pulling configuration...
/a10/bin/rimacli: invalid option -- c
[root@<servername> php]#

Поиск в Google по запросу «/a10/bin/rimacli: недопустимая опция -- c» не дает многого, поскольку я уверен, что это всего лишь опция/синтаксис командной строки, которую редко видят пользователи балансировки нагрузки A10.

Чем SSH отличается от A10? ПОМОЩЬ :)


person kevLaR    schedule 13.11.2014    source источник
comment
Я думаю, вы придумали альтернативный подход, лол, но мне почти интересно, может быть, он работал бы лучше, если бы был включен PTY (что вы можете сделать через enablePTY()). В качестве альтернативы, это может работать лучше в интерактивной оболочке. например. read() / write().   -  person neubert    schedule 14.11.2014


Ответы (1)


Неважно, у него уже есть API :) Теперь просто нужно изучить методы. Пример запроса:

[root@servername php]# curl -qk "https:///services/rest/V2/?method=authenticate&username=&password=&format=json" {"session_id":"07d68e681102200700f1aea46574f7"}[root@servername php]#

person kevLaR    schedule 14.11.2014