Deploy2¶
Обозначения¶
%Deploy% - каталог, где располагается Deploy
Структура¶
Deploy состоит из ряда каталогов различного назначения:
- php - интерпретатор, развернутый в данный каталог позволяет запускать Deploy без необходимости устанавливать PHP на каждой машине;
- src - исходные коды программы;
- setup - здесь располагаются дистрибутивы всех устанавливаемых программ и драйверов;
- keydll - файлы лицензий для ключей защиты;
- config - файлы настроек комплекса (base.ini);
- auto.conf - конфигурационные файлы, помещаемые в каталог system.
Исходные коды деплоя:
- index.php - инициализация приложения, точка входа
- util.php - дополнительные функции, не привязанные к конкретным путям деплоя
- deploy.php - класс деплоя, содержит все api, необходимое для работы деплоя
- soft.php - класс приложения - содержит все настройки, необходимые для установки
- log.php - класс, отвечающий за ведение логов
- install.php - содержит настройки для всех рабочих станций комплекса для установки необходимых приложений
- presets.php - содержит описания пресетов, дистрибутивов программ (в первой версии деплоя также находились в install.php)
presets.php
- $presets - массив пресетов. Имеет следующую структуру: В качестве ключа используется имя пресета (регистронезависимое, как и все во второй версии деплоя). Значение содержит массив с перечислением приложений, входящих в пресет. В списке должен присутствовать один переопределенный пресет с названием "system", в котором перечислены те приложения и драйверы, которые необходимо ставить на все рабочие места.
- $soft - список приложений. Ключ - название приложения или драйвера. При этом в конце названия может содержаться архитектура и/или операционная система, если данный дистрибутив специфичен только для них. Это окончание соответствует значениям параметров architecture и system. Значение - список параметров в форме ключ => значение. Вот список этих параметров с кратким объяснением их назначения:
- source (синонимы: src, 0) - путь к дистрибутиву приложения. Он является относительным каталога
%Deploy%/setup/. В пути могут быть использованы следующие подстановки: %s - операционная система (xp или win7), %a - архитектура (x86 или x64)) - params (синонимы: parameters, param, 1) - параметры запуска. Так же может содержать подстановку %d - каталог назначения (по умолчанию в Deploy это
C:/Program Files/Digispot II/ - destination (синонимы: dest, dst, 2) - путь, куда будет производиться установка. Здесь указывается полный путь установки, например для джинна это
C:/Program Files/Digispot II/Djin/. По наличию данного параметра определяется, является ли устанавливаемая программа приложением Digispot II. В этом случае Deploy делает полный бэкап папки назначения и при recovery восстанавливает ее исходное состояние. Может содержать подстановку %d. - icons (синонимы: icon, 3) - путь к исполняемым файлам, к которым нужно сделать ярлычки на рабочем столе, или массив путей. Может содержать подстановку %d.
- check (синонимы: checks) - проверка нормального завершения установки. Массив параметров для проверки. Параметр result => 0 говорит о том, что код завершения приложения должен быть нулем. Далее может быть набор строковых параметров, в зависимости от префикса которых, определяется назначение. Если первый символ - знак "-", то оставшаяся часть строки при обнаружении в выводе программы будет приводить к аварийному завершению. Если первый знак - символ "+" или любой другой, то в случае, если ни одна из этих строк не найдена в выводе, это также означает некорректную установку. Может быть еще параметры вида ключ => значение, ключ- путь к файлу (логов установки), значение - массив строк аналогичных тем, что были описаны ранее. Если логи не найдены, это тоже считается ошибкой. В путях может быть задействована подстановка %d, а так же может содержать * для записи регулярных выражений.
- to_temp (синонимы: totemp, to temp) - определяет, нужно ли копировать дистрибутив во временный локальный каталог перед запуском. Может иметь значение file (тогда копируется только один файл дистрибутива) и folder (копируется весь каталог, где находится дистрибутив). Если параметров нет или значение = true, то это эквивалентно значению file.
- architecture (синонимы: arch) - указывает деплою, что данное приложение нужно ставить только для конкретной архитектуры. Может принимать значения xp, winxp, windowsxp или 7, win7, windows7, vista. Может содержать любое количество пробелов, они не учитываются.
- system (синонимы: os) - определяет конкретную архитектуру процессора, для которой существует данная программа или драйвер. Принимает значения 32, 86, x86 или 64, x64.
- source (синонимы: src, 0) - путь к дистрибутиву приложения. Он является относительным каталога
Есть небольшое число параметров, которые можно записывать подряд без указания ключа. Это достигается за счет их числовых синонимов. Вот список данных параметров: source, params, destination, icons. Данная возможность существует для большей совместимости с первой версией деплоя.
install.php
- $info - массив со списками следующего вида: имя компьютера, имя пресета или приложения (в этом случае будет установлена только одна программа, но не должно существовать пресета с таким же именем), номер ключа для HaspHL или HardLock (его программа ищет в каталоге
%Deploy%/keydll/, при этом копируется все содержимое каталога с названием, соответствующим параметру), имя рута, которое определяет ini файл, который будет скопирован в папку.../system/base.iniиз каталога%Deploy%/config/. Имя пресета определяет также конфигурационные файлы, которые будут скопированы в каталог system (об этом далее). Если имя программы (для пресетов не работает) записывается как ключ => значение, то значение определяет каталог назначения программы относительно стандартного (например, если каталог назначенияC:/Program Files/Digispot II/, то запись"djin" => "plan"указывает деплою, что DJin должен быть установлен в каталогC:/Program Files/Digispot II/plan/). При этом конфигурационные файлы будут копироваться так же, как если бы устанавливался пресет с именем, соответствующим значению (в случае описанного примера это будет plan). Кроме того, в папку system будут скопированы конфигурационные файлы из следующих каталогов:%Deploy%/auto.conf/_copy/%1/%2/, где %1 - название пресета или _any, %2 - имя программы или _any. Если необходимо ставить несколько пресетов или приложений, дотаточно сделать несколько записей для конкретной рабочей станции. На каждый компьютер по умолчанию ставится как минимум один пресет - это пресет system. Явно его задавать не нужно.
-Предоставляется также возможность записывать параметры следующим образом: имя_компьютера => array( имя_пресета, имя_ключа, имя_рута ). Оба варианта идеентичны с той лишь разницей, что для задания нескольких пресетов, они перечисляются в виде массива-
-имя_компьютера => array( array( имя_пресета, имя_ключа, имя_рута ), ….. )- (это пока не реализовано)
Принцип работы¶
Для получения информации о программе, а так же получения помощи необходимо запускать Deploy с параметром /?
На первом этапе программа инициализируется, в том числе проверяет все настройки в файлах presets.php и install.php, а так же формирует списки, проверяет корректность путей и доступность папки назначения, где создается файл логов в папке Log/ . Затем Deploy формирует список приложений, которые он будет ставить на данное рабочее место. После этого он приступает к установке этих приложений. После успешного завершения работы, программа удаляет временную папку со всеми бекапами. Затем Deploy копирует файл логов в папку %Deploy%/log/ с добавлением в начало имени данной рабочей станции. Если скопировать лог не удастся, в случае отсутствия доступа на запись, об этом останется запись в локальных логах.