===== Готвые конфигурации =====
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 |}}