libvirt打开bug日志 /etc/libvirt/libvirtd.conf里的log_level
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://186.100.8.117:5000/v2.0/"
查看flavor详细信息
nova flavor-show m1.tiny
设定extra_specs
nova flavor-key m1.tiny set quota:cpu_quota=2222
删除extra_specs的某个key
nova flavor-key m1.tiny unset quota:cpu_quota
三步命令行创建虚拟机
nova flavor-list
nova image-list
nova boot --flavor m1.tiny --image cirros vm01
启动到指定节点,“xxx”为任意字符串
nova boot --flavor 1 --image cirros_31 --availability-zone xxx:compute01 vm_name
/opt/stack/nova/nova/virt/libvirt/driver.py:xml = conf.to_xml()
增加打印LOG.debug(xml)
修改token
cat /etc/keystone/keystone.conf |grep token_format
#token_format =
token_format =UUID
方法1:命令行获得token
curl -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "admin"}}}' -H "Content-type: application/json"http://127.0.0.1:35357/v2.0/tokens | python -m json.tool
方法2:rest获得token,tenantId来自keystone数据库project表里name为admin对应的id
{
"auth": {
"passwordCredentials": {
"username": "admin",
"password": "admin"
},
"tenantId": "2d3a585fcea44c609091eb405c9b58ee"
}
}
X-Auth-Token为返回值里的access:token:id, Content-Type为application/json
请求url
http://IP:8774/v2/tenantId/servers得到虚拟机对应的server-id (或命令行nova list)
http://IP:8774/v2/tenantId/servers/server-id/action
官方api文档http://api.openstack.org/api-ref.html
异常后,手工设置任务状态为Null (或命令行nova reset-state vm_name,nova reset-state --active vm_name只是设置状态)
UPDATE `instances` SET `task_state`=null WHERE (`id`='14')
pdb调试:在断点前增加
import pdb
pdb.set_trace()