欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

openstack中setup.cfg文件解析

程序员文章站 2022-05-11 17:58:49
...
一 介绍
setup.cfg文件,作为openstack中的源码地图,毫不夸张的说,是我们浏览openstack代码时最为依仗的文件,它引导我们去认识一个新的项目,并了解它代码的结构。
而入口点"entry_point”作为setup.cfg中最重要的section,通过对它的分析,我们可以相对容易地找到所要研究代码的突破口。
每个setup.cfg文件的"entry_point”都会有个比较特殊的组,或者说命令空间"console_scripts”,其中的每一项都表示一个可执行的脚本,这些脚本在部署时会被安装,我们也可以将它们理解为整个项目所提供的各个服务的入口点。
二 文件片段
console_scripts =
    nova-api = nova.cmd.api:main
    nova-api-metadata = nova.cmd.api_metadata:main
    nova-api-os-compute = nova.cmd.api_os_compute:main
    nova-cells = nova.cmd.cells:main
    nova-cert = nova.cmd.cert:main
    nova-compute = nova.cmd.compute:main
    nova-conductor = nova.cmd.conductor:main
    nova-console = nova.cmd.console:main
    nova-consoleauth = nova.cmd.consoleauth:main
    nova-dhcpbridge = nova.cmd.dhcpbridge:main
    nova-idmapshift = nova.cmd.idmapshift:main
    nova-manage = nova.cmd.manage:main
    nova-network = nova.cmd.network:main
    nova-novncproxy = nova.cmd.novncproxy:main
    nova-policy = nova.cmd.policy_check:main
    nova-rootwrap = oslo_rootwrap.cmd:main
    nova-rootwrap-daemon = oslo_rootwrap.cmd:daemon
    nova-scheduler = nova.cmd.scheduler:main
    nova-serialproxy = nova.cmd.serialproxy:main
    nova-spicehtml5proxy = nova.cmd.spicehtml5proxy:main
    nova-status = nova.cmd.status:main
nova-xvpvncproxy = nova.cmd.xvpvncproxy:main
三 详细解释
对Nova来说,我们可以看到,除了常用的几个主要服务:API、Conductor、Scheduler与Computer,它还提供了很多其他的服务。
nova-api:Nova对外提供的RESTFUL API服务,目前Nova共提供了三种API服务,nova-api-ec2、nova-api-metadata以及nova-api-os-compute,nova-api根据配置文件/etc/nova/nova.conf的enable_apis选项设置启动这三种服务。
nova-api-metadata:接受虚拟机实例metadata(元数据)相关请求,目前这部分工作由Neutron项目完成,而nova-api-metadata API服务只在多计算节点部署,并且使用nova-network情况下使用。
nova-api-os-compute:Openstack API服务。
nova-cells:Cell模块允许用户在不影响现有Openstack云环境的前提下,增强横向扩展、大规模部署问题。Cell模块启用后,Openstack云环境中的主机被划分成组,称为Cell。Cell可以被配置为树形结构,Openstack云环境通过添加子Cell的方式进行扩展。nova-cells负责各个Cell之间的通信,以及为一个新的虚拟机实例选择合适的Cell,因此每个Cell都需要运行nova-cells服务。
nova-cert:管理X509证书。
nova-compute:Computer服务。
nova-conductor:Conductor服务。
nova-console:允许用户通过代理访问虚拟机实例(Instance)的控制台。已经在G版本中被nova-xvpnvncproxy所取代。
nova-consoleauth:nova-consoleauth服务。
nova-dhcpbridge:提供nova-network的DHCP bridge。
nova-manage:提供很多与Nova维护和管理相关的功能,比如用户创建,VPN管理等。
nova-network :提供网络服务,已经被Neutron所取代,目前只有在使用Devstack部署Openstack时才会使用nova-network。
nova-novncproxy:Nova提供了novncproxy代理支持用户通过vnc访问虚拟机。提供完整的vnc访问功能,涉及几个nova服务。nova-consoleauth提供认证授权,nova-novncproxy用于支持基于浏览器的vnc客户端,nova-xvpvncproxy: 支持基于java的vnc客户端。
nova-rootwrap :用于在Openstack在运行过程中以root身份运行某些shell命令
nova-scheduler:Scheduler服务。
四 补充说明
Juno版本中,共有三个版本的API:v2,v2.1,v3。v2 API是正在使用的发布版本,目前部署在生产环境中都是使用这个版本。V3在Icehouse中开发,但是并不对外发布,v3针对v2中存在的一些文件进行了改善。Juno版本提出小版本的管理方式,因此基于v3又开始v2.1的开发,目前v2.1基本上重用了v3的代码,但是为了保持对v2的兼容和API本身的稳定,在返回的数据上恢复了v2的格式。
相关标签: nova