Назад | Перейти на главную страницу

MSDeploy - можно ли вызвать setAcl сразу в нескольких местах назначения?

Я создаю приятную небольшую среду непрерывной интеграции для нашей команды разработчиков на основе TeamCity. Он работает довольно хорошо, поскольку может создавать смесь проектов .NET и PHP и передавать их на наши внутренние и внешние платформы.

В основном я использую MsDeploy для передачи всего на внутреннюю платформу, поскольку все это основано на IIS. Однако есть ряд сборок, в которых мне нужно установить права доступа к каталогу назначения. Я могу использовать setAcl оператор в порядке, но кажется, что он принимает только один пункт назначения в качестве аргумента. Поэтому, если мне нужно изменить разрешения для 5 целевых каталогов, мне нужно вызвать MsDeploy 5 раз, что, по-видимому, требует больших накладных расходов.

Есть ли разумный способ обойти это? Читая документацию, я не думаю, что MsDeploy использует более одного аргумента для setAcl оператор, но мог ошибаться. Есть ли лучший способ для сервера сборки установить несколько разрешений для каталога за один раз?

В manifest провайдер предназначен для одновременной синхронизации нескольких провайдеров:

msdeploy verb:sync -source:manifest=manifest.xml -dest:auto,computerName=...

затем manifest.xml является:

<multipleAcls>
    <setAcl path="path1" setAclAccess="Write" />
    <setAcl path="path2" setAclAccess="Read" />
    <setAcl path="path3" setAclAccess="ReadAndExecute" />
</multipleAcls>