Используйте host_vars . Создайте каталог ~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars и создайте файлы с переменными, специфичными для хоста.
~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars / 198.51.100.4
routers_all:
- {OSPF: 'Yes', OSPF_area: '0', OSPF_id: '1', hostname: R1}
int_details_R1:
- {int: Loopback1, ip: 10.0.0.1, mask: 255.255.255.255}
- {int: FastEthernet0/0, ip: 198.51.100.3, mask: 255.255.255.0}
- {int: FastEthernet1/0, ip: 198.51.101.3, mask: 255.255.255.0}
- {int: FastEthernet2/0, ip: 198.51.102.3, mask: 255.255.255.0}
~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars / 198.51.100.5
routers_all:
- {OSPF: 'Yes', OSPF_area: '0', OSPF_id: '2', hostname: R2}
int_details_R2:
- {int: Loopback1, ip: 20.0.0.1, mask: 255.255.255.255}
- {int: FastEthernet0/0, ip: 198.51.100.4, mask: 255.255.255.0}
- {int: FastEthernet1/0, ip: 198.51.101.4, mask: 255.255.255.0}
[117 ] Эти переменные будут добавлены «плагином vars по умолчанию», как описано в Приоритет переменной: куда поместить переменную?
Можно указать и переопределить некоторые свойства для msbuild. Для определения выходного каталога переопределите свойство OutputDir.
<target name="export" description="export code from svn">
<delete dir="${Delete.Dir}" />
<exec program="svn" commandline="export ${MySVN.Repos} ${MySVN.Dest}" />
<msbuild project="${Solution.Filename}">
<property name="Configuration" value="Release"/>
<property name="OutputDir" value="${Output.Dir}"/>
</msbuild>
</target>
Просто имел быстрый быстрый взгляд на проект, делает OutputPath вместо справки OutputDir?
Другая опция могла бы быть веб-проектом развертывания, который я люблю, потому что она называет aspnet_compiler, а также компилятор C#, таким образом, она берет проблемы, которые можно иначе пропустить до развертывания.
Сценарий сборки для одного из наших проектов использует эту команду для публикации веб-приложения:
msbuild.exe /t:_CopyWebApplication /p:Configuration=Release /p:OutDir=.\..\published\ /p:WebProjectOutputDir=.\..\published
(Текущий каталог установлен на каталог проекта веб-приложения в этой точке, которая является, почему никакой .csproj файл не указан. Все решение было уже восстановлено ранее в сценарии.)
Звуком его WebProjectOutputDir мог бы быть свойством, в котором Вы нуждаетесь.
/t: _ CopyWebApplication может также быть важным. Я не использовал NAnt, таким образом, я не знаю, можно ли передать этот параметр с msbuild задачей. Вы, возможно, должны использовать исполнительную задачу, как в этом примере: http://www.netomatix.com/development/wapwithnant.aspx. Этот пример, кажется, восстанавливает и копирует, все в одном идут.
Хм, не знайте, как сделать это с MSBuild в Nant, но использующий NAnt, я сделал это ранее как это:
<solution solutionfile="${build.dir}\solution.sln">
<webmap>
<map url="http://localhost/somdir/project.csproj"
path="c:\inetpub\wwwroot\somelocaldir" />
<webmap>
</solution>
Но затем, Вы используете задачу 'решения' NAnt offcourse вместо того, чтобы использовать MSBuild непосредственно.
править: Я также взглянул на некоторые msbuild опции; Если Вы устанавливаете OutDir & OutputPath на то же значение, что происходит?
Источник беспорядка - то, что Вы смешиваете две отличных системы сборки. Ваша цель NAnt делегирует всю работу выяснения, как опубликовать Ваше веб-приложение в файл решения, следовательно следовательно в csproj файлы, на которые это ссылается.
файлы csproj являются файлами MsBuild, таким образом, необходимо, вероятно, посмотреть там для того, как направить вывод проекта. Это сообщение dave^2 могло бы быть полезным по той проблеме.
Можно опубликовать веб-приложение везде, где Вы хотите использовать NAnt, если это делает публикацию. Можно сделать то же с MsBuild. Причина Вашего затруднительного положения состоит в том, что NAnt не делает публикации в этом случае, и Вы позволяете csproj файлу определить местоположение Вашего веб-каталога. Так или обойти csproj файл и иметь NAnt (или MsBuild) публикуют код; или измените csproj файл для публикации веб-приложения, где Вы хотите; или сделайте второе местоположение для своего веб-приложения и опубликуйте его там также использование Вашего инструмента сборки.
AFAIK, те опции являются исчерпывающими.
При использовании задачи правильный имя свойства - OutDir, а не OutputDir:
<msbuild project="${Solution.Filename}">
<property name="Configuration" value="Release"/>
<property name="OutDir" value="${Output.Dir}"/>
</msbuild>
Попробуйте что-то вроде этого:
<property name="nant.settings.currentframework" value="net-3.5"/>
<msbuild project="${Solution.Filename}">
<property name="Configuration" value="Release"/>
<property name="OutDir" value="${Full.Path}\Output\\"/>
<property name="WebProjectOutputDir" value="${Full.Path}\Output\Web\\"/>
</msbuild>