Openstack使用自定义密码创建虚拟机
nova.api.openstack.compute.servers.py中的create函数写道虚拟机的adminPass来自一个名为password的变量。这个变量又是通过_get_server_admin_password函数产生的:
create函数:
1 | password = self._get_server_admin_password(server_dict) |
_get_server_admin_password函数:
1 | def _get_server_admin_password(self, server): |
由此可见,_get_server_admin_password函数已经具备判断并选择自定义密码的能力,于是只要传入一个adminPass到server_dict里即可。
修改后的create函数:
1 | meta_dict = body['server'].get('metadata', None) |
调用方法:
1 | nova boot ******* --meta password=mypass ***** |