【Linux】Vagrant搭建Linux环境

1. Vagrant

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。

1.1 安装Vagrant

Vagrant官网下载安装包,执行安装。

1.2 安装VirtualBox

从官网下载VirtualBox,执行安装,设置虚拟机的安装位置,默认会安装在C盘,避免系统盘资源占用。

1.3 注册Vagrant引导文件

box是Vagrant环境的包格式。您可以在Vagrantfile中指定一个box环境和操作配置。您可以在任何受支持的平台上使用一个box来启动相同的工作环境。为了使团队能够使用和管理相同的盒子,支持版本。

最快的入门方法是从Vagrant Cloud上的公开目录中选择一个预定义的盒子环境。您还可以在Vagrant Cloud上添加和共享您自己的定制盒子。

这里安装Centos7,可以从Vagrant Cloud中找到对应的安装步骤,

打开cmd,执行上述命令,会在C:/User/DoGH目录下创建一个vagrantfile文件,Vagrant会以该文件为引导,创建系统。

bash 复制代码
vagrant init centos/7
vagrant up

执行vagrant up自动安装并启动centos系统。

第一次需要下载系统所以较为缓慢。

等待启动完成后,可以在VirtualBox中看到该虚拟机的配置信息。

当下次需要启动虚拟机时,可以在cmd中执行vagrant up命令启动虚拟机或在VirtualBox中直接启动和关闭。

2. 用户管理

Vagrant创建的虚拟机自带一个普通用户vagrant密码也是vagrant,在cmd中也可以通过vagrant ssh命令自动登录该用户,

在默认情况下,使用ssh连接工具访问虚拟机时需要身份文件和密码双重登录,这里可以在cmd中输入vagrant ssh-config命令,打印他的ssh连接信息,

复制代码
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/DoGH/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
  PubkeyAcceptedKeyTypes +ssh-rsa
  HostKeyAlgorithms +ssh-rsa

IdentityFile就是身份文件的位置,选择该文件,在输入用户名和密码即可登录vagrant用户。

在登录了虚拟机后,切换至root用户,并设置登录密码

bash 复制代码
# 切换至root用户
sudo -i

# 设置密码
passwd

为了能直接使用用户名密码登录虚拟机,需要修改/etc/ssh/sshd_config文件,开启该两项配置。

bash 复制代码
PermitRootLogin yes
PasswordAuthentication yes

该文件需要root用户登录才能被修改。

3. 配置网络

Vagrant为如何将客户机连接到网络提供了多种选择,但是有一个标准的使用模式,以及所有网络配置的一些共同点,这些都很重要,需要了解。

所有网络都在Vagrantfile中使用config.vm.network方法调用进行配置。例如,下面的Vagrantfile定义了一些端口转发:

ruby 复制代码
Vagrant.configure("2") do |config|
  # ...
  config.vm.network "forwarded_port", guest: 80, host: 8080
end

这里固定虚拟机的IP地址,如下

ruby 复制代码
Vagrant.configure("2") do |config|
  config.vm.network "public_network", ip: "192.168.56.10"
end

这里IP的规划要与本机的Virtual虚拟网卡地址在统一网段。

保存Vagrantfile,重启虚拟机(vagrant reload),虚拟机的网络配置就已发生了改变。

相关推荐
RisunJan1 分钟前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全
2601_965798471 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
我头发多我先学1 小时前
linux系统编程:初识进程
linux·运维·服务器
Freak嵌入式1 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
苍狗T2 小时前
LVS相关知识总结
linux·运维·服务器·lvs
lightqjx3 小时前
【Linux系统】基础 IO
linux·c语言·重定向·缓冲区·文件io·文件的系统调用
我星期八休息3 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump
RisunJan3 小时前
Linux命令-skill(发送信号给进程)
linux·运维·服务器
潘正翔3 小时前
k8s基础_kubeadm搭建k8s集群
linux·运维·docker·云原生·容器·kubernetes
孪生质数-4 小时前
AI 应用实践篇——让大模型真正开始工作
linux·运维·服务器·人工智能·深度学习·语言模型·llama