Разработчику требуется конвейер, который извлекает облачный шаблон автоматизации из локального экземпляра GitHub при каждом внесении изменений. Конвейер необходим для развертывания приложения WordPress в Amazon Web Services (AWS) EC2 или центре обработки данных. Служба vRealize Automation Code Stream вызывает облачный шаблон из конвейера и автоматизирует процесс его непрерывной интеграции и предоставления (continuous integration and continuous delivery, CICD) для развертывания приложения.

Для создания и запуска конвейера потребуется облачный шаблон VMware.

В качестве источника облачного шаблона в задаче облачного шаблона vRealize Automation Code Stream можно выбрать одно из следующих значений.

  • Шаблон Cloud Assembly в качестве средства управления версиями. В этом случае репозиторий GitLab или GitHub не требуется.
  • Система управления версиями, если в качестве средства управления версиями используются GitLab или GitHub. В этом случае требуется веб-перехватчик Git, и конвейер должен запускаться с помощью этого веб-перехватчика.

Если в репозитории GitHub есть облачный шаблон YAML, для его использования в конвейере необходимо выполнить следующие действия.

  1. В vRealize Automation Cloud Assembly отправьте облачный шаблон в репозиторий GitHub.
  2. В vRealize Automation Code Stream создайте конечную точку Git. Затем создайте веб-перехватчик Git, использующий конечную точку Git и конвейер.
  3. Чтобы запустить конвейер, обновите любой файл в репозитории GitHub и сохраните изменение.

Если в репозитории GitHub нет облачного шаблона YAML и требуется использовать облачный шаблон из системы управления версиями, используйте следующую процедуру, чтобы узнать, как это сделать. Здесь показано, как создать облачный шаблон для приложения WordPress и запустить его из локального репозитория GitHub. При внесении изменений в облачный шаблон YAML запускается конвейер, который автоматизирует выпуск приложения.

  • В vRealize Automation Cloud Assembly нужно добавить облачную учетную запись, облачную зону и создать облачный шаблон.
  • В vRealize Automation Code Stream нужно добавить конечную точку для локального репозитория GitHub, в котором размещен облачный шаблон. Затем нужно добавить облачный шаблон в конвейер.

В этом примере показано, как использовать облачный шаблон из локального репозитория GitHub.

Рабочий процесс автоматизации выпуска приложения, развернутого с использованием облачного шаблона YAML

Необходимые условия

  • Добавьте облачную учетную запись и облачную зону в инфраструктуру vRealize Automation Cloud Assembly. См. документацию по vRealize Automation Cloud Assembly.
  • Чтобы создать облачный шаблон для выполнения следующей процедуры, скопируйте код YAML для WordPress в буфер обмена. См. код YAML облачного шаблона в примере использования WordPress в документации по vRealize Automation Cloud Assembly.
  • Добавьте код YAML для приложения WordPress в экземпляр GitHub.
  • Добавьте веб-перехватчик для триггера Git, чтобы конвейер мог извлекать код YAML каждый раз, когда разработчик вносит в него изменения. В vRealize Automation Code Stream выберите параметр Триггеры > Git > Веб-перехватчики для Git.
  • Для работы с задачей облачного шаблона пользователю должна быть присвоена любая роль в vRealize Automation Cloud Assembly.

Процедура

  1. В vRealize Automation Cloud Assembly выполните следующие действия.
    1. а. Нажмите VMware Cloud Templates, затем создайте облачный шаблон и развертывание для приложения WordPress.
    2. б. Вставьте код YAML для WordPress, скопированный в буфер обмена, в облачный шаблон и выполните его развертывание.
      Пример облачного шаблона WordPress
  2. В vRealize Automation Code Stream создайте конечные точки.
    1. а. Создайте конечную точку Git для локального репозитория GitHub, в котором находится файл YAML.
    2. б. Добавьте конечную точку электронной почты, чтобы отправлять пользователям уведомления о состоянии работы запущенного конвейера.
      Добавление конечной точки службы электронной почты.
  3. Создайте конвейер и настройте отправку уведомлений при успешном или неудачном завершении его работы.
    Электронные уведомления о работе конвейера и выбор почтового сервера.
  4. Добавьте этап разработки и задачу облачного шаблона.
    1. а. Добавьте задачу облачного шаблона, чтобы выполнить развертывание компьютера, и настройте в ней применение файла YAML облачного шаблона для приложения Wordpress.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. б. Добавьте задачу облачного шаблона, чтобы уничтожить компьютер и освободить ресурсы.
  5. Добавьте производственный этап, включающий задачи утверждения и развертывания.
    1. а. Добавьте задачу «Пользовательская операция», чтобы настроить получение запроса на утверждение отправки приложения Wordpress в производственную среду.
    2. б. Добавьте задачу облачного шаблона, чтобы развернуть компьютер и настроить его с помощью файла YAML облачного шаблона для приложения Wordpress.
      При выборе команды Создать имя развертывания должно быть уникальным. Если оставить это поле пустым, vRealize Automation Code Stream присвоит ему случайное уникальное имя.
      Вот некоторые сведения об использовании функции Откат в вашей задаче. Если вы выбрали действие Откат, значение в поле Версия отката необходимо указывать в формате n-X. Например, n-1, n-2, n-3 и т. д. При создании и обновлении развертывания в любом расположении, кроме vRealize Automation Code Stream, откат будет запрещен.
      Когда пользователь входит в службу vRealize Automation Code Stream, она получает маркер пользователя, действительный в течение 30 минут. Для длительных периодов работы конвейера, когда выполнение задачи, предшествующей задаче облачного шаблона, занимает 30 минут и более, истекает срок действия маркера пользователя. В результате задача облачного шаблона завершается ошибкой.
      Для того чтобы конвейер мог выполняться более 30 минут, можно ввести дополнительный маркер API-интерфейса. Когда vRealize Automation Code Stream вызывает облачный шаблон, маркер API-интерфейса сохраняется, а задача облачного шаблона продолжает использовать маркер API-интерфейса.
      При использовании маркера API-интерфейса в качестве переменной он шифруется. В противном случае он используется в виде обычного текста.
      Добавление задачи «Облачный шаблон» для развертывания приложения Wordpress
  6. Запустите конвейер.
  7. В GitHub измените конфигурацию ресурсов экземпляра сервера Wordpress с small на medium.
    При внесении изменений запускается конвейер. Он извлекает обновленный код из репозитория GitHub и выполняет сборку приложения.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. Снова запустите конвейер и убедитесь, что его работа выполняется успешно и что конфигурация ресурсов экземпляра Wordpress изменилась с малый на средний.

Результаты

Поздравляем! Автоматизация выпуска приложения, развернутого с использованием облачного шаблона YAML, завершена.

Дальнейшие действия

Дополнительные сведения об использовании службы vRealize Automation Code Stream см. в разделе Учебники по использованию vRealize Automation Code Stream.

Ссылки на дополнительные ресурсы см. в разделе Дополнительные ресурсы для администраторов и разработчиков vRealize Automation Code Stream.