Рубрики
Uncategorized

Vagrant 101.

Vagrant — это инструмент Hashicorp, который используется для создания легких сред. Как SOM … с меткой DevOps, учебник, бродяга, WebDev.

Vagrant — это инструмент Hashicorp, который используется для создания легких сред. Как кто-то, кто любит экспериментировать с Все языки Это часто может быть огромная боль, чтобы получить локальную среду DEV, созданную перед прыжками в новый проект.

Были времена, когда я возвращаюсь на язык, только чтобы найти, что SDK или Runtime, который я установил ранее устарел, поэтому я должен удалить его, прежде чем переустановить правильную версию. Это много усилий, чтобы пойти, если бы я только заканчиваю, может быть только на выходных, создание базового прототипа.

К счастью, инструменты, такие как бродячие, чтобы сделать этот процесс намного проще. Содержащие свои проекты и установки на крошечной виртуальной машине, ваши изменения длится только до тех пор, пока существует виртуальная машина, и они не загрязняют хост-машина с неиспользованными Runtimes и SDK.

Возможно, моя любимая вещь о Vagrant — это его способность определять полную среду разработки в течение одного числа читаемого файла. Этот файл можно хранить в репозитории проекта, так что в любое время вам нужно сделать дальнейшую работу, вы можете просто раскрутить среду Dev и добраться до работы.

Установка Hashicorp так же просто, как идет на Сайт Hashicorp и отключение соответствующего установочного клиента.

Если вы будете использовать Windows, Vagrant не будет работать, если у вас включен Hyper-V, поэтому вам нужно будет отключить это, прежде чем продолжить. Вы можете сделать это из приглашения администратора PowerShell с:

Отключить-windowsoptionalfeature -online -featurename Microsoft-Hyper -В-все

Для того, чтобы создать бродную среду, мы должны сначала выбрать коробка основывать нашу окружающую среду. А коробка В брунте представляет базовое изображение для виртуальной машины, обычно определяющей базовую операционную систему и потенциально установленные рабочие вещества.

Ящики можно найти на Бродяжественное облако или, альтернативно созданный нами. Чтобы сохранить вещи простыми, давайте создадим экземпляр hashicorp/bionic64 коробка от бродного облака. Чтобы сделать это, откройте терминал и введите Vagrange init hashicorp/bionic64 . Это должно создать Вагрантиль В вашем каталоге, содержащем следующее:

# Comments removed for readability


Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/bionic64"

end

Отсюда мы можем просто ввести Vagrant up В терминале создать окружающую среду на основе нашего VagrantFile. Быстрый бродячий статус позволит нам посмотреть, работает ли наша среда:

$ vagrant status

Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Отсюда мы можем подключиться к окружающей среде, введя бродячий ssh в терминале. Нам не нужно делать это прямо сейчас, но идти вперед и попробовать, если вам интересно.

Хорошо, так что давайте скажем, мы хотим нашей бродной среды для создания новой колбы приложения с Python. У нас есть три зависимости для нашей среды: Python , пипс и колбы .

Установка наших зависимостей

К счастью, Python 3 поставляется в стандартной комплектации в Ubuntu 18.04, поэтому все, что нам нужно установить на данный момент, это PIP3. В блубь, вы можете использовать что-то, называемое Provisioner, который является причудливым сроком для бегуна скрипта после создания. Добавьте следующее в свой VagrantFile:

  config.vm.provision "shell", inline: <<-SHELL
    sudo apt-get update
    sudo apt-get install -y python3-pip

    pip3 install flask
  SHELL

Снимите свою нынешнюю среду, используя бродячий уничтожать и воссоздать его, используя Vagrant up Отказ Вы заметите, что предоставление нашей среды теперь занимает немного дольше, что связано с Provisisioner, управляющим нашим скриптом выше.

Наше применение

В том же каталоге, что и ваш VagrantFile, создайте новый файл под названием app.py и вставьте в следующий код:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from Vagrant!'

Чтобы получить доступ к этой услуге через браузер, нам нужно пересылать порт 5000 на блуждающей машине в порт на нашем хост-машине. Я буду держать их как в 5000, чтобы просто сохранить его. Добавьте следующее на свой VagrantFile чуть выше своего Provisioner:

config.vm.network "forwarded_port", guest: 5000, host: 5000

После этого нам нужно сделать Vagrange перезагрузка восстановить нашу среду из нового ваагрантина. Это сэкономит нам много времени, так как оно обновит только то, что фактически изменилось, и не придется снова запустить Provisioner.

Синхронизированные папки

Вы заметите, что я ссылаюсь на каталог /бродячий Выше, и я думаю, что это хорошее время, чтобы объяснить синхронизированные папки в брунт. Синхронизированная папка — это каталог, который передается между вашим хостом и вашим виртуальной машиной, позволяя вам работать над вашими файлами проекта на собственной машине, а компилировать или запустить приложение в блуждающей среде. По умолчанию установлена синхронизированная папка в блуждающей среде, и она устанавливается в каталог, в котором находится ваш VagrantFile.

Дайте это попробовать: бродячий ssh в вашу среду и перейти к Ваш /бродячий каталог. Если вы перечислите элементы в этом каталоге, вы увидите ваш Вагрантиль и приложение .

Итак, мы готовы фактически запустить приложение Flask, поэтому SSH в вашу машину и введите следующие в терминал:

Флэк требует Flask_app Переменная среды для установки для установки для _ Флэк бежит _Command на работу.

$ export FLASK_APP=/vagrant/app.py
$ flask run --host=0.0.0.0

Приложение теперь должно работать на http://localhost: 5000 и идя к этому URL на вашем хозяине, должен дать сообщение Здравствуйте от бродяга! . Теперь у нас есть полнофункциональная среда DEV, мы можем включить VagrantFile в нашем репозитории проекта, поэтому любые другие разработчики, работающие над проектом, могут просто раскрутить то же самое для себя для себя!

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

Оригинал: «https://dev.to/carltonupp/vagrant-101-35pj»