Активный выбор Jenkins: Как получить изображения из Google Compute Engine? - PullRequest
0 голосов
/ 30 октября 2019

это мой первый пост, так что извините, если что-то не так. Я новичок в Jenkins и Groovy, поэтому будьте спокойны: P

В настоящее время я пытаюсь заставить Jenkins развернуть всю виртуальную машину в Google Cloud. После 30 попыток и некоторых обходных путей он работает, но все варианты являются статическими. Я могу:

  • выбрать микросервис
  • выбрать его версию
  • ввести IP-адреса, которые будет использовать виртуальная машина, а также там, где указан микросервисбудет развернуто
  • выберите сеть
  • выберите зону
  • выберите изображение

Пока в пределах 1: 30 м или около того яиметь полную виртуальную машину и работать с микро сервисом или веб-сайтом, работающим как шарм. Но здесь начинается проблема. Позвольте мне рассказать, как я это сделал.

Для аутентификации на GCP, позволяющей мне запускать команды, которые у меня есть:

stage('Authenticate VM'){
    sh "gcloud auth activate-service-account

Для создания виртуальной машины у меня есть:

stage ('Building VM'){    
    sh "gcloud compute --project=SOMETHING_HERE instances create  "to be continued!" 
sleep 60

«сон 60» выше позволяет запускать кота до того, как Дженкинс попытается развернуться на нем. Все работает, но, как уже упоминалось, все варианты статичны. Я установил их вручную, что не очень хорошо.

Я ищу решение, которое позволило бы мне иметь что-то вроде:

stage ('Listing Images'){    
    sh "gcloud compute images list | grep tomcat | awk '{print $1 }'" 

В результате, скажем, 5 строк, я хотел бы"преобразовать" эти строки в параметры, которые будут использоваться для создания виртуальной машины.

Приведенный выше пример awk не работал, поэтому мне пришлось использовать

'gcloud compute images list'.execute() | 'grep tomcat'.execute() | ['awk', '{print $1 }'].execute()

И ничего не появляется. 50% я верю, потому что я не могу делать все правильно. другие 50%, потому что я не могу найти единственную официальную документацию, которая объясняет это. «Список изображений», показанный выше, занимает не менее 4–5 секунд, поэтому как заставить этого парня получить результат, если для его запуска требуется больше времени, чем для открытия страницы развертывания?

У меня есть «Облачный плагин»установлен, который показывает все, что мне нужно:

  • Сеть
  • Изображения
  • Зоны
  • Шаблоны
  • Тип машины
  • и т. Д.

Но я понятия не имею, как это назвать: (

Если у кого-нибудь здесь есть что-то близкое к этому, пожалуйста, не стесняйтесь поделиться. Я постараюсьчтобы адаптировать его:)

Большое спасибо, ребята

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...