服务计算作业1:安装你的私有云
课程网址:服务计算 - 云应用开发方法、技术与架构
作业网址:安装配置你的私有云
本篇博客遇到的网络问题:服务计算作业1 附:网络问题
PS:前面的步骤基本一样,我自认为这篇博文的亮点是,我用Windows主机通过Xshell 的 SHH 命令远程登录虚拟机,我自己也查了很多资料才弄好的。
文章目录
1.安装 VirtualBox
- 安装 Oracle VirtualBox 5.X,官方下载
- 配置 VirtualBox 虚拟机存储位置,避免找不到虚拟机存储位置,特别是消耗启动盘的宝贵空间
- VirtualBox菜单 :管理 -> 全局设定,常规页面
- VirtualBox菜单 :管理 -> 全局设定,常规页面
- 创建虚拟机内部虚拟网络,使得 Vbox 内部虚拟机可以通过它,实现虚拟机之间、虚拟机与主机的通讯
- VirtualBox菜单 :管理 -> 主机网络管理器,创建一块虚拟网卡,网址分配:192.168.100.1/24
ps
: 这里遇到如下问题:
解决方法:我重装了VB就可以了。 - 重装VB之后,添加网卡
- 在主机 windows 命令行窗口输入
ipconfig
就可以看到 VirtualBox Host-Only Network #?: 的网卡
- VirtualBox菜单 :管理 -> 主机网络管理器,创建一块虚拟网卡,网址分配:192.168.100.1/24
2.创建Linux虚拟机(以 CentoOS 为案例)
2.1 下载 Linux 发行版镜像
- 在官网上下载 Linux 发行版镜像。这里我下载的是centos7.6 minimal,比较小,只不过后面要自己安装很多小工具,不过很简单。
2.2 用 VBox 创建虚拟机。
-
虚拟机名称建议以
centos-xxx
,因为当虚拟机名称输入centos时,将会自动选择虚拟机的类型和版本。如果向导不能创建64 bit
虚拟机,请更换电脑!!
!important:建议虚拟机CPU、内存采用默认。 如果是桌面版,CPU建议数1-2,内存不低于2G。我设置的是2G。
显示,显存采用默认。如果是桌面版,显存越大越好 存储,不低于30G。避免以后扩展难。
网络,第一块网卡必须是 NAT;第二块网卡连接方式: Host-Only,接口就是前面创建的虚拟网卡。 -
创建虚拟机的过程除了虚拟硬盘大小更改为30G外,其余均选择默认值。
-
创建完成后,右键点击虚拟机选择设置,将网卡2启用并选择刚刚创建的网卡并保存
2.3 安装base虚拟机
- 启动虚拟机,选择第一个选项
Install CentOS 7
- 启动盘选择刚刚下载的
centos-minimal-ISO.
- 进入系统设置界面,清除所有存在的叹号,此步主要是为了将系统的安装位置设置在已经分配的30G虚拟硬盘上,这步主要是选择这个磁盘位置点击这个就可以了。
- 然后就是安装的过程,等待片刻…
- 之后就是安装系统,语言无所谓,我建议是
英文
,因为后面在用终端命令的时候,我本来想进入桌面,输入Desktop
一直不行,查看了里面的文件才发现必须要输入中文“桌面”,就很麻烦。 - PS:这里会弹出控制台的信息,就是热键鼠标。注意一下就可以了,我把热键设置成了ctrl + alt,具体操作参考:virtualbox怎么设置鼠标在物理机和虚拟机间切换
- 其余部分基本不用改动,设置好root账户的密码,静候安装完毕…
- 之后将自动重启,再输入刚刚设置的账号密码就可登录了(如果没有注册新用户则账户名为
root
) - 重启之后的界面如下,输入之前的用户名root 和密码就可以了。
2.4 升级 OS 系统内核
PS:在升级过程以及后续过程中需要安装东西的过程中,可能会遇到网络以及各种各样的问题,请参考我的这一篇博客。
-
升级内核指令:
sudo yum update
成功之后,安装yum update,中间会有提示,全部输入y -
在本机
Windows
下ping 192.168.100.1,检查是否能接收到数据 -
建议配置
yum
阿里云源:- 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 或curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 之后运行
yum makecache
生成缓存
- 备份
2.5 检查网卡配置
- 配置网络的UI界面
nmtui
,配置第二块网卡地址。
选择“edit a connection”
中的enp0s8
进行编辑,将刚刚的网卡地址修改最后一组数据,填写上去,然后去“active a connection”
中将该网卡active
即可
选择enp0s8
,回车即可**。 - 回到最初的 UI 界面,选择”Set system hostname”,设置主机名为最初指定给该虚拟机的名字。
- 设置完成后,可以退出界面尝试ping一下外网(如mai.qq.com)和内网(如172.xxx.xxx.xxx),都可以收到数据即代表设置成功了.
外网:
内网(即本机ip网段,本机终端ipconfig命令即可看到):
2.6 配置桌面、增强功能和Chrome浏览器
- 此时还需要升级虚拟机内核,输入命令
yum install wget
,升级完成后再输入命令yum update
即可更新完成,这时第一台虚拟机就配置好了
2.6.1 配置桌面
- 安装桌面,这个过程有点慢,中间可能会完全黑屏。
- 命令行输入
yum groupinstall "GNOME Desktop"
- 完成安装后,要设置启动目标为桌面:(注:/etc与前面的target之间存在一个空格)
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
2.6.2 安装VirtualBox 增强工具
参考教程。这个工具的作用在于:
没有安装Virtual Box增强功能Guest Additions的虚拟机操作很不方便,比如:
- 虚拟机的分辨率最大只有1024x768;
- 鼠标被虚拟机捕获后要按右Ctrl键才能释放,否则只能再虚拟机里移动;
- 剪贴板不能共享
安装Guest Additions可以解决上述所有问题。
- 命令行输入,
sudo yum install -y kernel-devel gcc
- 但是我在用这个教程的时候,他总是会出现一个“未能加载光驱"addtions.ios”的窗口,无法进行安装,于是参照这个教程成功解决。
- 进入系统在侧边找到如图加载的虚拟光驱,右击,点击弹出,然后就可正常安装增强功能了(此图来自博客中)
- 进入虚拟机 -> 点击左上角设备界面 -> 点击安装增强功能
安装即可,安装中…
2.6.3 安装Chrome浏览器
安装浏览器我也是试过了各种各种的方法,可以在这里留一个汇总,可能每个人的电脑不一样所以最后可能你用其中一个方法就可以。
- CentOS7 使用 yum 安装 chrome
- Fix Google Chrome Dependencies When Installing via .RPM Package
- Centos7安装chrome浏览器
- CentOS7.4安装Chrome浏览器
但是我最后是用了这个方法才行:CentOS7 安装 浏览器
- 添加源:
sudo wget http://repo.fdzh.org/chrome/google-chrome-mirrors.repo -P /etc/yum.repos.d/
- 安装:
sudo yum install google-chrome-stable
- 退出并关闭虚拟机。
2.7 安装其他虚拟机
- 点击 centos-base 选择复制,输入新虚拟机的名,注意必须
选择重新初始化所有网卡的 MAC 地址
,并选择链接复制
。 - 命令行nmtui进行新虚拟机 CentOS-1 的网络和主机名的配置,操作基本和之前一样。
- 编辑 Ipv4 地址,注意地址填写为192.168.56.102/24,前 24 位(也即192.168.52)保持不变,为新虚拟机 CentOS-tmp1 选择 102 网段,与 CentOS-base 所选择的 101 网段区别。 这里的设置参考了这篇博客。
- 重启 .(PS:重新打开虚拟机之后,由于之前安装了图形界面图形,因此会有各种开机过程设置,注意密码可以设计得复杂一些,我最开始设置了一个很简单的密码就一直不能进行下一步还以为虚拟机死了重启了很多次…)
- 为了继续执行指令,我们可以退出图形界面,进入dos界面,界面和dos界面的切换用
ctrl + alt + F2
,或者init 3
进入dos界面,init 5
进入图形界面。参考这篇文章。(当然也可以直接输入su -
或者sudo -i
在图形界面上root执行命令,这样更方便) - 在主机上,应能 ping 到这个地址,且能通过 ssh 访问该虚拟机(windows 需启动 git bash)。同时打开 CentOS-base 和 CentOS-2。
- 在 CentOS-base 上尝试 ping CentOS-2 的地址 192.xxx.xxx.xxx。 (这里的IP地址都是enp0s8,因为我前后改变了ip,所以截图和文案有些不一样,但是你们看自己两个虚拟机的
enp0s8
的inet
地址就可以了,用nmcli
命令查看) - 在 CentOS-2 上尝试 ping CentOS-base 的地址 192.xxx.xxx.xxx。
- 使用 nmcli 可以查看 第二台虚拟机的enp0s8 以太网的情况:
- 最后,用主机ping以下这两台虚拟机:
3.配置用远程桌面访问你的虚拟机
3.1 远程桌面连接控制
- 从 Oracle 上下载对应版本的 Oracle VM VirtualBox Extension Pack (注意版本一定要和VirtualBox相同)。
我的是6.0版本。
下载 6.0.10 - VirtualBox 菜单 -> 管理 -> 全局设定 -> 扩展 -> 添加。将刚刚下载的 Oracle VM VirtualBox Extension Pack 添加到扩展中去。在右侧位置可看到
Add Package
标签
在安装扩展包之前,需要关闭–注意不是挂起–所有运行中的虚拟机,并关闭整个VirtualBox系统。在Windows中,您只需双击扩展包或手动在File > Preferences > Extensions中点击Add Package图标找到正确的安装包列表。如果您是通过命令行操作的,通过VBoxManager extpack命令添加VirtualBox远程显示扩展包。
安装完成后,重启宿主机。简单地停止和重启VirtualBox软件是不可行的,但是VirtualBox并不会提示您重启。 - 设置虚拟机端口
现在您已经开始进入VirtualBox远程访问模式,但是还需要通过RDP单独地配置每台您需要访问的虚拟机端口。这一步需要注意:要为每台将建立RDP连接的子虚拟机分配端口号,但是连接所使用的是宿主机的IP地址,而不是子机。每台子机的端口号要不同以避免冲突。 - 启动主机程序
- 输入IP地址和各个设置好的端口号,进行连接。
点击是! 输入root的密码。连接成功!主机连接第二台虚拟机同理。
3.2 SSH 远程登录(Xshell )
使用 ssh ,尝试在一台虚拟机上远程登录另一台虚拟机 以及 在属主机上远程登录虚拟机。
3.2.1 使用SSH的前提设置
-
主机下载Xshell,请看:教你在官网下载免费的xshell和xftp
-
CentOS 7 即使是 Minimal 版本也自带了 ssh,无需自己额外进行安装。
-
提前要保证本机和虚拟机的几个设置:
- 开启虚拟机的ssh,命令如下,start开启,running代表是开启状态。
- 关闭本机防火墙
- 关闭虚拟机的防火墙
CentOS 7.0默认使用的是firewall作为防火墙
查看防火墙状态firewall-cmd --state
停止firewallsystemctl stop firewalld.service
禁止firewall开机启动systemctl disable firewalld.service
- 关闭虚拟机的selinux
进入到/etc/selinux/config文件vi /etc/selinux/config
将SELINUX
=enforcing
改为SELINUX=disabled
- 开启虚拟机的ssh,命令如下,start开启,running代表是开启状态。
3.2.2 在一台虚拟机上远程登录另一台虚拟机
- 保持两台虚拟机运行,在其中一台虚拟机 CentOS-base 上使用 ssh 远程登录另一台虚拟机 CentOS-2,命令为 ssh [email protected]。
- 控制过程中回答yes并输入另一台电脑的密码即可。(这里虚拟机2的IP也是
enp0s8
的inet
)
- 控制过程中回答yes并输入另一台电脑的密码即可。(这里虚拟机2的IP也是
3.2.3 在属主机上远程登录虚拟机
参考博客:centos 7 sshd service not found?
- 保持虚拟机的开启
- 使用命令ifconfig 查看虚拟机IP,这里看到是192.168.56.103
- 端口就用
默认端口22
。注意和之前的端口用5001的话就无法连接。使用其他IP也不行,只能是使用enp0s8的inet地址然后用默认端口22,但是可能是之前我设置了虚拟机远程端口的原因.
就像这样:
正确输入IP之后,会出现如下窗口:
成功控制!!
最后,图形界面展示:
完成所有要求!!