【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),虚拟机的网络配置就已发生了改变。

相关推荐
A小辣椒21 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言