ispmanager 6 lite, pro, host

Каталог CMS

В панели ispmanager доступно управление веб-скриптами на базе Ansible. Администратор может использовать встроенные веб-скрипты популярных CMS или загружать свои. Это позволяет централизованно настраивать доступные решения, помогая пользователям легко загружать CMS на сайты и значительно ускорять рабочие процессы.

Требования для работы с веб-скриптами

Для управления веб-скриптами у вас должны быть:

  • установлен любой веб-сервер
  • установлен Ansible

    Если Ansible не установлен

    Чтобы установить Ansible:

    1. Авторизуйтесь в ispmanager под учетной записью с правами суперпользователя.
    2. Перейдите в раздел Конфигурация ПО.
    3. В списке выберите Ansible (установка веб-скриптов).
    4. На панели инструментов нажмите .
    5. Подтвердите установку Ansible.
    6. Дождитесь окончания установки. 

    При успешной установке Ansible автоматически активируется.

Встроенные CMS

В ispmanager уже добавлены последние версии популярных веб-скриптов:

Используйте действия на панели инструментов, чтобы управлять доступами пользователей к CMS.

Если в списке нет нужной CMS, добавьте её вручную.

Действия с веб-скриптами

КнопкаОписание
Обновление списка. Если в списке приложений есть не закешированные APS-скрипты (без ) , после обновления они будут удалены
Управление версиями веб-скрипта
Использование веб-скрипта разрешено для пользователей
Использование веб-скрипта отключено для пользователей
Список всех CMS  

Добавление CMS

Панель ispmanager поддерживает добавление собственных веб-скриптов на базе Ansible.

  1. Создайте репозиторий, доступный по HTTPS и содержащий meta-описание webscripts.xml. Например, на GitHub.

    Пример webscripts.xml
    <doc>
        <webscript type="ansible" name="Bitrix">
            <settings>
                <filename>bitrix.tgz</filename>
                <playbook>playbook.yml</playbook>
            </settings>
            <mgr>
                <minimal_version>6.0.0</minimal_version>
            </mgr>
            <required>
                <php version="7.2" max_version="7.4">
                    <extensions>
                        <extension name="gd"/>
                        <extension name="exif"/>
                    </extensions>
                    <modes>
                        <mode name="php_mode_cgi"/>
                    </modes>
                </php>
                <database type="mysql" version="5.6"/>
            </required>
        </webscript>
    </doc>
    • type — атрибут с внутренним именем скрипта
    • name — атрибут с именем скрипта в интерфейсе панели
    • <filename> — элемент с именем архива в каталоге. Панель скачает и распакует его при установке
    • <playbook> — элемент с именем файла playbook.yml, который будет выполнен
    • <minimal_version> — элемент с минимальной версией ispmanager, нужной скрипту
    • <required> — секция с требованиями к окружению:
      • <php> — элемент с версией PHP. Версии учитываются между version и max_version
        • <extensions> — элементы с расширениями PHP
        • <modes> — элемент с режимом обработки PHP. Например, CGI
      • <database> — элемент с базой данных типом type, с версией сервера не ниже version
        • sql-mode — атрибут с режимами mysql, которые включаются для сервера баз данных
        • restricted="yes" — атрибут с режимами, которые не будут использоваться для скрипта
  2. Создайте архивы скриптов. Каждый архив должен содержать ansible playbook.yml и все нужные вспомогательные файлы. При необходимости используйте каталог скриптов ispmanager.

    Пример ansible playbook.yml
    - hosts: 127.0.0.1
      tasks:
      - name: Create a install directory if it does not exist
        file:
          path: "{{ install_path }}"
          state: directory
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: "0755"
          recurse: yes
      - name: Download bitrix
        get_url:
          url: "http://www.1c-bitrix.ru/download/standard_encode.tar.gz"
          dest: "{{ install_path }}/standard_encode.tar.gz"
          mode: "644"
          timeout: 1800
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
      - name: Unpack bitrix archive
        unarchive:
          src: "{{ install_path }}/standard_encode.tar.gz"
          dest: "{{ install_path }}"
          remote_src: yes
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
    
      - name: Set the permissions on Bitrix directories
        command: find {{ install_path }} -type d -exec chmod 755 {} \;
    
      - name: Set the permissions for Bitrix files
        command: find {{ install_path }} -type f -exec chmod 644 {} \;
    
      - name: Create a directory if it does not exist
        file:
          path: "{{ install_path }}/bitrix/php_interface"
          state: directory
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: "0755"
    
      - name: copy dbconn.php
        template:
          src: templates/dbconn.php.j2
          dest: "{{ install_path }}/bitrix/php_interface/dbconn.php"
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: 0644
    
      - name: copy .settings.php
        template:
          src: templates/.settings.php.j2
          dest: "{{ install_path }}/bitrix/.settings.php"
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: 0644
    
      - name: copy after_connect_d7.php
        template:
          src: templates/after_connect_d7.php.j2
          dest: "{{ install_path }}/bitrix/php_interface/after_connect_d7.php"
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: 0644
    
      - name: copy after_connect.php
        template:
          src: templates/after_connect.php.j2
          dest: "{{ install_path }}/bitrix/php_interface/after_connect.php"
          owner: "{{ user_name }}"
          group: "{{ user_name }}"
          mode: 0644
    
      - name: Delete archive
        file:
          path: "{{ install_path }}/standard_encode.tar.gz"
          state: absent

    Playbook запускается при установке скрипта для сайта.

    Список параметров, которые передаются в скрипт:

    • user_name — имя пользователя
    • install_path — путь установки скрипта
    • db_name — имя базы данных
    • db_user_name — имя пользователя базы данных
    • db_password — пароль пользователя базы данных
    • db_server — IP-адрес и порт подключения к базе данных
    • site_name — доменное имя сайта
    • site_docroot — корень сайта
    • site_php — активирован/деактивирован PHP
    • site_php_mode — режим работы PHP
    • site_ssi — активирован/деактивирован SSI
    • site_hsts — активирован/деактивирован HSTS
    • site_nodejs — активирован/деактивирован Node.js
    • site_secure — активирован/деактивирован SSL
    • site_ssl_cert — путь к SSL-сертификату
    • site_email — почта администратора
    • site_basedir — активирован/деактивирован open_basedir
    • site_charset — кодировка сайта

      Среди параметров с префиксом site_ есть все поля из таблицы webdomain директории /usr/local/mgr5/etc/ispmgr.db.

  3. Дополните webscripts.xml соответствующими записями и приложите архив скрипта.
  4. В конфигурационном файле /usr/local/mgr5/etc/ispmgr.conf добавьте строку: 

    WebscriptsRepoUrl https://example.com/repo/webscripts.xml
    Подробнее
    • WebscriptsRepoUrl — параметр, который принимает URL к внешнему HTTPS репозиторию с веб-скриптом
    • https://example.com/repo/webscripts.xml — полный адрес к репозиторию с веб-скриптом

    Панель работает только с одним репозиторием. При добавлении параметра WebscriptsRepoUrl она использует только указанный URL. Для добавления нескольких скриптов поместите их в тот же репозиторий webscripts.xml.

  5. Нажмите Сохранить.
  6. Подключитесь к серверу с панелью ispmanager по SSH.
  7. Перезагрузите панель командой:

    /usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Скрипты, указанные в webscripts.xml, появятся в разделе Веб-скрипты. Если они не отображаются, обновите список.

Технические подробности

Скрипты выполняются в фоновом режиме. После завершения процесса пользователь видит уведомление в панели.

  • /usr/local/mgr5/sbin/webscripts — обработчик выполнения скриптов
  • /usr/local/mgr5/var/webscripts.log — журнал обработчика
  • /usr/local/mgr5/var/.webscripts/ — директория, в которую скачивается скрипт
  • webscript — имя таблицы с описаниями скриптов