1

Я изучаю способы автоматизации развертывания конкретной сборки продукта для определенной службы облачного облака или виртуальной машины.Автоматическое развертывание до Azure

Следующие шаги будут автоматизированы, как мало ручного вмешательства, как это возможно:

  • Создание облачная или VM
  • Установить конкретную сборку продукта (как автономный EXE или службы Windows , не IIS)
  • Tweak файлы конфигурации (ы)
  • Настройте учетную запись пользователя (ей)
  • Запуск exe/service

Код в настоящее время находится в Visual Studio Online/TFS. У нас установлен Cruise Control .NET CI, и мы смотрим на переход к TeamCity. Это будет использоваться для обычных QA & Тип производства, , а также для развертывания ad-hoc, например. если в продукт добавлена ​​пробная функция, и мы хотим развернуть ее на новую виртуальную машину для конкретного клиента, с которым можно поиграть. В идеале мы могли бы использовать командную строку или пользовательский интерфейс, чтобы выбрать сборку, создать виртуальную машину и указать любые изменения конфигурации.

Одним из возможных решений может быть Octopus Deploy, хотя я не думаю, что это могло бы создать Azure VM. Я, вероятно, также посмотрю на API Azure, а также на развертывание TFS.

В принципе, это возможно, и есть ли какие-либо проверенные альтернативы, которые мне не хватает, чтобы сузить мои исследования?

Заранее благодарен!

+1

Можете ли вы предоставить более подробную информацию о шагах «настроить файлы конфигурации» и «настроить учетные записи пользователей»? Все остальные, которые, как мне кажется, могут быть сделаны с помощью сценариев PowerShell и API Azure –

+0

Все еще нужно самостоятельно разобраться с деталями, но спасибо, проверит их обоих. –

ответ

0

Это довольно широкий вопрос, но, безусловно, цель достигается с помощью одного из нескольких методов. В то время как бит старый, Tom Hollander's blog на автоматическом развертывании является хорошим стартовым местом. Я видел много OctopusDeploy, а также TeamCity, но все они в конечном итоге полагаются на Azure's PowerShell Cmdlets, Management Libraries в пользовательском коде или pure REST API звонки.

+0

Спасибо, проверьте это. –

1

В то время как Octopus Deploy может делать много вещей, в этом конкретном вашем сценарии, вы просите, чтобы он выполнял три типа управления работой - выпуском, автоматическое обеспечение и управление конфигурацией. Это тонкая грань между удивительностью автоматизации и действительно липкой ситуацией.

Из задач, о которых вы просите, почти все они могут быть сделаны сегодня в Octopus. Я бы сказал, что может быть Возможно создание облачного сервиса или виртуальной машины. Если есть какой-то командлет/библиотека PowerShell, который позволяет вам развернуть виртуальные машины с помощью аутентификации, то вы можете сделать это Octopus - но это может не быть правом инструмент для выполнения этой работы сегодня. Зачем?

По моему мнению, это искажает барьер между разработчиками, DevOps и SysAdmins. Независимо от того, используете ли вы Chef, Puppet, Salt и т. Д. Любое управление конфигурацией, которое вам нужно, для этого нужен целый слой пользователей, обладающих опытом для его резервного копирования - часто упоминается экспертиза системы, которую сами разработчики, желающие такой гибкости, могут не иметь. Во-вторых, сейчас это не акцент в Octopus (пока).Мне было бы трудно сказать, использовать ли такой инструмент, как Octopus, на том, что он может может делать против чего он должен делать или нет.

Очень приятно, что у Azure теперь есть поддержка для preinstalling the Octopus tentacle для виртуальных машин. Но для этого требуется дополнительная информация, такая как «Отпечаток сервера», и другая дополнительная информация о конфигурации для автоматизации создания vm. Это управление конфигурацией - должно ли оно находиться под контролем Octopus или что-то вроде Chef или Puppet? Я честно не имею ответа на это, но мое чувство на данный момент is не Осьминог. Когда-нибудь, возможно, но пока это действительно не будет готово и полностью проверено и проверено, я бы подождал его (хотя бы немного) с Осьминогом.

Если вы приключенческий тип, то непременно попробуйте Octopus. Я могу сделать PoC (доказательство концепции) этой автоматизации инфраструктуры в конце этого года, но полагаться на нее сегодня для использования бизнеса/производства, поскольку основным средством автоматизации инфраструктуры будет риск и потребует много работы и экспериментов. Опять же, я не говорю, что этого не может быть сделано, я задаюсь вопросом, нужно ли это делать в Octopus с этого ответа сегодня.

В любом случае, с точки зрения Octopus Deploy это возможно? Да, он еще не совсем проработан. Глядя на то, что вы хотите сделать, я бы сказал, что это двухфазный процесс: 1. разворачивание новой виртуальной машины, прикрепление щупальца к среде и 2. запуск процесса развертывания на этой новой виртуальной машине.

Я также рекомендую проверить блог Octopus. Они публично говорят об автоматизации инфраструктуры. Вы можете прочитать об этом здесь: http://octopusdeploy.com/blog/rfc-cloud-and-infrastructure-automation-support

Надеюсь, этот ответ поможет в некотором роде.

+0

Спасибо за ваш вклад, интересный. На данный момент работают только два человека (и фактические продукты!), Поэтому различие между Dev/DevOps/SysAdmins на данный момент не является проблемой для нас. Будет проверять блог. –

1

Решение для автоматического развертывания в Azure использует ElasticBox.

Я пропущу детали всех параметров конфигурации для Azure, поддерживаемых ElasticBox, поскольку они подробно описаны в разделе документации: http://elasticbox.com/documentation/deploying-and-managing-instances/using-azure/.

Вам нужно только создать поле (блок абстракции, который использует ElasticBox для определения установки и настройки развертывания службы или приложения в любом облаке), который выполняет те шаги, которые необходимо автоматизировать. Итак, наконец, вы развернете vm без ручного вмешательства, всего одним щелчком мыши или командой с некоторыми параметрами.

Коробка включает переменные, необходимые для развертывания и скриптах (в данном случае, вероятно, PowerShell, но они могут быть Баш, Python, Perl, Java и т.д.)

При развертывании окна вы создаете для разверните свою заявку, ElasticBox будет:

  • Создание облачной службы или виртуальной машины. (ElasticBox позаботится о предоставлении vm у вашего провайдера Azure или любого из ваших предпочитаемых облачных провайдеров).

  • Установите конкретную сборку продукта (в качестве автономной службы exe или Windows, а не IIS). -> Это должен быть сценарий сценария установки.

  • Настройка файлов конфигурации -> Это должно быть частью сценария события configure.

  • Настройка учетных записей пользователей -> Это должно быть частью сценария события configure.

  • Запуск exe/service -> Это должно быть частью сценария запуска запуска.

ElasticBox имеет инструмент командной строки, что позволяет сделать VM развертываний коробок, а также вы можете управлять развернутым ЗИСОМ с ним: https://pypi.python.org/pypi/ebcli

Он также поддерживает автоматическое прекращение виртуальной машины после обычая значение времени.

0

Просто FYI; Один из вариантов - сделать все, используя API управления Azure. Мне также нравится ссылаться на библиотеки Azure Client в проекте VS, и все это код C#.

Смежные вопросы