The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Vagrant 2.0, инструментария для создания виртуальных окружений

11.09.2017 22:28

Доступен релиз Vagrant 2.0, инструментария для упрощения формирования, установки и управления образами виртуальных машин при разработке и тестировании проектов с использованием различных систем виртуализации. Предоставляются средства интеграции с VirtualBox, VMware, AWS, Google Cloud Platform, OpenStack, Hyper-V, Docker и LXC. Код проекта распространяется под лицензией MIT. В рамках сервиса Vagrant Cloud развивается каталог готовых образов на базе разных систем.

Vagrant позволяет без лишних усложнений, используя единый конфигурационный файл, сгенерировать готовое к работе окружение для разработки, удовлетворяющее заданным параметрам. Окружения можно создавать на базе различных операционных систем, в том числе Windows, macOS, Ubuntu, Debian, Red Hat Enterprise Linux, CentOS, Arch Linux и Fedora. Создаваемые окружения содержат преднастроенные компоненты выбранной операционной системы, позволяют подключаться к ним по SSH и копировать данные через совместные папки (shared folders). Для упрощения развёртывания приложений внутри окружений могут быть предустановлены системы Chef, Ansible и Puppet. Среди известных компаний, использующих в своей работе Vagrant, отмечаются BBC, O'Reilly, Mozilla и Nokia.

В новом выпуске добавлена поддержка двухфакторной аутентификации, реализована возможность создавать гостевые окружения на базе ALT Linux, представлена система определения сервисов systemd, добавлен режим совместимости с разными версиями Ansible.

  1. Главная ссылка к новости (https://www.hashicorp.com/blog...)
  2. OpenNews: Представлен Otto, инструментарий для создания микросервисов из изолированных приложений
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47173-vagrant
Ключевые слова: vagrant
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:07, 12/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Неплохо было бы переписать этот руби-ужас на js
     
     
  • 2.2, Аноним (-), 00:11, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    что может быть лучше руби для скриптов? ну серьёзно?
     
     
  • 3.5, VINRARUS (ok), 02:51, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    SHELL
     
     
  • 4.12, Аноним (-), 09:13, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > SHELL

    Увы, для больших проектов он не годится. Vagrant не такой уж и большой, но на shell он будет выглядеть страшно. Вспомните inxi на 10 тысяч строк баша.

     
     
  • 5.17, Michael Shigorin (ok), 09:46, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> SHELL
    > Увы, для больших проектов он не годится.

    Тут дело не столько в величине проекта, сколько в сложности структур данных.  На шелле прекрасно организовывается поток (а-ля функциональные языки в своём роде) с применением более других средств в качестве основных, но вот манипулировать чем-то вроде хэшей оказывается уже нетривиально.

    > Vagrant не такой уж и большой, но на shell он будет выглядеть страшно.

    Не настолько хорошо читал/помню Vagrant, но на шелле тоже можно писать очень по-разному.  Желающие могут посмотреть, скажем, http://git.altlinux.org/gears/c/control.git?p=control.git;a=blob;f=control/fu -- это "движок" http://altlinux.org/control на четыре *килобайта* (разработка Owl/ALT, которую давно бы могли позаимствовать практически любые пакетные дистрибутивы с большой для себя пользой).

    > Вспомните inxi на 10 тысяч строк баша.

    Да много чего можно вспомнить, тот же main() в mplayer.  Для оценки пригодности языка всё-таки стоит брать лучшие примеры, а не худшие, как мне кажется.

     
     
  • 6.21, Аноним (-), 11:06, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут дело не столько в величине проекта, сколько в сложности структур данных.
    >  На шелле прекрасно организовывается поток (а-ля функциональные языки в своём
    > роде) с применением более других средств в качестве основных, но вот
    > манипулировать чем-то вроде хэшей оказывается уже нетривиально.

    Да, я именно это и пытался сказать, но ещё до конца не проснулся, не смог адекватно сформулировать, стёр и и написал то что выше с надеждой, что кто-то укажет на написаннок вами. Я написал про размер проекта подразумевая то, что с ростом кодовой базы растёт сложность проекта и его структур данных, а красиво скомпоновать их на баше не так уж и просто. Баш прекрасен, но он не серебряная пуля.

    > Да много чего можно вспомнить, тот же main() в mplayer.  Для
    > оценки пригодности языка всё-таки стоит брать лучшие примеры, а не худшие,
    > как мне кажется.

    Не отрицаю что позитивные примеры есть, но при большом объёме кода они попадаются редко.

     
  • 4.22, commiethebeastie (ok), 11:23, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И словить из-за какой-нибудь ошибки в переменных rm -rf /usr /shmele
     
     
  • 5.25, VINRARUS (ok), 14:57, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    echo free -df | sed -e 's%d%r%' -e 's%^f%%' -e 's%$% /%' -e 's%$%*%' -e 's%e.%m%'
     
  • 3.6, Аноним (-), 03:46, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Петухон? Серьёзно.
     
     
  • 4.8, Аноним (-), 06:48, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    с его то синтаксисом?
     
     
  • 5.11, Аноним (-), 09:11, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Его синтаксис всяко лучше Руби.
     
     
  • 6.16, Michael Shigorin (ok), 09:42, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Его синтаксис всяко лучше Руби.

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

    _Чем_ синтаксис питона "всяко лучше" рубёвого, Вы уточнять не стали.

    PS: спокойно отношусь к _разработчикам_ на питоне, которые спокойно делают дело, а не устраивают вот эти вот змей-парады.

     
     
  • 7.20, Аноним (-), 10:55, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да пожалуйста, объясню. Мне регулярно приходится иметь дело с Vagrantfile, котрый записывается на чистом Ruby. Там мне не нравится неинтуитивная запись вроде такой:

    config.vm.provision :shell, :inline => "mv /tmp/vagrantfile-user-data /var/lib/coreos-vagrant/", :privileged => true

    Или

    $shared_folders.each_with_index do |(host_folder, guest_folder), index|
    config.vm.synced_folder host_folder.to_s, guest_folder.to_s, id: "core-share%02d" % index, nfs: true, mount_options: ['nolock,vers=3,udp']
    end

    (Скопипащено с первого попавшегося примера, а именно отсюда: https://github.com/coreos/coreos-vagrant/blob/29b611d5dce5976efbbf749192747044)

    Я знаю зачем оно надо, но со стороны выглядит как мешанина. И, пожалуйста, не надо сравнивать с перлом.

    Я уже, конечно, привык, но всё ещё путаюсь от непривычки. В случае с питоном синтаксис довольно однообразен и по нему легко догадаться что есть что (этому способствует человекочитаемая запись типа "... as var", "for var in iterable", запись диктов через двоеточие почти как в json и т.д.), и при первом знакомстве с ним (уже зная синтаксис баша, C и js) читать ман мне не пришлось (да, я плевался на отступы, как и все, и предотвращая вопросы - я js-хейтер). Впоследствии оказалось, что я не знал лишь пары мелочей, вроде "что значит запись вида u'foo' и b'foo'" и отличия записи списков и кортежей, а намного позже пришлось узнать, как записать inline conditional statements, list comprehensions, лямбды и прочее.

     
     
  • 8.23, Michael Shigorin (ok), 11:49, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Предложите эквивалентную запись на питоне или DSL Ну вот, а мне бы хотелось ... текст свёрнут, показать
     
     
  • 9.32, Анонии (?), 22:14, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Много есть вариантов, но предлагать нет смысла - Vagrant никто переписывать не с... текст свёрнут, показать
     
  • 8.35, Аноним (-), 23:03, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Множество проблем решается простым форматированием или использованием короткого ... текст свёрнут, показать
     
  • 3.9, AntonAlekseevich (ok), 07:21, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > что может быть лучше руби для скриптов?

    Python, BASh, !!!Perl!!!
    Конечно если умеете на этом писать.

     
     
  • 4.10, Аноним (-), 08:30, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    не проще ли просто писать на руби? Хотя бы потому, что из всего выше перечисленного он банально самый молодой
     
  • 4.14, freehck (ok), 09:23, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Поддерживаю, только без python.

    Странные там вещи. Ну вот взять хотя бы fsutil. Ну вот кому пришло в голову, что при копировании файлов, надо копировать и время, и отменить этого никак нельзя? По-моему адекватнее всего было бы сделать копирование полностью аналогичным команде cp.

     
     
  • 5.18, Аноним (-), 10:27, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как будто при наличии необходимых полномочий у копирующего, cp не переносит права копируемых файлов.
     
     
  • 6.19, freehck (ok), 10:35, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Как будто при наличии необходимых полномочий у копирующего, cp не переносит права
    > копируемых файлов.

    Извиняюсь, другое было в голове, когда писал коммент. Не привилегии, а время. atime, ctime, mtime.

     
  • 5.37, Аноним (-), 21:02, 20/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Странные там вещи. Ну вот взять хотя бы fsutil

    Взять можно, откуда-нибудь, потому что в питон такого нет, есть shutil. Что сразу показывает степень познания. И, конечно же, в https://docs.python.org/2/library/shutil.html видим вагон вариантов: с копированием времени и без.

    Почему-то ругают питон чаще всего люди, которые о нём понятия не имеют..

     
     
  • 6.38, freehck (ok), 04:38, 21/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Странные там вещи. Ну вот взять хотя бы fsutil
    > Взять можно, откуда-нибудь, потому что в питон такого нет, есть shutil. Что
    > сразу показывает степень познания. И, конечно же, в https://docs.python.org/2/library/shutil.html
    > видим вагон вариантов: с копированием времени и без.
    > Почему-то ругают питон чаще всего люди, которые о нём понятия не имеют..

    Пфффф, я и не утверждал, что я в этой бяке разбираюсь. Ну попутал названия, с кем не бывает? :)

    Но факт вот какой: мне подсунули install-скрипт на питоне, который для рекурсивного копирования директорий использовал copytree. Который, внезапно, использует copy2, копирующий ещё и stat-ы.

    А мы по разнице atime-ов определяем список файлов, которые войдут в пакет. Угадайте, на что мы нарвались.

    Так что может там и есть вагон вариантов, но как всегда почему-то нету того, который был нужен нам. Не, мы конечно всё написали, но противно, жуть: почему я, не питонист ни разу, должен тратить время, чтобы находить вот такие вот заморочки, дебажа то, что должно просто работать прямо из коробки?

    И вот ещё забавная какая штука: в новых версиях питона можно в copytree подменить copy2 на copy, в старых -- нельзя. У нас как раз старая. Но собственно забавно не это, а скорее вот что:
    https://github.com/python/cpython/blob/master/Lib/shutil.py#L353

    То есть для директорий stat-ы всё равно копируются, хоть ты тресни. Ну вот и расскажите мне теперь, что они не наркоманы.

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

     
     
  • 7.40, freehck (ok), 13:13, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Напишу сюда, чтоб не забыть, ибо часто обращаюсь к этому посту.

    Где в Python нормальный модуль для работы со Stream-ами? Что стриму нужно-то? Если по минимуму, то это конструктор, null-чекер и next.

    Ну вот например как в OCaml это сделано: http://caml.inria.fr/pub/docs/manual-ocaml/libref/Stream.html

    А в Python я смог максимум что нарыть -- это IO. Но чёрт возьми, это именно что IO, и к стримам это всё имеет весьма опосредованное отношение: https://docs.python.org/2/library/io.html

    Может быть я чего-то не доискал, конечно, но мне весьма грустно от того, что по стримам ничего не смог найти толкового. Такое чувство, что каждую элементарную вещь в Python-е надо писать самому, ибо в стандартных библиотеках целая куча всяких разных штуковин, очень похожих на то, что тебе надо, но ни одна толком не является именно тем, что ты ищешь, и ни одну нельзя использовать в качестве строительного кирпичика того, что ты ищешь... :/

    UPD: Понял. Похоже, питонисты решили, что куда круче использовать повально генераторы вместо стримов. Короче.

    [CODE]
    def read_in_lines(file_object):
        while True:
            line = file_object.readline()
            if not line:
                break
            yield line.rstrip("\n")
    s = read_in_lines(open('data'))
    [/CODE]

    UPD2: или даже короче

    [CODE]
    def stream_of_file(filename):
        return (line.rstrip("\n") for line in open(filename))
    [/CODE]

    C open я возможно неправ -- надо ведь закрывать... Ну да фиг с ним.

    UPD3: а стрим по файлу они, значит, организуют вот так
    [CODE]
    def stream_of_fd(fd):
        return (line.rstrip("\n") for line in fd)

    def stream_of_file(filename):
        fd = open(filename)
        for line in stream_of_fd(fd):
            yield line
        fd.close()

    for line in stream_of_file('data'):
        print(line)
        ...
    [/CODE]

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

     
  • 2.3, Sabakwaka (ok), 00:14, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> переписать этот руби-ужас

    «Форк» знаешь? Делай форк.

     
  • 2.4, Аноним (-), 00:57, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    s/js/js-ужас/

    не благодари

     
  • 2.15, Michael Shigorin (ok), 09:39, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Неплохо было бы переписать этот руби-ужас на js

    Вчерась рассматривал кишки очередного ужаса по имени meson.

    [CODE]Makefiles also have a syntax that is very unpleasant to write
    which makes them a big maintenance burden.[/CODE]

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

    Разумеется, шаг вправо-влево -- и из него полезли черви.  А с тем же scons и шагать не надо было, достаточно хлопка в ладоши прямо на gcc/linux/x86_64.

    Но кому-то так жить проще.

    PS: и ведь все такие на старте орут "быстрее, быстрее, а этот init/make/younameit вообще никак нельзя сделать быстрее!"; как только ввязываются в бой, вдруг выясняется, что скорость -- не такое уж и большое достоинство, и вообще.

     
     
  • 3.31, Яков (?), 22:03, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А вот за "смузливых милашек" - огромное инженерное спасибо! Буду широко использовать термин.
     

  • 1.7, iPony (?), 05:56, 12/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хотя вроде как его хотели прикрыть. Но...
     
     
  • 2.13, Аноним (-), 09:14, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотя вроде как его хотели прикрыть. Но...

    Да не, с чего бы? Это они Otto прикрыли, как я понял - в пользу Atlas.

     
     
  • 3.24, iPony (?), 14:45, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://blog.codeship.com/otto-next-generation-vagrant/
     
     
  • 4.30, Анонии (?), 21:53, 12/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала было это: https://www.hashicorp.com/blog/otto/
    А потом это: https://www.hashicorp.com/blog/decommissioning-otto/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру