Возможно, я упрощаю ваш вопрос, но чтобы получить желаемое instance-mapping.xml
, я бы использовал преобразование конфигурации. Пример файла instance-mappings.transform.xml
будет выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<endpoints xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<endpoint name="QueueName1" xdt:Locator="Match(name)">
<instance machine="server1" xdt:Transform="SetAttributes" />
</endpoint>
<endpoint name="QueueName2" xdt:Locator="Match(name)">
<instance machine="server2" xdt:Transform="SetAttributes" />
</endpoint>
</endpoints>
А затем в Octopus добавьте преобразование конфигурации instance-mapping.transform.xml => instance-mapping.xml
.
Если вы хотите, чтобы значения машины были настроены как переменные Octopus, вы Можно добавить подстановку переменных. Укажите переменные: machine[QueueName1]
со значением machine1
и machine[QueueName2]
со значением machine2
и измените файл преобразования:
<?xml version="1.0" encoding="utf-8" ?>
<endpoints xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<endpoint name="QueueName1" xdt:Locator="Match(name)">
<instance machine="#{machine[QueueName1]}" xdt:Transform="SetAttributes" />
</endpoint>
<endpoint name="QueueName2" xdt:Locator="Match(name)">
<instance machine="#{machine[QueueName2]}" xdt:Transform="SetAttributes" />
</endpoint>
</endpoints>
Если во время разработки возникают трения при добавлении локальных конечных точек, которые этого не делают Имея смысл в других средах, вы можете использовать Octopus в качестве источника правды для ваших конечных точек. Для этого добавьте переменные для каждой конечной точки в ваш проект Octopus:
Затем вы можете установить свои конечные точки в файле преобразования на основе значений в Осьминог:
<?xml version="1.0" encoding="utf-8" ?>
<endpoints xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Replace">
#{each e in endpoint}
<endpoint name="#{e.Name}">
<instance machine="#{e.Machine}"/>
</endpoint>
#{/each}
</endpoints>
Учитывая пример переменных и файл преобразования, используя подстановку переменных и преобразования конфигурации в Octopus, вы получите желаемое instance-mapping.xml
:
<?xml version="1.0" encoding="utf-8"?>
<endpoints>
<endpoint name="QueueName1">
<instance machine="Machine1"/>
</endpoint>
<endpoint name="QueueName2">
<instance machine="Machine2"/>
</endpoint>
</endpoints>
Я надеюсь, что это помогает.