初始化虚拟机配置


如果你是一个搞运维的同学,那么肯定需要安装虚拟机,做试验也好、跨平台也好。但是安装虚拟机是一个耗时又有点复杂的通过,如果做到开箱即用呢?如果让虚拟机用着更加顺手呢?就需要好好地捣鼓捣鼓。

1. 安装虚拟机

现在市面上的虚拟机种类其实还挺多的,如很有名的 VMwareParallelsOracle VM VirtualBoxQEMU 等。所以选择一个好的虚拟机也是需要自己好好地琢磨琢磨的,选定之后就把这个软件研究透,都选择在这上面工作。

我试用上述虚拟机的绝大多数,VMware 好用且扩展性好、Parallels 绝对是 MBP 上的最佳助手、VirtualBox 免费且简单的工具。综合很多原因,我这里使用的是 VirtualBox

我这里安装了四个虚拟机,分别为两台 CentOS6 和两台 CentOS7 (第二台都是以第一台为模板进行复制而来的),且为其进行的分组,方便使用和查看。

初始化虚拟机配置


2. 启动文本级别

我们都知道 Linux 系统有多种运行基本,最常使用的有单用户级别图形级别文本级别。通常,服务器都会是文本级别的,因为节省内存消耗且方便操作,否非是想使用 Linux 作为你日常的办公系统才会使用到图形界面。

如果将虚拟机中的操作系统,改为默认的文本级别呢?

  • CentOS6
[root@node ~]# vim /etc/inittab
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:
  • CentOS7
[root@node ~]# cat /etc/inittab
# 都是注释信息,大致说了如下内容:
# multi-user.target 类似于 runlevel 3
# graphical.target 类似于 runlevel 5
# 查看默认运行级别的方式为 systemctl get-default
# 设置默认运行级别的方式 systemctl set-default TARGET.target
  • CentOS6/7 运行级别对应表
init 级别 systemctl target
0 shutdown.target
1 emergency.target
2 rescure.target
3 multi-user.target
4
5 graphical.target
6
  • CentOS7 设置运行级别
systemctl 命令 说明
systemctl get-default 获得当前的运行级别
systemctl set-default multi-user.target 设置默认的运行级别为 mulit-user
systemctl isolate multi-user.target 在不重启的情况下,切换到运行级别 mulit-user 下
systemctl isolate graphical.target 在不重启的情况下,切换到图形界面下

注释:当然 CentOS7 中还是可以使用 runlevel 命令来更改运行级别的


3. 网卡配置

配置好虚拟机,如果固定好各个虚拟机的网络地址呢?不然,使用 DHCP 自动分别,下次我们连接的时候,可能因为网络环境的改变而导致虚拟机的地址也发生的改变。所以我们就需要给虚拟机分配一个合适的静态地址了。

不管安装的虚拟机是 CentOS6 还是 CentOS7 的系统,大致上的静态地址的配置基本相同,就是 CentOS7 中的网卡名称不在以 eth 开头了。当然这也是可以改回来的,具体步骤自行 Google 吧。

配置静态IP地址,基本只需要修改两处配置,如图所示:

初始化虚拟机配置

初始化虚拟机配置

初始化虚拟机配置

当然,如果你使用的是 CentOS7 的最小化安装,可能当你登录之后发现没有 ifconfig 命令而且此时也无法连接到网络。这下你就悲剧了,可以挂载光盘进行进行 net-tools 的安装,或者你使用 ip 命令自行调整网络。


4. 常见问题

当然,在使用的时候肯定会遇到一些问题,有的其实挺坑爹的。

4.1 远程连接 ssh 无法登录

  • 报错问题
    • 提示:ssh: connect to xxxxxxxxxx port 22: Connection refused
  • 解决方式
    • [可以原因] sshd 服务未安装
    • [可以原因] sshd 服务未启动
    • [可以原因] 防火墙给拦截了
# sshd服务未安装
[root@node ~]# yum install -y openssh-server

# sshd服务未启动
[root@node ~]# service sshd restart
[root@node ~]# systemctl restart sshd.service

# 防火墙给拦截了
[root@node ~]# service iptable stop
[root@node ~]# systemctl stop firewalld.service

4.2 重启后 resolv.conf 被重置

发现在修改一台 CentOS6 服务器的 DNS 时,发现只要重启服务器 DNS 就会被强制还原。

  • 网卡设置中修改 NM_CONTROLLED 的值

    • 设置为 NM_CONTROLLED 的值为 no,禁止 Network Manager 管理 DNS,默认为允许
    • 其实这一步不设置也是可以,知道配置好 DNS 就可以了
  • 修改网卡配置

    • 注意配置好网关、DNSIP 地址

初始化虚拟机配置

  • 修改 /etc/resolv.conf 的值
    • 如果没有修改 NM_CONTROLLED 的值,可以不设置,因为 Network Manager 会根据我们修改的网卡配置自动进行生成的
[root@node ~]# vim /etc/resolv.conf
nameserver 192.168.31.1
nameserver 8.8.8.8
  • 重启服务
[root@node ~]# service network restart

4.3 安装虚拟机扩展工具

virtualbox 界面中点击安装扩展工具,系统会自动将扩展工具驱动挂载到对应虚拟机上,后面执行如下命令既可。

# 挂载
$ sudo mount /dev/sr0 /media/cdrom

# 安装对应包
$ cd /media/cdrom
$ sudo ./VBoxLinuxAdditions.run

# 重启
$ sudo reboot

# 确认是否安装成功
$ lsmod | grep vboxguest

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录