===== Готвые конфигурации ===== 1. CentOS 9 server с предустановленными программами и Guest Additions **Запуск:** cd ./project vagrant up **Удалить виртуальную машину** cd ./project vagrant destroy **Vagrantfile** Vagrant.configure("2") do |config| config.vm.box = "generic/centos9s" # Forwarded ports config.vm.network "forwarded_port", guest: 22, host: 2223, id: "ssh" config.vm.network "forwarded_port", guest: 80, host: 8883, id: "http" # Host-only network (добавлен виртуальный адаптер хоста) config.vm.network "private_network", type: "dhcp" # Путь к SSH-ключу (используем существующий или создаем новый) ssh_pub_key = File.read("#{Dir.home}/.ssh/id_rsa.pub").strip config.vm.hostname = "CentOS9serv" config.ssh.insert_key = true # Сохранять один и тот же ключ при пересоздании config.ssh.verify_host_key = :never config.vm.provision "shell" do |s| # Чтение SSH-ключа до начала provision ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip s.inline = <<-SHELL # Обновление системы dnf update # Установка базовых пакетов dnf install -y git curl wget nano mc # Настройка времени timedatectl set-timezone Europe/Moscow # Создаем пользователя echo #{ssh_pub_key}>> /home/vagrant/.ssh/authorized_keys # Установка screenFetch git clone https://github.com/KittyKatt/screenFetch.git /tmp/screenFetch cd /tmp/screenFetch chmod +x screenfetch-dev mv screenfetch-dev /usr/local/bin/screenfetch cd /root rm -rf /tmp/screenFetch # Добавляем screenfetch в .bashrc для пользователя vagrant echo -e '\n# Auto-run screenfetch\nif [ -f /usr/local/bin/screenfetch ]; then\n /usr/local/bin/screenfetch\nfi' >> /home/vagrant/.bashrc # Устанавливаем screenfetch для root echo -e '\n# Auto-run screenfetch\nif [ -f /usr/local/bin/screenfetch ]; then\n /usr/local/bin/screenfetch\nfi' >> /root/.bashrc SHELL end config.vm.provider "virtualbox" do |vb| vb.name = "CentOS9serv" vb.memory = 4096 vb.cpus = 4 vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--ioapic", "on"] # Плагин для автоматической установки Guest Additions if Vagrant.has_plugin?("vagrant-vbguest") vb.vbguest.auto_update = true vb.vbguest.installer_options = { allow_kernel_upgrade: true } end end end {{ :linux:vagrant:centos9.png?800 |}}