ispmanager 6 lite, pro, host

Каталог CMS

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

Требования для работы с CMS

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

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

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

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

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

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

Встроенные CMS

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

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

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

Действия с CMS

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

Добавление CMS

Панель ispmanager поддерживает добавление собственных CMS на базе 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, появятся в разделе CMS. Если они не отображаются, обновите список.

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

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

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