!usr/bin/env python
-- coding:utf-8 _-
import os,sys
def virsh_console(vm_info_lists):
vm_info_lists = [[]]
#vm_info_lists = [["vmName","username","password","shell"]]
for vm in eval(vm_info_lists):
print(vm)
with open("test.sh", mode="w+", encoding="utf-8") as f:
data = ["#!/bin/bash\n",
"expect << EOF\n",
'spawn virsh console %s\n' % vm[0],
'expect "]" {send "\\r"}\n',
'expect ":" {send "%s\\r"}\n' % vm[1],
'expect "Password:" {send "%s\\r"}\n' % vm[2],
'expect "#" {send "%s\\r"}\n' % vm[3],
'expect "#" {send "exit\\r"}\n',
'EOF\n']
f.writelines(data)
os.system("sh test.sh")
if name == ‘main’:
vm_info_lists = sys.argv[1]
virsh_console(vm_info_lists)
The instructions and examples are as follows:
put the vm_console.py script anywhere on the host, and execute the following commands directly
Execute on a single virtual machine:
python3 vm_console.py '[[“vmName”, “username”, “password”, “shell” ]]'
Multiple virtual machines execute:
python3 vm_console.py ‘[[“vmName”,“username”,“password”,“shell”],[“vmName1”,“username”,“password”,“shell”]]’
Example of use:
python3 vm_console.py '[[“vm_1_1234”,“root”,“ctsi@123”,“stress -c7 & && stress --vm 1 --vm-bytes 10G --vm-keep”]]'
python3 vm_console.py ‘[[“vm_temple_4_2_53”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_55”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_57”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_59”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_61”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_63”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_65”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_67”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_69”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_71”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;
python3 vm_console.py ‘[[“vm_temple_4_2_73”,“root”,“passw0rd”,“stress -c 2& stress --vm 1 --vm-bytes 2G --vm-keep &”]]’;