Сегодня я хотел бы рассказать о том, как можно автоматизировать развертывание и настройку виртуальных машин с Photon OS при помощи Vagrant на гипервизоре VMware vSphere.
Предыдущая часть доступна по ссылке: http://blog.vmpress.org/2015/09/vmware-photon-os-i.html
Vagrant представляет собой достаточно популярное среди разработчиков ПО средство для автоматического развертывания ВМ для тестовых сред. Все настройки ВМ описываются в конфигурационном файле, после чего достаточно выполнить одну команду, чтобы получить готовую к работе ВМ. Vagrant поддерживает различные гипервизоры (Virtual Box, VMware Fusion, VMware Workstation, VMware vSphere, KVM) и облачные среды (Amazon Web Services, Digital Ocean, OpenStack). Для Vagrant доступно большое количество заранее подготовленных образов ВМ (boxes). Список можно посмотреть на сайте: http://www.vagrantbox.es/
Для демонстрации возможностей Vagrant создадим тестовую среду, в которой будут автоматически разворачиваться три виртуальные машины с Photon OS из заранее созданного шаблона, и для каждой ВМ будет назначаться имя и статический IP адрес. Для стенда потребуется инфраструктура vSphere 6.0 (по крайней мере один сервер ESXi и один сервер vCenter Server), а также управляющий компьютер, на который будет установлен сам Vagrant.
Установка Vagrant крайне проста. Для начала загрузите дистрибутив с сайта производителя: https://www.vagrantup.com/downloads.html. Для Photon OS потребуется 64-bit Linux (RPM) дистрибутив.
Для загрузки дистрибутива выполните:
Найдите подходящий файл, с помощью команды:
Заархивируйте файл метаданных metadata.json:
В данном файле используются следующие параметры:
О других параметрах конфигурационного файла Vagrant можно прочитать по ссылке: https://github.com/nsidc/vagrant-vsphere
Установите в качестве гостевой ОС Photon OS в Full инсталляции.
Дальнейшая настройка ВМ нужна, чтобы обеспечить возможность подключения к ВМ по SSH прямо из консоли Vagrant.
Создайте учетную запись для автоматического подключения с управляющей ВМ:
Отредактируйте файл sudo, используя команду visudo, добавив туда строчку:
vagrant ALL=(ALL) NOPASSWD:ALL
Для подключения по SSH из Vagrant рекомендуется использовать аутентификацию по ключам. По умолчанию, Vagrant использует общедоступную пару ключей, что является серьезной уязвимостью, т.к. кто угодно может получить закрытый ключ и подключиться к созданным ВМ. По умолчанию закрытый ключ хранится на управляющем компьютере в каталоге "/var/opt/vagrant/embedded/gems/gems/vagrant-<версия_vagrant>/keys".
Правильным вариантом будет сгенерировать собственную пару ключей и добавить их на управляющий компьютер и в шаблон ВМ. Но для тестовых целей, в случае, если ВМ не подключена к общедоступным сетям, можно использовать ленивый способ.
Создайте папку, чтобы сохранить в ней ssh ключи:
Создайте Customization Specification с именем Photon-Customization для ВМ Linux. Выберите Custom settingsи задайте статический IP адрес для сетевого адаптера (IP адрес не должен совпадать с адресом, указанным в конфигурационном файле Vagrantfile).
Vagrant запустит процедуру клонирования и настройки ВМ из шаблона.
Для подключения к ВМ из консоли Vagrant по SSH можно использовать команду:
Для отключения от ВМ и возвращения в консоль Vagrant просто введите exit.
После завершения работы с ВМ, вы можете их удалить с помощью команды:
При подготовке статьи использовались материалы: http://www.vmtocloud.com/how-to-use-vagrant-to-deploy-containers-on-vsphere-with-vmware-photon/
Предыдущая часть доступна по ссылке: http://blog.vmpress.org/2015/09/vmware-photon-os-i.html
Vagrant представляет собой достаточно популярное среди разработчиков ПО средство для автоматического развертывания ВМ для тестовых сред. Все настройки ВМ описываются в конфигурационном файле, после чего достаточно выполнить одну команду, чтобы получить готовую к работе ВМ. Vagrant поддерживает различные гипервизоры (Virtual Box, VMware Fusion, VMware Workstation, VMware vSphere, KVM) и облачные среды (Amazon Web Services, Digital Ocean, OpenStack). Для Vagrant доступно большое количество заранее подготовленных образов ВМ (boxes). Список можно посмотреть на сайте: http://www.vagrantbox.es/
Для демонстрации возможностей Vagrant создадим тестовую среду, в которой будут автоматически разворачиваться три виртуальные машины с Photon OS из заранее созданного шаблона, и для каждой ВМ будет назначаться имя и статический IP адрес. Для стенда потребуется инфраструктура vSphere 6.0 (по крайней мере один сервер ESXi и один сервер vCenter Server), а также управляющий компьютер, на который будет установлен сам Vagrant.
Установка и настройка Vagrant
Для управления нам потребуется выделенная машина. Vagrant может быть установлена на все основные платформы, включая Windows, MAC OS X и Linux. В данном примере используется Photon OS в Full инсталляции.Установка Vagrant крайне проста. Для начала загрузите дистрибутив с сайта производителя: https://www.vagrantup.com/downloads.html. Для Photon OS потребуется 64-bit Linux (RPM) дистрибутив.
Для загрузки дистрибутива выполните:
wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.rpmУстановите Vagrant, используя команду:
rpm -i vagrant_1.7.4_x86_64.rpmУстановите плагин для работы Vagrant с vSphere:
vagrant plugin install vagrant-vsphereПоскольку для развертывания ВМ будет использоваться шаблон из VMware vSphere, то потребуется файл-заглушка для указания в конфигурационном файле Vagrantfile.
Найдите подходящий файл, с помощью команды:
find / | grep example_box
Заархивируйте файл метаданных metadata.json:
cd /root/.vagrant.d/gems/gems/vagrant-vsphere-1.5.0/example_box/metadata.jsonСоздайте каталог и переместите туда архив:
tar cvzf dummy.box ./metadata.json
mkdir ~/vagrant-vms/example_boxСоздайте конфигурационный файл Vagrantfile:
mv dummy.box ~/vagrant-vms/example_box
touch ~/vagrant-vms/VagrantfileОтредактируйте файл с помощью vi или nano. Пример конфигурационного файла:
Vagrant.configure("2") do |config|
config.vm.box = 'vsphere'
config.vm.box_url = './example_box/dummy.box'
config.vm.synced_folder '.', '/vagrant', id: 'vagrant-root', disabled: true
config.vm.provider :vsphere do |vsphere|
# The host we're going to connect to
vsphere.host = 'vc01.company.local'
# The host for the new VM
vsphere.compute_resource_name = 'testclu02'
# The template we're going to clone
vsphere.template_name = '/Vagrant/photon-template'
vsphere.customization_spec_name = 'Photon-Customization'
# vSphere login
vsphere.user = 'company.local\administrator'
# vSphere password
vsphere.password = 'P@ssw0rd'
# If you don't have SSL configured correctly, set this to 'true'
vsphere.insecure = true
end
config.vm.define 'node01' do |node01|
node01.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.191'
vsphere.name = 'node01'
end
end
config.vm.define 'node02' do |node02|
node02.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.192'
vsphere.name = 'node02'
end
end
config.vm.define 'node03' do |node03|
node03.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.193'
vsphere.name = 'node03'
end
end
end
В данном файле используются следующие параметры:
- config.vm.box_url - путь к файлу-заглушке, который был создан ранее.
- vsphere.host - имя сервера vCenter для подключения.
- vsphere.compute_resource_name - имя кластера vSphere или хоста ESXi, где будут создаваться ВМ.
- vsphere.template_name - путь к файлу шаблона (в данном примере, шаблон с именем photon-template располагается в корневой папке Vagrant).
- vsphere.cusomization_spec_name - имя Customization Specification, который используется для настройки ВМ.
- vsphere.user - имя учетной записи для подключения к vCenter.
- vsphere.password - пароль учетной записи для подключения к vCenter.
- vsphere.insecure - подключаться к серверу с недоверенными сертификатами.
- override.vm.network - IP адрес сетевого интерфейса ВМ.
- vsphere.name - имя ВМ.
Настройка шаблона
Теперь нужно подготовить шаблон ВМ для развертывания. Создайте новую ВМ со следующими параметрами:- Имя ВМ: photon-template
- Virtual machine version: 11
- Тип ОС: CoreOS Linux (64-bit)
- 2 vCPU
- 2 GB RAM
- 20 GB HDD
- сетевой адаптер VMXNET3
Дальнейшая настройка ВМ нужна, чтобы обеспечить возможность подключения к ВМ по SSH прямо из консоли Vagrant.
Создайте учетную запись для автоматического подключения с управляющей ВМ:
useradd vagrantЗадайте пароль для учетной записи:
passwd vagrantПароль может быть любым, главное, чтобы он удовлетворял требованиям сложности.
Отредактируйте файл sudo, используя команду visudo, добавив туда строчку:
vagrant ALL=(ALL) NOPASSWD:ALL
Для подключения по SSH из Vagrant рекомендуется использовать аутентификацию по ключам. По умолчанию, Vagrant использует общедоступную пару ключей, что является серьезной уязвимостью, т.к. кто угодно может получить закрытый ключ и подключиться к созданным ВМ. По умолчанию закрытый ключ хранится на управляющем компьютере в каталоге "/var/opt/vagrant/embedded/gems/gems/vagrant-<версия_vagrant>/keys".
Правильным вариантом будет сгенерировать собственную пару ключей и добавить их на управляющий компьютер и в шаблон ВМ. Но для тестовых целей, в случае, если ВМ не подключена к общедоступным сетям, можно использовать ленивый способ.
Создайте папку, чтобы сохранить в ней ssh ключи:
mkdir -p /home/vagrant/.sshСкопируйте в папку открытый ключ:
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keysУстановите разрешения на каталог и установите владельца:
chmod 0700 /home/vagrant/.sshВыключите ВМ и создайте из нее шаблон.
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
Создайте Customization Specification с именем Photon-Customization для ВМ Linux. Выберите Custom settingsи задайте статический IP адрес для сетевого адаптера (IP адрес не должен совпадать с адресом, указанным в конфигурационном файле Vagrantfile).
Запуск Vagrant
Для запуска перейдите в папку ~/vagrant-vms/example_box/ с файлом Vagrantfile. Запустите ВМ с помощью командыvagrant up --provider=vsphere
Vagrant запустит процедуру клонирования и настройки ВМ из шаблона.
Для подключения к ВМ из консоли Vagrant по SSH можно использовать команду:
vagrant ssh node01
Для отключения от ВМ и возвращения в консоль Vagrant просто введите exit.
После завершения работы с ВМ, вы можете их удалить с помощью команды:
vagrant destroy
При подготовке статьи использовались материалы: http://www.vmtocloud.com/how-to-use-vagrant-to-deploy-containers-on-vsphere-with-vmware-photon/
0 коммент.:
Отправить комментарий