"/var/lib/libvirt/qemu/%s.%s.sock" % ("org.qemu.guest_agent.0", instance['name'])) com.eayun.eayunstack.0
kvm \
-drive file=centos7.qcow2,snapshot=off,if=virtio \
-net nic,model=virtio,macaddr=52:54:00:12:34:00 \
-net tap,script=/etc/qemu-ifup \
-m 1024 --enable-kvm \
-chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
-device virtio-serial \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0
需安装virtio的网卡驱动、serial串口驱动
kvm \
-hda xp.qcow2 \
-cdrom virtio-win-0.1.105.iso \
-net nic,model=virtio -net user \
-m 1024 --enable-kvm \
-chardev socket,path=/tmp/xp.qga.sock,server,nowait,id=qga0 \
-device virtio-serial \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0
OVirt
--- GuestAgentService.py
--- OVirtIoChannel.py
--- OVirtAgentLogic.py
--- GuestAgentLinux.py
--- GuestAgentwindows.py
--- OSocketIoChannel.py
数据格式:JSON
其实现代码在OVirtAgentLogic.py
- echo
测试连通性。
{"operation":"echo","cmd":"dir"}
{"operation": "echo", "cmd": "dir"}
其实现代码在GuestAgentLinux.py
-
execute command
{"operation":"execute_command","cmd":"ps aux|wc -l"}
{"operation": "execute_command", "result": "115"}
-
execute script 支持.py、.sh
{"operation":"execute_script","path":"/root/hello.py","type":"py"}
{"operation": "execute_script", "result": "hello"}
-
get information
- os info
{"operation":"get_infomation","name":"os_info"}
{"operation": "get_infomation", "result": {"kernel": "3.10.0-229.7.2.el7.x86_64", "type": "linux", "version": "CentOS Linux", "distribution": "7.1.1503", "arch": "x86_64", "codename": "Core"}}
- machine name
{"operation":"get_infomation","name":"machine_name"}
{"operation": "get_infomation", "result": "ea"}
- os version
{"operation":"get_infomation","name":"os_version"}
{"operation": "get_infomation", "result": "3.10.0-229.7.2.el7.x86_64"}
- all network interfaces
{"operation":"get_infomation","name":"all_network_interfaces"}
{"operation": "get_infomation", "result": [{"attr": "LOOPBACK,UP,LOWER_UP", "inet6": "::1/128", "name": "lo"}, {"attr": "BROADCAST,MULTICAST,UP,LOWER_UP", "mac": "52:54:00:12:34:00", "inet6": "fe80::5054:ff:fe12:3400/64", "name": "eth0", "inet4": ["192.168.1.103/24"]}]}
- available ram
{"operation":"get_infomation","name":"available_ram"}
{"operation": "get_infomation", "result": "110"}
- users
{"operation":"get_infomation","name":"users"}
{"operation": "get_infomation", "result": "root"}
- active user
{"operation":"get_infomation","name":"active_user"}
{"operation": "get_infomation", "result": "root"}
- disks usage
{"operation":"get_infomation","name":"disks_usage"}
{"operation": "get_infomation", "result": [{"path": "/", "total": 9124708352, "used": 2270470144, "fs": "xfs"}, {"path": "/boot", "total": 520794112, "used": 145895424, "fs": "xfs"}]}
- memory stats
{"operation":"get_infomation","name":"memory_stats"}
{"operation": "get_infomation", "result": {"swap_out": 0, "majflt": 0, "swap_usage": 171992, "mem_cached": 39692, "mem_free": 113456, "mem_buffers": 0, "swap_in": 0, "swap_total": 1048572, "pageflt": 0, "mem_total": 1017096, "mem_unused": 73764}}
- os info
其实现代码在GuestAgentwindows.py
-
execute command
{"operation":"execute_command","cmd":"dir"}
-
get information
- os info
{"operation":"get_infomation","name":"os_info"}
- machine name
{"operation":"get_infomation","name":"machine_name"}
- os info