Vagrant安装虚拟机

发布时间:2024年01月06日

Vagrant安装虚拟机

优点:操作简单方便

vagrant仓库提供已配置完成镜像系统,只需简单命令可迅速初始化运行虚拟机

一、安装virtualBox

官方网站:Oracle VM VirtualBox

在这里插入图片描述

如果虚拟机安装失败,可能计算机未开启CPU虚拟化

在这里插入图片描述

二、安装Vagrant

Vagrant官方镜像仓库:Discover Vagrant Boxes - Vagrant Cloud (vagrantup.com)

Vagrant软件下载:Install | Vagrant | HashiCorp Developer

在这里插入图片描述

AMD64即对应x86平台

三、运行虚拟机

  1. 启动virtualBox

  2. 打开windows cmd窗口,运行如下命令,初始化centos7系统,系统名称可通过第二步中官方镜像仓库查看

    Vagrant init centos/7
    
  3. 运行如下命令启动虚拟机,系统root用户密码是vagrant

    vagrant up
    

    启动成功后,virtualBox界面会出现对应虚拟机

    在这里插入图片描述

四、vagrant其他常用命令

  • 自动使用vagrant用户连接虚拟机

    vagrant ssh
    
  • 上传文件

    vagrant upload source [destination] [name|id]
    
  • 重启

    vagrant reload
    

Vagrant命令行:vagrant init - Command-Line Interface | Vagrant | HashiCorp Developer

五、配置虚拟机固定ip

默认虚拟机的ip地址不是固定ip,开发不方便

  • 修改Vagrantfile

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

    这里的ip需要在物理机下使用ipconfig命令找到

    ipconfig /all
    

    在这里插入图片描述

  • 重新加载vagrantfile文件

    vagrant reload # 重启
    vagrant ssh # 登录
    

    登录后查看ip地址

    ip addr
    

    在这里插入图片描述

  • 主机和虚拟机之间ping测试,双方向通正常

    主机ping虚拟机通,虚拟机ping主机不通

    关闭如下防火墙后尝试,ping通在这里插入图片描述

    但防火墙一直关闭会影响主机安全,需要缩小范围,实际Windows10的防火墙没有打开ICMPv4-in影响报文转发,可采用下面方式打开

    在这里插入图片描述
    在这里插入图片描述

    再次测试,两边正常ping通

六、配置账号密码登录

默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录

  1. 登录系统vagrant ssh

  2. 修改sshd_config文件

    sudo vi /etc/ssh/sshd_config
    
    PasswordAuthentication yes
    
  3. 重启服务

    service sshd restart
    
  4. 可以使用ssh连接工具直接连接,用户root,密码vagrant

注意:VirtualBox 会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;冲突的软件:红蜘蛛,360,净网大师(有可能)等

七、修改镜像源

  1. 备份原yum源

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 使用新yum源

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
    
  3. 生成缓存

    yum makecache
    
文章来源:https://blog.csdn.net/weixin_56005963/article/details/135428707
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。