Как стать автором
Обновить

Комментарии 12

Я бы такой код на code review завернул. Почему у вас delegate_to для кода, который должен исполняться на другом хосте? Почему вы play не назначили на этот хост напрямую?


Второе — у вас шути что с IP'шниками. Все хардкоженные, причём не в инвентори (у вас же нет инвентори, да?), а в тасках, а во-вторых с нулём логики. Network numbering plan отсутствует (кто проверяет, что шлюз и адрес в одной сети?).

Данный пример показывает возможность выполнить playbook фактически на хосте, которого еще нет. Очевидно, что описание машины «Моя машина, клонированная из TemplateName» в production среде неприемлимо. Это упрощенный пример.

Я прекрасно вижу что вы хотели сказать, но сказали вы это криво. Вообще, паттерн работы с провизом виртуальных машин подразумевает обратное: что вы делегируете создание виртуальной машины на гипервизор. Такой подход позволяет ограничить делегацию (только провиз/старт), и позволяет работать с VM как с любым хостом инвентори.


Вы хотели показать как работать с vmware и ansible? Я не могу сказать насколько идиоматически у вас сделана работа с виртуалками в vmware, но вы точно делаете странное в примерах для ansible.

есть ряд вопросов:


  1. почему ansible, а не например vRealize или terraform?
  2. а создавать вм из content library чем не понравилось?
  3. каким образом получен эталонный шаблон ВМ?
  4. а какой 'gui' для заказа виртуалок? awx? foreman?
  5. как проверяете что в ваших плэйбуках нет бяки, которая сломает весь прод?
1. 4. У нас используется свой сервис, написанный на python.
2. content library, если мне не изменяет память, появилась в VMware vSphere 6, когда данный способ работает для 5.5.
3. в данном примере не имеет значения, как. Это может быть даже виртуальная машина
5. тестирование с помощью molecule, линтеры, code review

3. а не в рамках данного примера? как шаблоны получаются? packer?
5. пачка подвопросов:


  • только линтеры? т.е. Unit/integration тестов нет и фактически только после запуска узнаешь рабочий плэйбук или нет?
  • а как построен code review? встроенные средства gitlab/bitbucket для того что бы нельзя было мерджнуть в мастер (аля green build master) или коммитим в мастер и просим коллегу отревьюить по факту?

6. сколько человек(1,2,10,100) активно модифицируют плэйбуки? какой порядок SLOC?

Content Library ужасно неэффективна — она копирует шаблон через ovf вместо быстрого клона vmxt.

3. Очень разнится в зависимости от команды и отделов.
5.1 molecule — molecule.readthedocs.io/en/latest
5.2 реализовано средствами gitlab и ревью merge request.
6. 10-15

3. а можно примеры конкретные?
5.1. спрашиваю т.к. агрегирую походу к тестированию кода описывающего инфраструктуру https://github.com/ultral/awesome-iac-testing и в частности практикую тестирование ansible, тут можно глянуть видео How to test Ansible and don't go nut с деталями какие подходы использовал или на хабре почитать про Что я узнал, протестировав 200 000 строк инфраструктурного кода. Если кратко то пропогандирую пирамиду тестирования инфрастуктуры image и мне крайне интересно посмотреть/послушать про тестирование ваших плэйбуков, которые находятся крайне близко к точке с высокой стоимостью ошибки. можно чуть подрбней рассказать что кроме линтеров используется для проверки плэйбуков? какой драйвер? какой верифаер? как набирает тест кейсы? как реализуете тест кейсы? сколько это работает по времени?
5.2. а сколько примерное время от создания таски на изменение кода, до попадания на прод? час? день? месяц?

Шаблоны создаются разными способами от ручного редактирования до модификации шаблонов теми же плэйбуками. В зависимости от объема правок, запросы принимаются в течение рабочего дня-двух. Плэйбуки у нас в основном используются всего для создания и модификации тестовых сред.
  1. А где разбор как готовить эталонный плейбук?
  2. Windows 2019 вышла уже давно, там есть встроенный ssh server — зачем эти муки с winrm?
  3. Как вы обходите вопрос что сетевуха может не подключаться при раскатке машины?
  4. А что делаете когда катиться больше 2 машин?
  5. А зачем ставить 7zip отдельно, когда можно поставить его и постгрю через шоколад циклом?
  6. У вас в название шагов ошибка в наименовании сервиса Chocolatey
  7. Про то, как написан сам плейбук уже молчу — тут вам уже напихали.

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

1. Как было написано в начале статьи, на хабре множество статей про то как писать плейбуки
2. Windows 2019 установлена не на многих машинах. Показанный способ работает и с более старыми версиями
3. 4. Этим занимается отдельный сервис, написанный на python.
5. Чтобы как раз показать разные способы установки приложений
6.7. Спасибо за отзыв, учтем.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.