Использование групп соединений App-V 5.0 SP1

imageВ данной статье попробую рассмотреть три различных варианта публикации виртуальных приложений App-V 5.0 и методы их объединения в группы:

1. С помощью серверов публикации;
2. С помощью SC 2012 SP1 CM;
3. В ручную, используя PowerShell.

Группы соединений виртуальных приложений необходимы для тех приложений, которые работают в связке (одно зависит от другого), т.е. для корректной работы им нужна единая файловая система и реестр. Если администратор желает максимально использовать App-V, который в свою очередь изолирует приложения от системы и друг друга, можно столкнуться с ситуацией когда эти приложения нужно как-то подружить.

Для примера возьмём простое и наверное всем известное приложение “Декларация”, которая использует для генерации штрих-кодов использует сторонние компоненты “Печать НД с PDF417”. Второе, по сути своей даже не приложение, а библиотека.

Загрузим файлы установщиков с сайтов производителей и сделаем App-V пакеты. Описывать процесс сиквенсинга не буду, потому как он не отличается от создания пакета для ISC_Net, который рассматривал ранее Алексей. Отступлением могу добавить, что после установки ПО “Декларация” установка “Печать НД с PDF417” запускается автоматически и от неё нужно отказаться.

 

Публикация групп при помощи серверов публикации App-V.

Добавим пакеты виртуальных приложений на консоль App-V:image

Публиковать и настраивать доступ отдельно для каждого приложения не будем, сразу перейдём на вкладку “Группы соединений”:

image

Добавим группу и присвоим имя, добавим приложения, которые хотим объединить, назначим группу AD и опубликуем.

 

Публикация групп соединений при помощи SC 2012 CM SP1

Добавим App-V пакеты в консоли SCCM.

image

Ни каких настроек на этапе добавления пакетов не имеется, всё достаточно просто. Таким же образом добавим и “Печать НД с PDF417”.

Для автоматического развёртывания зависимости “Печать НД с PDF417”, откроем свойства типа развёртывания “Декларация 2012”, перейдём на вкладку зависимость и добавим её.

image

Распространяем добавленный контент по точкам распространения.

Пока пакеты разливаются по нашим точкам распространения, создадим группу соединения.

В SCCM группы соединений виртуальных приложений имеют название “Виртуальные среды APP-V”. Присвоим имя виртуальной среде и создадим группу из развёртываний виртуальных приложений.

image

После проделанных манипуляций увидим позицию:

image

Остаётся только развернуть развернуть приложение “Декларация 2012” на коллекцию пользователей или компьютеров.

 

Публикация групп приложений при помощи PowerShell.

Если нет возможности использовать серверы публикации App-V или SCCM для доставки и управления виртуальными приложениями можно попробовать обойтись предварительно подготовленными скриптами PowerShell.

Сначала загрузим модуль App-V в PowerShell, выполним добавление и публикацию приложений на клиенте которые необходимо объединить в группу:

Import-Module AppVClient
Add-AppVClientPackage -Path "C:\temp\app-v\3.0.31\WS2012\Печать НД с PDF417(3.0.31).appv" | Publish-AppVClientPackage
Add-AppVClientPackage -Path "C:\temp\app-v\2012\WS2012\Декларация 2012.appv" | Publish-AppVClientPackage

image

Запомним идентификаторы пакетов и версий, они будут необходимы далее.

Для создания группы соединения виртуальных приложений нам потребуется дважды сгенерировать ID, первый будет выступать идентификатором группы соединений, а второй её версией. Сделаем это с помощью PowerShell выполнив команду: [Guid]::NewGuid()

image

Составим DeclaraciaApp-VGroup.xml файл с содержимым необходимым для создания группы:

<?xml version="1.0"?> 
<AppConnectionGroup 
AppConnectionGroupId="ac3102cf-0fee-4f77-a1b5-e2535ac62e16" 
VersionId="1b38c555-0def-40f1-8e56-6822f6c66974" 
Priority="0" 
DisplayName="Declaracia" 
xmlns="http://schemas.microsoft.com/appv/2010/virtualapplicationconnectiongroup"> 
<Packages> 
<Package PackageId="A3B0228C-3ED3-44A9-852D-24F86DAE3BF3" VersionId="86E12B48-08E4-43AC-BBA3-7ADD671F2576"></Package> 
<Package PackageId="DA442A8A-A90E-45CD-A550-AA66FB44DB3F" VersionId="C0A954F7-346A-49FC-915A-4CD788D5B529"></Package> 
</Packages> 
</AppConnectionGroup>

В файле содержаться идентификаторы группы соединения, её версии, идентификаторы пакетов приложений и их версий которые необходимо объединить, а так же имя группы. Если на клиенте планируется несколько несколько групп соединений, то можно задать приоритеты, в моём примере приоритет равен нулю.

Создадим группу соединений виртуальных приложений и включим её.

Add-AppvClientConnectionGroup -Path "C:\temp\app-v\DeclaraciaApp-VGroup.xml" | Enable-AppvClientConnectionGroup

image

Остаётся только включить фантазию для автоматизации процесса доставки App-V пакетов и PowerShell сценариев для установки в автономной среде. Возможно данный метод будет полезен для использования виртуальных приложений на компьютерах без подключения к корпоративной сети.

Итог…

Во всех трёх случаях результат будет одинаков:

Опубликованные приложения и группы соединений можно наблюдать в GUI App-V клиента:

image

image

(Опубликованные приложения развёрнутые с SC 2012 CM SP1 будут сразу готовы для автономного режима)

Запустим приложения с ярлыка на рабочем столе, последовательно в кэш будут загружены сразу два приложения. Из-за малого объёма пакетов, процесс загрузки практически невидим.

Составим фейковую декларацию и попробуем запуск предварительного просмотра печати:

image

 

Удаление групп пакетов.

Удаление пакетов и групп виртуальных приложений с консоли App-V нет ни каких сложностей, после удаления пакета и синхронизации клиента с сервером очистка кэша клиента должна пройти автоматически. Но в других случаях, удаление нужно явно выполнять. Например в SCCM можно выполнить развёртывание с типом удаления. В случаях с PowerShell сценариями перед удалением приложений входящих в какую-либо группу, сначала необходимо удалить группу, в противном случае, мы получим ошибку, которая сообщит, что удаляемое виртуальное приложение находится в группе:

Remove-AppVClientPackage *

image

Удалим группу соединений:

Remove-AppvClientConnectionGroup *

image

Снова запускаем приложение и включаем пред просмотр печати:

image

Программа сразу сообщает об отсутствии компонента модуля печати.

Таким образом при использовании APP-V можно практически целиком сохранить состояние компьютера с “чистой” системой на борту.

Дополнительные источники информации:

1. How to Use Connection Groups on a Standalone Computer Using PowerShell.

Всего комментариев: 2 Комментировать

  1. Anton Masyan (@masyan) /

    Виталий, а в итоге как много используете виртуализованных приложений в продакшене?

    1. Виталий Якоб / Автор записи

      На данный момент всего 4.
      3 из них используются каждый день достаточно большим количеством пользователей на терминальной ферме.
      Одно приложение используем сами, вывели App-V пакет через RemoteApp.

Добавить комментарий