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的格式。
推荐阅读
-
ubuntu 装配xampp,将php.ini文件中的allow_call_time_pass_reference=On后,打开网页提示下载保存网页不解析PHP
-
ThinkPHP 模版中动态 include文件 支持变量解析
-
解析php中的fopen()函数用打开文件模式说明
-
linux中解析.htpasswd文件的PHP类
-
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析_PHP
-
ThinkPHP 模版中动态 include文件 支持变量解析
-
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析,
-
读取、把模板中的标签解析成PHP语法编译成PHP文件
-
windows批处理脚本bat命令解析【10】如何运行cmd命令3bat批处理文件中的注释
-
python 中open文件路径的选择问题解析