Инструменты пользователя

Инструменты сайта


linux:vagrant:ready_vagrantfile

Готвые конфигурации

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/ready_vagrantfile.txt · Последние изменения: 2025/05/02 21:50 — werwolf