Соединение двух виртуальных машин Ubuntu в Vagrant с помощью SSH, имитация коммуникации между vm-box1 и vm-box2 с использованием библиотеки Python Fabric путем создания частной сети со статическим IP-адресом
Виртуализация серверов стала неотъемлемой частью современной разработки программного обеспечения. Использование инструментов, таких как Vagrant и Ubuntu, позволяет эффективно создавать и управлять виртуальными машинами, обеспечивая изоляцию и полный контроль над средой разработки.
Vagrant - это инструмент для создания и управления виртуальными средами разработки. Он позволяет программистам эмулировать различные конфигурации серверов, необходимых для их проектов, в управляемом и воспроизводимом окружении. Во время разработки многие проекты требуют взаимодействия между различными серверами или виртуальными машинами. В этой статье мы рассмотрим, как соединить две виртуальные машины Ubuntu, созданные с помощью Vagrant, с помощью SSH.
Шаг 1: Установка Vagrant и VirtualBox
Перед тем, как начать настройку виртуальных машин, убедитесь, что у вас уже установлены Vagrant и VirtualBox. Оба эти инструмента легко установить и настроить.
Для установки Vagrant и VirtualBox следуйте инструкциям на их официальных веб-сайтах:
Шаг 2: Создание конфигурации Vagrant
Перейдите в пустую директорию и выполните команду vagrant init
для создания файла конфигурации Vagrant. Отредактируйте созданный Vagrantfile для настройки ваших виртуальных машин. Например, добавьте следующий код для создания двух виртуальных машин:
Vagrant.configure("2") do |config|
config.vm.define "vm-box1" do |box1|
box1.vm.box = "ubuntu/bionic64"
box1.vm.network "private_network", ip: "192.168.50.10"
end
config.vm.define "vm-box2" do |box2|
box2.vm.box = "ubuntu/bionic64"
box2.vm.network "private_network", ip: "192.168.50.11"
end
end
Шаг 3: Запуск виртуальных машин
Теперь запустите виртуальные машины, выполнив команду vagrant up
. Vagrant автоматически загрузит и настроит оба образа Ubuntu, а также назначит им заданные IP-адреса.
Шаг 4: Установка и настройка Python Fabric
Python Fabric - это библиотека, которая предоставляет инструменты для автоматизации развертывания и управления приложениями на удаленных серверах. Установите Fabric на обоих виртуальных машинах с помощью следующей команды:
sudo apt-get install fabric
Шаг 5: Написание скрипта для соединения и взаимодействия между виртуальными машинами
Теперь давайте напишем простой скрипт на Python, который позволит нам установить соединение между vm-box1 и vm-box2 с помощью SSH и выполнить некоторые команды на удаленной виртуальной машине.
from fabric import Connection
# Создание подключений к обоим виртуальным машинам
vm_box1 = Connection('192.168.50.10', user='vagrant', connect_kwargs = {"password": "vagrant"})
vm_box2 = Connection('192.168.50.11', user='vagrant', connect_kwargs = {"password": "vagrant"})
# Пример выполнения команды на удаленной виртуальной машине
result = vm_box1.run('ls -al')
print(result.stdout)
# Закрытие подключений
vm_box1.close()
vm_box2.close()
Заключение
В этой статье мы рассмотрели, как создать и настроить две виртуальные машины Ubuntu с помощью Vagrant, а затем соединить их с помощью SSH и библиотеки Python Fabric. Такой подход позволяет эффективно эмулировать коммуникацию между различными виртуальными машинами и использовать их для разработки и тестирования приложений.
Использование таких инструментов, как Vagrant, Ubuntu, SSH и Python Fabric, поможет вам создать изолированные виртуальные среды разработки и упростить процесс разработки и тестирования ваших приложений.
Ссылки: