Vagrant Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:vagrant [2016/08/26 21:58]
[Установка vagrant + VirtualBox] последняя версия поддерживается.
wiki:vagrant [2016/08/26 22:44] (текущий)
[Provisioning with Puppet]
Строка 161: Строка 161:
 и адрес назначится автоматически. и адрес назначится автоматически.
  
-больше информации ​и приватных сетях+больше информации ​о приватных сетях
 [[https://​www.vagrantup.com/​docs/​networking/​private_network.html|тут]] [[https://​www.vagrantup.com/​docs/​networking/​private_network.html|тут]]
  
Строка 247: Строка 247:
  
 ===== Синхронизация каталогов===== ===== Синхронизация каталогов=====
-"Из коробки"​ vagrant синхронизирует каталог хоста с Vagrantfile в директорию /vagrant +"Из коробки"​ vagrant синхронизирует каталог хоста с Vagrantfile в директорию /vagrant виртуальной машины.
-виртуальной машины.+
  
-Для того, чтоб указать дополнительный каталоги для синхронизации,​ нужно добавить +Для того, чтоб указать дополнительный каталоги для синхронизации,​ нужно добавить следующую строку в Vagrantfile:​
-следующую строку в Vagrantfile:​+
 <​code>​ <​code>​
 config.vm.synced_folder "​src/",​ "/​var/​www/​html" ​ config.vm.synced_folder "​src/",​ "/​var/​www/​html" ​
Строка 257: Строка 255:
  
 Первым указывается путь на хосте, вторым - гостевой путь. Первым указывается путь на хосте, вторым - гостевой путь.
-Если на хостовой машине указывать относительный путь, то корневым будет каталог +Если на хостовой машине указывать относительный путь, то корневым будет каталог с Vagrantfile.
-с Vagrantfile.+
  
 Если абсолютный путь, то он абсолютный :) Если абсолютный путь, то он абсолютный :)
  
-Путь на гостевой машине должен быть *только* абсолютный.+Путь на гостевой машине должен быть ​**только** абсолютный.
 Если директорий не существует,​ они будут созданы рекурсивно. Если директорий не существует,​ они будут созданы рекурсивно.
  
 Дополнительные опции: Дополнительные опции:
-  * **disabled** - если указать True, то синхронизация будет отключена. Удобно,​ если +  * **disabled** - если указать True, то синхронизация будет отключена. Удобно,​ если нам не нужна "​изкоробочная"​ синхронизация. 
-нам не нужна "​изкоробочная"​ синхронизация. +  * **mount_options** - дополнительные параметры,​ которые будут переданы команде mount при монтировании
-  * **mount_options** - дополнительные параметры,​ которые будут переданы команде +
-    ​mount при монтировании+
   *  **type** - полезная опция, которая позволяет выбрать тип синхронизации. Доступны следующие варианты:​   *  **type** - полезная опция, которая позволяет выбрать тип синхронизации. Доступны следующие варианты:​
     * NFS     * NFS
Строка 279: Строка 274:
 <note important>​ тип NFS доступен только для Linux-host!</​note>​ <note important>​ тип NFS доступен только для Linux-host!</​note>​
  
-Если эта поция не указана,​ то vagrant выберет сам ​самую ​подходящую.+Если эта поция не указана,​ то vagrant выберет сам подходящую.
  
-Я рекомендую для Linux-гостей использовать rsync - этот тип //не// требует +Я рекомендую для Linux-гостей использовать rsync - этот тип //не// требует дополнений гостевых систем,​ автоматически установить rsync на всех гостей. 
-дополнений гостевых систем,​ автоматически установить rsync на всех гостей. +Также, доступны дополнительные плюшки,​ такие как vagrant rsync и vagrant rsync-auto ( о них ниже)
-Также, доступны дополнительные плюшки,​ такие как vagrant rsync и vagrant +
-rsync-auto ( о них ниже)+
   * **id** - имя, которое будет показываться при команде mount в гостевой   * **id** - имя, которое будет показываться при команде mount в гостевой
     машине. Имеет смысл использовать,​ если у вас несколько расшареных каталогов     машине. Имеет смысл использовать,​ если у вас несколько расшареных каталогов
Строка 291: Строка 284:
 ==Рассмотрим подробнее вариант rsync== ==Рассмотрим подробнее вариант rsync==
 Первое - этот тип **работает** только **в одну сторону** Первое - этот тип **работает** только **в одну сторону**
-Каталоги,​ которые синхронизированы через rsync синхронизируются автоматически +Каталоги,​ которые синхронизированы через rsync синхронизируются автоматически только один раз - при инициализации машины (vagrant up\vagrant reload).
-только один раз - при инициализации машины (vagrant up\vagrant reload).+
 Принудительно синхронизировать можно двумя путями:​ Принудительно синхронизировать можно двумя путями:​
   - vagrant rsync   - vagrant rsync
Строка 303: Строка 295:
 reload. </​note>​ reload. </​note>​
  
-Второй же работает в режиме демона и отслеживает изменения на хосте. +Второй же работает в режиме демона и отслеживает изменения на хосте. Это удобно,​ так как один каталог можно шарить на несколько машин сразу, передавая изменения на всех гостей.
-Это удобно,​ так как один каталог можно шарить на несколько машин сразу, +
-передавая изменения на всех гостей.+
  
 <note important>​Если вы хотите сделать изменения в Vagrantfile,​ для начали <note important>​Если вы хотите сделать изменения в Vagrantfile,​ для начали
Строка 404: Строка 394:
 ===== Конфигурирование нескольких машин===== ===== Конфигурирование нескольких машин=====
  
-В одном Vagrantfile может быть столько мащин, сколько нам нужно.+В одном Vagrantfile может быть столько машин, сколько нам нужно.
 Задать их можно двумя способами:​ Задать их можно двумя способами:​
   * Используя цикл   * Используя цикл
-  * Отдельно задавая каждую мащину+  * Отдельно задавая каждую машину
  
 Очевидно,​ что циклом удобно поднимать машины,​ которые буду отличаться только Очевидно,​ что циклом удобно поднимать машины,​ которые буду отличаться только
Строка 1006: Строка 996:
 Всё, можно делать vagrant up и смотреть,​ как создаётся окружение. Всё, можно делать vagrant up и смотреть,​ как создаётся окружение.
  
 +====Provisioning with Puppet====
 +
 +<note important>​ Тут не будет рассматриваться работа непосредстваенно Puppet,
 +рассматривается взаимодействие vagrant и Puppet! </​note>​
 +
 +Для тех, кто привык использовать [[https://​puppet.com/​|Puppet]],​ есть возможность использовать этот
 +инструмент с vagrant.
 +
 +Для этого нам нужна следующая структура Vagrantfile:​
 +<​code>​
 + ​config.vm.provider "​virtualbox"​ do |vb|
 +     ​vb.gui = false
 +     ​vb.memory=256
 +     ​vb.cpus=1
 +     ​vb.check_guest_additions=false
 + ​config.vm.box="​puppetlabs/​centos-7.2-64-puppet"​
 +end
 + ​config.vm.define "​node1"​ do |n1|
 +   ​n1.vm.network "​private_network",​ ip: "​192.168.0.101"​
 +   ​n1.vm.network "​forwarded_port",​ guest: 80, host: 8081
 +   ​n1.vm.hostname ="​node1"​
 + end
 +</​code>​
 +Основное изменение,​ которое отличает vagrant и Puppet, от vagrant и Ansible -
 +vagrant **не** может сам установить Puppet в гостя, поэтому строкой
 +<​code>​
 +config.vm.box="​puppetlabs/​centos-7.2-64-puppet"​
 +</​code>​
 +Мы сказали,​ что в качестве основы для гостя необходимо использовать специальный,​
 +официальный дистрибутив от команды Puppet, в котором уже будет присутствовать
 +агент.
 <​note>​ <​note>​
 докер, паппет. докер, паппет.