Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
linux:vagrant:create_virtual_machine [2023/12/01 21:08] werwolf |
linux:vagrant:create_virtual_machine [2025/05/02 14:03] (текущий) werwolf |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ==== Развёртка машин ==== | ==== Развёртка машин ==== | ||
| - | Развертываем 5 машин с убунтой, с портами 2223..27 и паролем root | + | |
| + | структура проекта | ||
| + | |||
| + | <code> | ||
| + | 📁 home | ||
| + | \---Vagrantfile | ||
| + | </code> | ||
| + | |||
| + | Развертываем 5 машин vagrant@127.0.0.1 с убунтой, с портами 2223..27 и паролем vagrant | ||
| + | |||
| + | **Vagrantfile** | ||
| <code ruby> | <code ruby> | ||
| Vagrant.configure("2") do |config| | Vagrant.configure("2") do |config| | ||
| - | (1..5).each do |i| | + | (1..5).each do |i| |
| - | config.vm.define "server#{i}" do |web| | + | config.vm.define "server#{i}" do |web| |
| - | web.vm.box = "ubuntu/focal64" | + | web.vm.box = "ubuntu/focal64" |
| - | web.vm.network "forwarded_port", id: "ssh", host: 2222 + i, guest: 22 | + | web.vm.network "forwarded_port", id: "ssh", host: 2222 + i, guest: 22 |
| - | web.vm.network "private_network", ip: "10.11.10.#{i}", virtualbox__intnet: true | + | web.vm.network "private_network", ip: "10.11.10.#{i}", virtualbox__intnet: true |
| - | web.vm.hostname = "server#{i}" | + | web.vm.hostname = "server#{i}" |
| - | web.vm.provision "shell" do |s| | + | web.vm.provision "shell" do |s| |
| - | ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip | + | ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip |
| - | s.inline = <<-SHELL | + | s.inline = <<-SHELL |
| - | echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys | + | echo #{ssh_pub_key}>> /home/vagrant/.ssh/authorized_keys |
| - | echo #{ssh_pub_key} >> /root/.ssh/authorized_keys | + | echo #{ssh_pub_key}>> /root/.ssh/authorized_keys |
| - | SHELL | + | SHELL |
| - | end | + | end |
| - | web.vm.provider "virtualbox" do |v| | + | web.vm.provider "virtualbox" do |v| |
| - | v.name = "server#{i}" | + | v.name = "server#{i}" |
| - | v.memory = 2048 | + | v.memory = 2048 |
| - | v.cpus = 1 | + | v.cpus = 1 |
| - | end | + | end |
| - | end | + | end |
| - | end | + | end |
| end | end | ||
| </code> | </code> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Развертываем 1 машину vagrant@127.0.0.1 с centos7, с портом 2228 и паролем vagrant | ||
| + | |||
| + | **Vagrantfile** | ||
| + | <code ruby> | ||
| + | Vagrant.configure("2") do |config| | ||
| + | config.vm.box = "centos/7" | ||
| + | config.vm.network "forwarded_port", id: "ssh", host: 2228, guest: 22 | ||
| + | config.vm.network "forwarded_port", id: "http", host: 8883, guest: 80 | ||
| + | config.vm.network "private_network", ip: "10.11.10.8", virtualbox__intnet: true | ||
| + | config.vm.hostname = "server8" | ||
| + | config.vm.provision "shell" do |s| | ||
| + | ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip | ||
| + | s.inline = <<-SHELL | ||
| + | echo #{ssh_pub_key}>> /home/vagrant/.ssh/authorized_keys | ||
| + | SHELL | ||
| + | end | ||
| + | config.vm.provider "virtualbox" do |v| | ||
| + | v.name = "server8" | ||
| + | v.memory = 2048 | ||
| + | v.cpus = 1 | ||
| + | end | ||
| + | end | ||
| + | |||
| + | </code> | ||
| + | ==== Развертывание серверов ==== | ||
| + | |||
| + | Чтобы запустить установку, необходимо перейти в папку с файлом Vagrantfile и выполнить команду vagrant up | ||
| + | |||
| + | <code bash> | ||
| + | cd ./project | ||
| + | project$ ls | ||
| + | Vagrantfile | ||
| + | |||
| + | project$ vagrant up | ||
| + | </code> | ||
| + | |||
| + | |||
| + | |||