Заметки из Зазеркалья

26.08.2020

Поддержка SSH в 1С:Исполнителе

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm. 

Планируется в релизе 2020.2.2

Как мы уже писали, одно из назначений 1С:Исполнителя – это автоматизация задач администрирования. Чтобы расширить круг решаемых задач, мы добавили в 1С:Исполнитель поддержку протокола SSH.

Протокол SSH широко используется для администрирования  серверов и отдельных сервисов. По сути, через этот протокол можно получить доступ к консоли удалённого сервера.

Появится также поддержка протокола SFTP, предназначенного для выполнения операций с файлами (копирования и т.п.) поверх надёжного и безопасного соединения.

В рамках поддержки SSH будет реализован ряд объектов, в частности:

  • СоединениеSsh: предоставляет интерфейс для взаимодействия по протоколу SSH.

  • КонсольSsh: предоставляет интерфейс для взаимодействия с удаленной консолью, с помощью которой можно выполнять произвольный набор команд. Объект КонсольSsh возвращается методом СоединениеSsh.ОткрытьКонсоль().

  • СоединениеSftp: предоставляет интерфейс для взаимодействия с сервером по протоколу SFTP. Объект СоединениеSftp возвращается методом СоединениеSsh.ОткрытьК СоединениеSftp().

Также некоторое время назад в Конфигуратор была добавлена возможность работы в режиме агента (т.е. возможность удалённо выполнять по протоколу SSH различные команды). С появлением поддержки SSH в 1С:Исполнителе появится возможность использовать  этот режим Конфигуратора из 1С:Исполнителя.

Пример ниже демонстрирует, как присоединиться к Конфигуратору по протоколу SSH, выгрузить конфигурацию в файл и скачать этот файл через SFTP:

метод ВыгрузитьКонфигурациюV8(Файл: Строка | Файл)

    знч КонфигураторПроцесс = новый ПроцессОс(

        "C:\\Program Files\\1cv8\\8.3.17.1496\\bin\\1cv8.exe",

        ["designer", "/IBName " + "Информационная база",

         "/AgentMode", "/AgentSSHHostKeyAuto", "/AgentBaseDir", 

         "C:\\agentdir\\", "/Visible"])

    КонфигураторПроцесс.Запустить()

 

    исп СоединениеАгент = новый СоединениеSsh("127.0.0.1", 1543, "admin", "123")

    исп Агент = СоединениеАгент.ОткрытьКонсоль()

    Агент.СтрокаПриглашения = "designer> "

 

    пер Результат = Агент.Выполнить("common connect-ib").ПрочитатьКакТекст()

    Консоль.Записать("Подключение к ИБ: " + Результат)

    Результат = Агент.Выполнить(

    "config dump-cfg --file=configuration.cf").ПрочитатьКакТекст()

    Консоль.Записать("Выгрузка: " + Результат)

 

    исп СоединениеФайлы = новый СоединениеSsh("127.0.0.1", 1543, "admin", "123")

    знч Sftp = СоединениеФайлы.ОткрытьСоединениеSftp()

    Sftp.Получить("configuration.cf", Файл)

    Sftp.Удалить("configuration.cf")

 

    КонфигураторПроцесс.Остановить()

;

Помимо работы с Конфигуратором эту функциональность можно использовать и для других административных задач.

Рассказать друзьям: