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

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

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

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

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

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

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

  • В Cloud Assembly нужно добавить облачную учетную запись, облачную зону и создать облачный шаблон.
  • В 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 каждый раз, когда разработчик вносит в него изменения. В Code Stream выберите параметр Триггеры > Git > Веб-перехватчики для Git.
  • Для работы с задачей облачного шаблона пользователю должна быть присвоена любая роль в Cloud Assembly.

Процедура

  1. В Cloud Assembly выполните следующие действия.
    1. а. Нажмите VMware Cloud Templates, затем создайте облачный шаблон и развертывание для приложения WordPress.
    2. б. Вставьте код YAML для WordPress, скопированный в буфер обмена, в облачный шаблон и выполните его развертывание.
      Благодаря применению кода YAML облачный шаблон создает уровень базы данных, веб-уровень и сеть в развертывании.
  2. В 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.
      При выборе команды Создать имя развертывания должно быть уникальным. Если оставить это поле пустым, Code Stream назначает ему случайное уникальное имя.
      Вот некоторые важные сведения об использовании функции Откат в вашей задаче. Если вы выбрали действие Откат, значение в поле Версия отката необходимо указывать в формате n-X. Например, n-1, n-2, n-3 и т. д. При создании и обновлении развертывания в любом расположении, кроме Code Stream, откат будет разрешен.
      Когда пользователь входит в службу Code Stream, она получает маркер пользователя, действительный в течение 30 минут. Для длительных периодов работы конвейера, когда выполнение задачи, предшествующей задаче облачного шаблона, занимает 30 минут и более, истекает срок действия маркера пользователя. В результате задача облачного шаблона завершается ошибкой.
      Для того чтобы конвейер мог выполняться более 30 минут, можно ввести дополнительный маркер API-интерфейса. Когда Code Stream вызывает облачный шаблон, маркер API-интерфейса сохраняется, а задача облачного шаблона продолжает использовать маркер API-интерфейса.
      При использовании маркера API-интерфейса в качестве переменной он шифруется. В противном случае он используется в виде обычного текста.
      Задача облачного шаблона может использовать облачный шаблон VMware в Cloud Assembly или извлекать шаблон из системы управления версиями в репозитории GitLab или репозитории GitHub.
  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, завершена.

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

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

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