Как я уже писал ранее , Vagrant — удобный инструмент для создания локализованных виртуальных машин . Это похоже на запуск изображений EC2 , но, по большей части, все локализовано (кстати, вы можете использовать Vagrant для запуска изображений EC2 ). Если вы когда-либо использовали VMWare, то это то же самое, за исключением Vagrant бесплатно. Вы можете создавать виртуальные машины из разных операционных систем, запускать их и легко срывать.
Vagrant прекрасно работает с такими модными фреймворками DevOps, как Chef и Puppet, и, если для вашей инсталляции требуется несколько компонентов, то эти инструменты — верный путь. Иногда, однако, простой Bash-скрипт достаточно хорош, как в случае автоматической установки некоторых базовых компонентов, таких как Java , Node.js или Ruby .
Используя конфигурационный файл Vagrant, точно названный Vagrantfile
, вы можете Vagrantfile
экземпляру виртуальной машины выполнить серию шагов — это могут быть простые сценарии оболочки, поваренные книги Chef или эквивалент Puppet.
Соответственно, первым шагом для обеспечения Ubuntu box с Java является инициализация 64-битного экземпляра Ubuntu 12.04 LTS ( Precise Pangolin ). Вы можете сделать это с помощью команды vagrant init
следующим образом:
Инициализация Vagrant-бокса
1
|
$> vagrant init ubuntu.lts. 64 http: //files.vagrantup.com/precise64.box |
Это создает Vagrantfile
в каталоге, в котором вы Vagrantfile
команду, и создает именованную виртуальную машину (то есть «ubuntu.lts.64»), которая основана на Ubuntu 12.04 LTS.
Базовые установки Ubuntu не поставляются с Java; если вы хотите установить конкретный JDK, например Oracle JDK 7, вы можете использовать ubuntu-equip , представляющий собой серию сценариев Bash, которые устанавливают различные компоненты, такие как Java, Node.js, MongoDB, Redis, Ruby и т. д.
Таким образом, для шага 2 откройте только что созданный Vagrantfile
и вы должны увидеть две строки примерно так:
Базовый VagrantFile содержит атрибуты box и box_url
1
2
3
|
config.vm.box = 'ubuntu.lts.64' # a few comments... config.vm.box_url = 'http://files.vagrantup.com/precise64.box' |
После объявления vm.box_url
вставьте следующую строку:
Установка Java
1
|
config.vm.provision :shell, inline: 'wget --no-check-certificate https://github.com/aglover/ubuntu-equip/raw/master/equip_java7_64.sh && bash equip_java7_64.sh' |
Эта команда указывает экземпляру выполнить встроенную команду Bash после ее запуска и запуска, которая в этом случае автоматически устанавливает Oracle Java 7 JDK (дополнительную информацию см. В проекте ubuntu-equip ).
Сохраните VagrantFile
а затем, на шаге 3, выполните следующую команду в том же каталоге:
Зажигая новую ВМ
1
|
$> vagrant up |
Если вы запускаете эту конкретную виртуальную машину в первый раз, вы должны увидеть текст, указывающий, что загружается конкретное окно. Как только загрузка завершится, экземпляр загрузится и впоследствии вызовет встроенную команду обеспечения, которая запускает установку Java.
Если все идет хорошо, вы должны увидеть много текстовой прокрутки, заканчиваясь на:
Java установлена!
1
2
3
|
java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7 .0_25-b15) Java HotSpot(TM) 64 -Bit Server VM (build 23.25 -b01, mixed mode) |
Вот и все. Чтобы использовать виртуальную машину, просто SSH к ней . Идите вперед и введите java -version
только для того, чтобы убедить себя. Давай, я подожду тебя … там, ты счастлив сейчас? Разве это не было легко? Подготовка виртуальных машин Ubuntu с Vagrant не может быть проще с Ubuntu-оборудовать , копать?