vagrant file 设置固定IP并允许密码登录

How to use this box with Vagrant

Step 1

Option 1: Create a Vagrantfile and initiate the box

复制代码
vagrant init generic/centos9s --box-version 4.3.12

Option 2: Open the Vagrantfile and replace the contents with the following

复制代码
Vagrant.configure("2") do |config|
  config.vm.box = "generic/centos9s"
  config.vm.box_version = "4.3.12"
end
Step 2

Bring up your virtual machine

复制代码
vagrant up
复制代码
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "generic/centos9s"
  config.vm.box_version = "4.3.12"

  # 设置固定 IP
  config.vm.network "private_network", ip: "192.168.56.101"

  # 启用密码 SSH 登录(关键!)
  config.vm.provision "enable_password_auth", type: "shell", run: "always", inline: <<-SHELL
    if [ ! -f /etc/ssh/sshd_config.d/99-vagrant-password.conf ]; then
      echo "PasswordAuthentication yes" | sudo tee /etc/ssh/sshd_config.d/99-vagrant-password.conf
      sudo systemctl reload sshd
      echo "[INFO] Password authentication enabled for SSH."
    fi
  SHELL

  # 可选:VMware 或 VirtualBox 资源配置
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
  end

  config.vm.provider "vmware_desktop" do |vmware|
    vmware.memory = "2048"
    vmware.cpus = 2
  end
end

114.114.114.114和192.168.56.1

复制代码
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "generic/centos9s"
  config.vm.box_version = "4.3.12"

  config.vm.network "private_network", ip: "192.168.56.100"

  # 启用密码登录
  config.vm.provision "enable_password_auth", type: "shell", run: "always", inline: <<-SHELL
    if [ ! -f /etc/ssh/sshd_config.d/99-vagrant-password.conf ]; then
      echo "PasswordAuthentication yes" | sudo tee /etc/ssh/sshd_config.d/99-vagrant-password.conf
      sudo systemctl reload sshd
    fi
  SHELL

  # 设置纯净 DNS(仅保留指定的两个)
  config.vm.provision "set_static_dns", type: "shell", inline: <<-SHELL
    CON_NAME=$(nmcli -t -f NAME,DEVICE con show --active | grep -E 'eth0|enp' | head -n1 | cut -d: -f1)
    [ -z "$CON_NAME" ] && CON_NAME=$(nmcli -t -f NAME con show --active | head -n1)

    if [ -n "$CON_NAME" ]; then
      sudo nmcli con mod "$CON_NAME" ipv4.dns "114.114.114.114 192.168.56.1"
      sudo nmcli con mod "$CON_NAME" ipv4.ignore-auto-dns yes
      sudo nmcli con up "$CON_NAME" 2>/dev/null || true
    fi
    cat /etc/resolv.conf
  SHELL

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
  end

  config.vm.provider "vmware_desktop" do |vmware|
    vmware.memory = "2048"
    vmware.cpus = 2
  end
end
相关推荐
寄存器漫游者2 分钟前
Linux 软件编程 - IO 编程
linux·运维·spring
zfoo-framework3 分钟前
帧同步和状态同步
java
charlotte102410245 分钟前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
亓才孓10 分钟前
[JDBC]PreparedStatement替代Statement
java·数据库
_别来无恙_19 分钟前
TFTP的使用Linux
linux·服务器
gaize121321 分钟前
Moltbot(Clawdbot) 专属轻量服务器
运维·服务器
Zaralike29 分钟前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
_F_y32 分钟前
C++重点知识总结
java·jvm·c++
打工的小王34 分钟前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐35 分钟前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot