Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作。
VMware串行端口类型
1、使用主机上的物理串行端口
2、输出到文件
3、连接到命名管道
4、通过网络连接
我这里用的是第4种方式来进行串口的验证需要提前部署vSPC Server且网络打通,并放行server端口。
另外由于windows系统只需要安装VMware tools 工具比较简单不多写了。下面写一些Linux虚拟机的配置。
一、给虚拟机安装VMware Tools 工具。
大体分为以下几个步骤
虚拟机挂Tools工具镜像盘
进系统里面挂载镜像到/media#mount /dev/cdrom /media
解压工具包#tar –zxvf /media/ VMwareTools-<version>.tar.gz –C /tmp/
执行安装脚本#cd /tmp/ vmware-tools-distrib
#./ vmware-install.pl
./执行之后一路按回车用默认的配置选项即可安装成功之后会看到Enjoy的字样表示安装成功。
二、串口的配置
配置串口之前需要知道的串口的配置根据grub版本的不同配置不同配置串口之前先判断此虚拟机属于哪个grub版本然后再配置。一般Redhat和CentOS7之前的版本用的是grub Version1Debian和Ubuntu系统用Grub Version2的较多。
1、 Grub版本的判断
版本1在/boot/grub目录下会看到如下图文件名称后面带1_xxx的字样。
版本2:打开/boot/grub/grub.cfg文件看到里面的配置比较多比如一些函数如下图:
2、 串口配置
Grub版本1的配置
1> vi /boot/grub/grub.conf 在boot行下添加如下两行
serial ---unit=0 –-speed=19200 –-word=8 –-parity=no –-stop=1
terminal --timeout=10 serial console
2> 在kernel行末尾追加如下
console=ttyS0 console=ttyS0,19200n8
Grub版本2的配置
1> 编辑/etc/default/grub文件追加如下配置
# vi/etc/default/grub GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
2>保存退出之后更新grub命令如下
# update-grub
如果update-grub命令不可用,尝试以下命令:
systemctl enable serial-getty@ttyS0.service systemctl start serial-getty@ttyS0.service
3>如果是debian7版本的另外需要修改:
#vi /etc/inittab T0:23:respawn:/sbin/getty -L ttyS0 19200 vt102 #追加一行 :wq #保存退出 |
#init q 重新examine the /etc/inittab文件 |
4>CentOS7的修改:
vi /etc/sysconfig/grub
在GRUB_CMLINE_LINUX 行尾添加console=ttyS0,之后运行:
# grub2-mkconfig -o /boot/grub2/grub.cfg # reboot
5> 个别APU引擎的,比如ubuntu14.04需要新建一个/etc/init/ttyS0.conf的文件,如下:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102
3、 查看是否配置成功
Grub配置完之后在系统里面查一下进程能看到如下字样的表示刚刚配置的已经生效
三、虚拟机添加串口
1、测试时需要在虚拟机上添加串行端口步骤如下
选中云主机右键-编辑设置-虚拟机属性-添加-串行端口-下一步-选择“通过网络连接”
下一步-选择“服务器”
端口URI设置为vSPC.py
勾选”使用虚拟串行端口集中器“
vSPCURI设置为telnet://10.13.1.171:13370
这里填写的是我的vSPC Server的IP地址和server的端口号。
下一步确认信息--完成
四、验证串口是否有效
1、登陆到vSPC Server
#ssh root@10.13.1.171
2、启动vSPC Server
#python vSPC.py -s
启动显示如下
#ps -ef |grep SPC #root 1152 1 0 16:28 ?00:00:00 python vSPC.py -s #root 1178 1130 0 16:37pxs/0 00:00:00 grep --color=auto SPC
3、检查新建vm串口是否可用,执行:
#python vSPC.py 10.13.1.171
显示结果如下
51CTOBlog-centos6.5-0428:500456dc2a8be7a5-3f37b07016b9dfff:50000
检查你新打开串口(并添加串口配置的vm是否在上述操作的后面有显示,其中51CTOBlog-centos6.5-0428是我刚刚配置的虚拟机的名称。
如果无显示说明vm添加串口配置不对请检查。
如果有显示执行telnet10.13.1.171 50000(这个值为你测试时取新vm名字后面对应的值
执行telnet 10.13.1.17150000:
linux显示为
Trying 10.13.1.171...
Connected to 10.13.1.171.
Escape character is '^]'.
回车后可以显示
CentOS release 6.5 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
localhost.localdomain login:
明白串口配置正确。
如果回车后没有响应说明系统打开串口配置不正确。
windows显示
Trying 10.13.1.171...
Connected to 10.13.1.171.
Escape character is '^]'.
回车后可以显示
SAC>
SAC>
如果回车后没有响应说明系统打开串口配置不正确。
4、串口添加成功之后可以直接通过串口进行i修改密码Ip地址的配置等并结合代码调度来实现自动化运维管理。
最后附一下vSPC 的简介是一个python脚本
vSPC.py - A Virtual Serial Port Concentrator for VMware
Run 'vSPC.py -h' for full help.
This server is based on publicly available documentation:
http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/vsp41_usingproxy_virtual_serial_ports.pd
http://sourceforge.net/p/vspcpy/home/Home/
下载连接
git clone git://git.code.sf.net/p/vspcpy/code vSPC.py
本文转自Jx战壕 51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1714841,如需转载请自行联系原作者