Продолжая цикл статей и заметок об App-V, я хотел бы рассказать о возможности публикации и загрузки пакетов приложений с использованием Web-сервера.
Часть 1: http://blog.vmpress.org/2010/05/app-v-i.html
Часть 2: http://blog.vmpress.org/2010/05/app-v-ii.html
Часть 3: http://blog.vmpress.org/2010/06/app-v-iii.html
Данный вариант доступа может быть полезен для пользователей работающих за пределами локальной сети и не имеющих возможности подключаться к серверам по протоколу RTSP или SMB для загрузки пакетов приложений.
При реализации подобной конфигурации важно разделять два момента: публикацию приложений и, собственно, саму загрузку файлов.
С настройкой загрузки файлов по HTTP нет ничего сложного.
Чтобы клиент App-V определил, что загрузка .sft пакета должна осуществляться по протоколу HTTP, вам нужно отредактировать .osd файл. Откройте нужный пакет в программе-упаковщике Sequencer, и на вкладке Deployment в качестве протокола выберите HTTP или HTTPS, а также задайте имя сервера (Hostname) и путь (Path) к web-директории, где будет располагаться .sft файл.
При желании, вы можете вручную отредактировать .osd, прописав в параметре CODEBASE HREF= полный путь к .sft файлу.
Далее вам потребуется установить Web-сервер, на котором будут располагаться пакеты приложений. В качестве примера возьмем IIS 7.0.
Для IIS вам потребуется установить следующие компоненты:
Также вам потребуется задать MIME Types для корректной обработки расширений файлов Web-сервером. Для этого выберите ваш сайт и в секции IIS выберите MIME Types.
С помощью кнопки Add... задайте MIME типы для следующих расширений файлов.
Расширение: .osd, MIME type: application/softricity-osd
Расширение: .sft, MIME type: application/softricity-sft
Расширение: .sprj, MIME type: application/softricity-sprj
После этого скопируйте пакет в соответствующую директорию на Web-сервере. В данном примере пакеты приложений располагаются в отдельных дочерних папках внутри главной директории.
Если вы планируете, чтобы клиенты самостоятельно подключались к Web-серверу и получали список опубликованных пакетов вам предстоит выполнить еще ряд действий.
Для получения информации о доступных пакетах клиенты используют файл-описатель (manifest) в формате .xml.
Данный файл автоматически создается при пакетировании приложения и располагается в той же директории, что и остальные файлы.
Структура файла выглядит следующим образом.
Информация об приложениях находится внутри секции <APPLIST><APP></APP></APPLIST>.
Обратите внимание на переменную %SFT_MIME_SOURCE%, присутствующую в файле-описателе. С ее помощью клиент определяет абсолютный путь к файлу .osd и изображениям ярлыков приложения. Значение переменной можно задать при установке или при помощи групповых политик, а также отредактировав соответствующие ключи реестра:
HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\IconSourceRoot
HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\OSDSourceRoot
Использование переменной %SFT_MIME_SOURCE% вместо жесткого прописывания абсолютного пути может быть полезно в случае, когда у вас в компании есть несколько мобильных пользователей, переезжающих с места на место. В этом случае, с помощью групповых политик вы можете задавать путь к ближайшему дистрибутивному серверу для ускорения процедуры загрузки новых опубликованных пакетов. Аналогичным образом вы можете менять ключ HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\ApplicationSourceRoot для изменения пути к пакету .sft, указанном в .osd файле.
Еще один момент на который стоит обратить внимание - если вы планируете размещать содержимое каждого пакета не в корневой папке, а в отдельной директории (например, "App-V/Adobe9"), вам, все-таки, придется отредактировать файл-описатель .xml, добавив после %SFT_MIME_SOURCE% имя дочерней папки.
Если вы планируете опубликовать несколько приложений, используя единый файл-описатель, то можете отредактировать его вручную, или же использовать специальный скрипт, который будет генерировать данный файл автоматически.
Вариант с использованием скрипта достаточно подробно описан (например, здесь), кроме того, John Sheehan выложил пример скрипта для создания файла-описателя на C#. Исходный код сценариев с небольшими правками вы можете загрузить отсюда или отсюда.
Сохраните файлы в корневой директории, где расположены папки с опубликованными приложениями.
Скрипт ищет файлы с именем _manifest.xml во всех подпапках, копирует из них информацию о приложениях, после чего генерирует файл в формате .xml и отдает его клиенту.
Все, что вам осталось - это настроить клиентов на Web-сервер публикаций. Сделать это можно в процессе установки клиента, как описано в данной статье, либо вручную.
В консоли Application Virtualization Client щелкните правой кнопкой мыши по Publishing Servers и выберите New.
В мастере New Publishing Server укажите тип публикации (Type) и задайте отображаемое имя (Display Name). Нажмите Next.
Укажите имя Web-сервера (Host Name) и путь к скрипту публикации (Path).
Для завершения настроек нажмите Finish.
Если для публикации приложения вы использовали переменную %SFT_MIME_SOURCE% не забудьте изменить соответствующие ключи реестра.
Теперь настало время для тестов.
Нажмите правой кнопкой мыши по созданной записи сервера публикации и нажмите Обновить Сервер (Refresh Server). Если вы правильно указали пути в файле-описателе процесс должен будет отработать без ошибок.
Кроме того, ваше опубликованное приложение должно будет появится в списке Applications. Запустите приложение, чтобы проверить корректность загрузки по протоколу HTTP.
Если на каком-то этапе у вас возникли ошибки, можете проверить журнал событий приложений.
Скорее всего, вы некорректно задали путь к .osd или .sft файлу и клиент App-V не может их обнаружить.
Последний вопрос, который осталось рассмотреть - разграничение прав на загрузку пакетов приложений с web-сервера. Предположим, что существуют приложения, которые требуется предоставлять только определенным группам пользователей. Вы, конечно, можете создать несколько разных файлов-описателей и в настройках клиента App-V задать путь к конкретному файлу, но есть и другой вариант.
Вместо анонимной аутентификации на сервере вы можете включить Integrated аутентификацию (для всего сервера, или для отдельных папок), после чего предоставить разрешения на уровне NTFS на соответствующую папку требуемому пользователю или группе (например, "App-V <Имя_приложения> Users"). Для этого в консоли IIS, выбрав нужную директорию с приложением, в секции IIS выберите Authentication. Включите (Enable) тип аутентификации Windows Authentication.
При использовании скрипта publishing.aspx, пользователь, не имея достаточных прав, просто не сможет зайти в данную папку, а значит, в созданном файле-описателе не будет информации об этом приложении. Для отмены возможности входа под анонимным пользователем достаточно удалить права у группы Users на соответствующую папку.
На этом знакомство с публикацией пакетов App-V с помощью HTTP можно считать завершенным.
Часть 1: http://blog.vmpress.org/2010/05/app-v-i.html
Часть 2: http://blog.vmpress.org/2010/05/app-v-ii.html
Часть 3: http://blog.vmpress.org/2010/06/app-v-iii.html
Данный вариант доступа может быть полезен для пользователей работающих за пределами локальной сети и не имеющих возможности подключаться к серверам по протоколу RTSP или SMB для загрузки пакетов приложений.
При реализации подобной конфигурации важно разделять два момента: публикацию приложений и, собственно, саму загрузку файлов.
С настройкой загрузки файлов по HTTP нет ничего сложного.
Чтобы клиент App-V определил, что загрузка .sft пакета должна осуществляться по протоколу HTTP, вам нужно отредактировать .osd файл. Откройте нужный пакет в программе-упаковщике Sequencer, и на вкладке Deployment в качестве протокола выберите HTTP или HTTPS, а также задайте имя сервера (Hostname) и путь (Path) к web-директории, где будет располагаться .sft файл.
При желании, вы можете вручную отредактировать .osd, прописав в параметре CODEBASE HREF= полный путь к .sft файлу.
Далее вам потребуется установить Web-сервер, на котором будут располагаться пакеты приложений. В качестве примера возьмем IIS 7.0.
Для IIS вам потребуется установить следующие компоненты:
- ASP.Net
- ASP
- Integrated Authentication
Также вам потребуется задать MIME Types для корректной обработки расширений файлов Web-сервером. Для этого выберите ваш сайт и в секции IIS выберите MIME Types.
С помощью кнопки Add... задайте MIME типы для следующих расширений файлов.
Расширение: .osd, MIME type: application/softricity-osd
Расширение: .sft, MIME type: application/softricity-sft
Расширение: .sprj, MIME type: application/softricity-sprj
После этого скопируйте пакет в соответствующую директорию на Web-сервере. В данном примере пакеты приложений располагаются в отдельных дочерних папках внутри главной директории.
Если вы планируете, чтобы клиенты самостоятельно подключались к Web-серверу и получали список опубликованных пакетов вам предстоит выполнить еще ряд действий.
Для получения информации о доступных пакетах клиенты используют файл-описатель (manifest) в формате .xml.
Данный файл автоматически создается при пакетировании приложения и располагается в той же директории, что и остальные файлы.
Структура файла выглядит следующим образом.
Информация об приложениях находится внутри секции <APPLIST><APP></APP></APPLIST>.
Обратите внимание на переменную %SFT_MIME_SOURCE%, присутствующую в файле-описателе. С ее помощью клиент определяет абсолютный путь к файлу .osd и изображениям ярлыков приложения. Значение переменной можно задать при установке или при помощи групповых политик, а также отредактировав соответствующие ключи реестра:
HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\IconSourceRoot
HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\OSDSourceRoot
Использование переменной %SFT_MIME_SOURCE% вместо жесткого прописывания абсолютного пути может быть полезно в случае, когда у вас в компании есть несколько мобильных пользователей, переезжающих с места на место. В этом случае, с помощью групповых политик вы можете задавать путь к ближайшему дистрибутивному серверу для ускорения процедуры загрузки новых опубликованных пакетов. Аналогичным образом вы можете менять ключ HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration\ApplicationSourceRoot для изменения пути к пакету .sft, указанном в .osd файле.
Еще один момент на который стоит обратить внимание - если вы планируете размещать содержимое каждого пакета не в корневой папке, а в отдельной директории (например, "App-V/Adobe9"), вам, все-таки, придется отредактировать файл-описатель .xml, добавив после %SFT_MIME_SOURCE% имя дочерней папки.
Если вы планируете опубликовать несколько приложений, используя единый файл-описатель, то можете отредактировать его вручную, или же использовать специальный скрипт, который будет генерировать данный файл автоматически.
Вариант с использованием скрипта достаточно подробно описан (например, здесь), кроме того, John Sheehan выложил пример скрипта для создания файла-описателя на C#. Исходный код сценариев с небольшими правками вы можете загрузить отсюда или отсюда.
Сохраните файлы в корневой директории, где расположены папки с опубликованными приложениями.
Скрипт ищет файлы с именем _manifest.xml во всех подпапках, копирует из них информацию о приложениях, после чего генерирует файл в формате .xml и отдает его клиенту.
Все, что вам осталось - это настроить клиентов на Web-сервер публикаций. Сделать это можно в процессе установки клиента, как описано в данной статье, либо вручную.
В консоли Application Virtualization Client щелкните правой кнопкой мыши по Publishing Servers и выберите New.
В мастере New Publishing Server укажите тип публикации (Type) и задайте отображаемое имя (Display Name). Нажмите Next.
Укажите имя Web-сервера (Host Name) и путь к скрипту публикации (Path).
Для завершения настроек нажмите Finish.
Если для публикации приложения вы использовали переменную %SFT_MIME_SOURCE% не забудьте изменить соответствующие ключи реестра.
Теперь настало время для тестов.
Нажмите правой кнопкой мыши по созданной записи сервера публикации и нажмите Обновить Сервер (Refresh Server). Если вы правильно указали пути в файле-описателе процесс должен будет отработать без ошибок.
Кроме того, ваше опубликованное приложение должно будет появится в списке Applications. Запустите приложение, чтобы проверить корректность загрузки по протоколу HTTP.
Если на каком-то этапе у вас возникли ошибки, можете проверить журнал событий приложений.
Скорее всего, вы некорректно задали путь к .osd или .sft файлу и клиент App-V не может их обнаружить.
Последний вопрос, который осталось рассмотреть - разграничение прав на загрузку пакетов приложений с web-сервера. Предположим, что существуют приложения, которые требуется предоставлять только определенным группам пользователей. Вы, конечно, можете создать несколько разных файлов-описателей и в настройках клиента App-V задать путь к конкретному файлу, но есть и другой вариант.
Вместо анонимной аутентификации на сервере вы можете включить Integrated аутентификацию (для всего сервера, или для отдельных папок), после чего предоставить разрешения на уровне NTFS на соответствующую папку требуемому пользователю или группе (например, "App-V <Имя_приложения> Users"). Для этого в консоли IIS, выбрав нужную директорию с приложением, в секции IIS выберите Authentication. Включите (Enable) тип аутентификации Windows Authentication.
При использовании скрипта publishing.aspx, пользователь, не имея достаточных прав, просто не сможет зайти в данную папку, а значит, в созданном файле-описателе не будет информации об этом приложении. Для отмены возможности входа под анонимным пользователем достаточно удалить права у группы Users на соответствующую папку.
На этом знакомство с публикацией пакетов App-V с помощью HTTP можно считать завершенным.