Разверните виртуальную машину BOSH быстрее с помощью BoshLite

Разверните виртуальную машину BOSH быстрее с помощью BoshLite

23 мая 2022 г.

Я снова пришел поговорить с тобой


Фотография Шубхам Дхаге на Unsplash


Я написал целую кучу блогов о запуске Cloud Foundry в Kubernetes. Все они работают с разной степенью успеха и имеют поддержку небольшого числа сообществ (читай: компании с большими бюджетами + инженеры + идеалы открытого исходного кода).


Иногда хочется просто BOSH. Эта милая, милая, знакомая чушь. Введите bosh-lite.


Что такое `легкомысленный?


bosh-lite работает, запуская виртуальную машину и размещая на ней BOSH. Оттуда вы можете использовать его для вращения cf-deployment, zookeeper или чего-либо еще, что имеет манифест BOSH.


Директор BOSH настроен с конфигурациями времени выполнения, облачными конфигурациями, стволовыми ячейками, выпусками и всеми другими функциями, подобными BOSH, которые вы ожидаете.


Установка


Этот инструмент существует всегда, а очень хорошее руководство по установке и настройке bosh-lite находится по адресу https://bosh.io/docs/bosh-lite/. В остальной части этого блога предполагается, что вы следовали этим инструкциям вплоть до шага № 7.


У меня возникла проблема с более новой версией VirtualBox (6.1.28). У меня сработала версия 6.1.26, доступная [здесь] (https://www.virtualbox.org/wiki/Download_Old_Builds_6_1).


Он заканчивается примером развертывания zookeeper, который я считаю крутым, но я предполагаю, что большинство директоров BOSH связаны с развертыванием Cloud Foundry. Читайте советы, которые, возможно, не очевидны из документации!


Развертывание Cloud Foundry


В cf-deployment-land есть документация по использованию BBL для развертывания bosh-lite и CF для [GCP или AWS] (https://github.com/cloudfoundry/cf-deployment/tree/main/iaas- поддержка/бош-лайт). Я указываю эти инструкции на случай, если у вас неограниченный бюджет IAAS, однако я покажу вам, как развернуть это на вашем Mac.


В cf-deployment также есть ознакомительный файл [Для операторов, развертывающих CF на локальном bosh-lite] (https://github.com/cloudfoundry/cf-deployment/blob/1b2367f37cea2dffa1ab35d5935c08937096bc72/texts/deployment-guide.md#for -operators-deploying-cf-to-local-bosh-lite). Я буду использовать это как основу для сценария ниже.


Клонировать cf-deployment


Для этих примеров я предположил, что вы клонируете репозиторий CF в свою домашнюю папку:


компакт-диск ~


git-клон https://github.com/cloudfoundry/cf-deployment.git


Настройка переменных среды BOSH


Это разбросано по нескольким местам в документации, я собрал их все вместе:


экспорт CREDHUB_SERVER=https://192.168.56.6:8844


экспорт CREDHUB_CLIENT=credhub-admin


экспортировать CREDHUB_SECRET=$(чушь интерполировать ~/deployments/vbox/creds.yml --path=/credhub_admin_client_secret)


export CREDHUB_CA_CERT="$(чушь интерполировать ~/deployments/vbox/creds.yml --path=/credhub_tls/ca )"$'
'"$(чушь интерполировать ~/deployments/vbox/creds.yml --path =/uaa_ssl/ca)"


экспорт BOSH_CLIENT=admin


export BOSH_CLIENT_SECRET="$(bosh int ~/deployments/vbox/creds.yml --path /admin_password)"


export BOSH_CA_CERT="$(чушь интерполировать ~/deployments/vbox/creds.yml --path /director_ssl/ca)"


экспорт BOSH_ENVIRONMENT=vbox


bosh alias-env vbox -e 192.168.56.6 --ca-cert <(bosh int ~/deployments/vbox/creds.yml --path /director_ssl/ca)


Вы можете добавить это в свой профиль bash/zsh.


Загрузите Stemcell, Cloud Config и Runtime Config


bosh upload-stemcell --sha1 f399044d2ebe3351f0f1b0b3f97ef11464d283b4 "https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-xenial-go_agent?v=621.125"


bosh update-runtime-config ~/workspace/bosh-deployment/runtime-configs/dns.yml --name dns


Bosh update-cloud-config ~/cf-deployment/iaas-support/bosh-lite/cloud-config.yml


Со временем CF может пожаловаться на более новую версию стволовой клетки, обновите команду bosh upload-stemcell, указав запрошенную версию. Версия и sha1 перечислены [здесь] (https://bosh.io/stemcells/bosh-warden-boshlite-ubuntu-bionic-go_agent), обратите внимание, что bosh-lite использует стволовые клетки warden.


Иди выпей


Эта часть займет около 45 минут, если вы не изменили IP-адрес директора BOSH, следующая команда развернет CF.


cd ~/cf-развертывание


bosh -e 192.168.56.6 -d cf развернуть \


cf-развертывание.yml \


-o операции/bosh-lite.yml \


-v системный_домен=bosh-lite.com


Войти в CF


Это делается в два этапа: нацеливание на API, а затем вход в систему, получение пароля администратора из credhub без вывода его на экран:


cf API https://api.bosh-lite.com --skip-ssl-validation


cf login -u admin -p $(credhub get -n $(credhub find -n admin | grep cf_admin | cut -d: -f2) | значение grep | cut -d: -f2) -o system -s test


Тада!


Создайте пространство и начните продвигать приложения.


(Необязательно) Настройка SSH для BOSH Director


Почему? Мне нравится иметь возможность подключиться по SSH к моему директору BOSH, чтобы поковыряться. Я странный. Это не требуется для развертывания CF, но неплохо иметь:


bosh int ~/deployments/vbox/creds.yml --path /jumpbox_ssh/private_key > ~/deployments/vbox/jumpbox.key


chmod 600 ~/deployments/vbox/jumpbox.key


ssh jumpbox@192.168.56.6 -i ~/deployments/vbox/jumpbox.key


Остерегайтесь драконов


Проблема №1 – Перезагрузка


Перезагрузка вашего Mac приводит к неправильной работе bosh-lite, если вы не выполните пару простых шагов.


Перед отключением:


  • В Oracle VM VirtualBox Manager выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Закрыть» > «Сохранить состояние».

После перезагрузки:


  • В Oracle VM VirtualBox Manager выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Пуск» > «Безголовый запуск».

Даже выполняя эти шаги, я не всегда могу вернуть BOSH Director в онлайн.


Если вы случайно перезагрузили хост, вы можете воссоздать директор BOSH, используя файл состояния, и использовать bosh cck, чтобы восстановить сломанное развертывание CF:


компакт-диск ~/развертывания/vbox


bosh create-env ~/workspace/bosh-deployment/bosh.yml \


--состояние ./состояние.json \


-o ~/workspace/bosh-deployment/virtualbox/cpi.yml \


-o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \


-o ~/рабочая область/bosh-deployment/bosh-lite.yml \


-o ~/workspace/bosh-deployment/bosh-lite-runc.yml \


-o ~/рабочая область/бош-развертывание/uaa.yml \


-o ~/workspace/bosh-deployment/credhub.yml \


-o ~/workspace/bosh-deployment/jumpbox-user.yml \


--vars-store ./creds.yml \


-v имя_директора=бош-лайт \


-v внутренний_ip=192.168.56.6 \


-v внутренний_gw=192.168.56.1 \


-v внутренний_cidr=192.168.50.0/24 \


-v outbound_network_name=NatNetwork --пересоздать


чушь


Если это не сработает, вы можете полностью стереть и воссоздать развертывание BOSH и CF, выполнив следующие действия:


  • Войдите в Oracle VM VirtualBox Manager, выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Удалить» > «Удалить все файлы».

  • Удалите файл состояния в ~/deployments/vbox/state.json.

  • Повторно запустите команду bosh create-env, а затем повторно разверните CF.

Проблема 2 – Проблемы с сетью


Если вы получаете:


Развертывание:


Создание экземпляра 'bosh/0':


Ожидание готовности экземпляра:


Сообщение "https://mbus:<отредактировано>@192.168.56.6:6868/agent": набрать tcp 192.168.56.6:6868: соединение: соединение отклонено


Код выхода 1


Вероятно, вы пропустили шаг по добавлению маршрутизации хоста:


sudo маршрут добавить -net 10.244.0.0/16 192.168.56.6


Заключительная мысль


Мы все заслуживаем хороших вещей. bosh-lite – одна из приятных вещей для тех, кто любит BOSH и хочет использовать его на своем компьютере.


Наслаждаться!


Также опубликовано [здесь] (https://www.starkandwayne.com/blog/hello-bosh-lite-my-old-friend/).



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE