问题描述
是否有一种简单的方法可以将Openstack show命令输出转换为openstack命令? 目标是在完全擦除后重建开放堆栈环境。
(例如:openstack network show myNet> out.txt, 然后以out.txt为基础,以某种方式生成带有适当字段的Openstack CLI命令,以重新创建相同的确切网络?
谢谢!
解决方法
您可以将show命令的输出作为json格式的字符串写入文件,因此您可以轻松地使用python-script读取输出的信息以创建并执行所需的命令。
要将openstack命令的输出打印为json,请在命令末尾添加-f json
。
示例:
openstack server show cirros -f json
{
"OS-DCF:diskConfig": "MANUAL","OS-EXT-AZ:availability_zone": "nova","OS-EXT-SRV-ATTR:host": "test-system","OS-EXT-SRV-ATTR:hypervisor_hostname": "test-system","OS-EXT-SRV-ATTR:instance_name": "instance-00000001","OS-EXT-STS:power_state": "Shutdown","OS-EXT-STS:task_state": null,"OS-EXT-STS:vm_state": "stopped","OS-SRV-USG:launched_at": "2020-07-22T08:41:06.000000","OS-SRV-USG:terminated_at": null,"accessIPv4": "","accessIPv6": "","addresses": "test-network=192.168.62.207","config_drive": "","created": "2020-07-22T08:40:46Z","flavor": "f1 (273a2179-ac85-4c54-a40a-2c0121b338ff)","id": "6d302fcf-4de3-45a5-93c0-eb95650e5952","image": "cirros (86dded1f-8e0f-4342-906e-8ff9fbd854e2)","name": "cirros","project_id": "cbba4b1f3cb4460ca63e8ddb87c9b5fb","properties": "","security_groups": "name='default'","status": "SHUTOFF","updated": "2020-08-17T13:26:55Z","user_id": "b6505d6801e84fb98d77d2461f9719c2","volumes_attached": ""
}