本次以修改centos操作系统虚机密码为例,给大家从源码级别讲解整个流程,希望对大家有所帮助。
修改密码的本质,就是修改对应的passwd和shadow文件,并且将修改后的文件注入到实例的镜像中。
来看下具体流程:
1,请求提交到了nova-api(nova/api/openstack/compute/server.py):
def _action_change_password(self, req, id, body):
...
self.compute_api.set_admin_password(context, server,
password, meta_item)
##请求发到对应的compute节点上执行set_admin_password操作
2,compute节点执行重置密码操作(nova/compute/manager.py):
def set_admin_password(self, context, instance, new_pass):
... ##获取信息,并且设置下数据库状态
self.driver.set_admin_password(context,
instance, network_info, new_pass)
##告诉driver,执行