接下来会有一个非常棘手的任务,需要在esxi大概是3台,里面部署大概30几台虚拟机的样子,这个任务还不要了老命了,于是开始尝试使用命令行制作虚拟机。
这次的测试使用代码如下:
@task
@roles("test")
def vm_putfile():
#put(env.local_softdir+"50g.vmdk.tar.gz","/vmfs/volumes/datastore1/server1/")
put(env.local_softdir+"50.vmdk","/vmfs/volumes/datastore1/files/")
env.shell = "/bin/sh -c"
env.keepalive = 1
@task
@roles("test")
def vm_createnew():
run("""
echo "开始创建虚拟机 server1"
echo "创建目录!"
mkdir -p /vmfs/volumes/datastore1/server1
echo "拷贝文件!"
vmkfstools -i /vmfs/volumes/datastore1/files/50.vmdk -d thin /vmfs/volumes/datastore1/server1/server1.vmdk
cat <<'EOF'> /vmfs/volumes/datastore1/server1/server1.vmx
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "11"
numvcpus = "1"
memSize = "2048"
displayName = "server1"
guestOS = "centos-64"
ethernet0.virtualDev = "e1000"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "static"
ethernet0.present = "TRUE"
ethernet0.address = "40:F2:E9:93:D7:1"
virtualHW.productCompatibility = "hosted"
floppy0.present = "FALSE"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "server1.vmdk"
scsi0.virtualDev = "lsilogic"
scsi0.present = "TRUE"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.redo = ""
scsi0.pciSlotNumber = "17"
powerType.powerOff = "hard"
powerType.suspend = "hard"
powerType.reset = "hard"
snapshot.action = "autoRevert"
EOF
""")
但是在使用的时候发现,有点问题,vmwware的磁盘格式到了esxi那边,还得转换,但是转化的过程中,整个磁盘的大小都成了文件,而不是所谓的thin模式。
接下来尝试使用vsphere直接生成虚拟机磁盘文件。
END