`
lynnkong
  • 浏览: 301452 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

如何在openstack环境中实现定制化功能

阅读更多

本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
我写这篇博客的目的是介绍一个在线修改
openstack工程文件以实现对某些功能的测试(或其他一些目的)的方法。可能是我自己的水平问题,亦或者是大牛们不屑于回答这样的问题,我几乎在网上(国内)找不到类似的方法。于是研究了一点时间并最终实验成功后,不敢保留,稍作总结,希望能帮助与我有同样困惑的朋友们。

1      文件在哪

现在网上的安装方法基本都是通过配置安装源安装,那么安装后的openstack工程的程序文件在哪呢?以nova为例:

 

这个目录下的结构是不是十分熟悉,对,基本跟在eclipse下浏览工程的结构一模一样,这就是安装openstack后源代码路径。再看下面的目录:

 

这里就是nova工程经过编译后的文件,其中的py文件是上面那个目录中对应文件的链接而已。

2      动手修改python文件

知道了源文件和编译文件的位置,那么我们就能很容易的修改程序以满足我们自己的要求。以修改nova操作权限判断流程为例。nova创建虚拟机时,会调用nova/compute/api.pyAPI类的_check_create_policies方法根据policy.json文件内容进行操作权限的判断,而该方法最终会调用nova/policy.py中的enforce方法:

 
 

如果我们想知道程序运行到此时,context中到底有什么内容,那么我们可以修改文件如下,注意对比上面代码新增的4行:

 
需要注意是:要在文件的开头处将logging引入,同时,定义:

LOG = logging.getLogger(__name__)

 

我们打印两行*号以便快速定位日志,同时将context内容打印出来,并显式的抛出一个异常让本次处理停止。

3      编译文件

文件修改完,必须经过编译并把源文件和编译后的文件覆盖现有工程中相应的文件。python中提供了很方便的模块对源文件进行编译,我们可以把如下内容保存到一个脚本中并执行:

(echo 'import py_compile'; echo 'py_compile.compile(r"/root/pydir/policy.py", r"/root/pydir/policy.pyc")') | python

简单解释:/root/pydir/policy.py为源文件,/root/pydir/policy.pyc是你想要将编译后的文件放在哪。

4      实验

分别将policy.py文件和policy.pyc文件替换/usr/share/pyshared/nova/policy.py/usr/lib/python2.7/dist-packages/nova/policy.pyc(强烈建议在替换前先备份原来的文件!)

 

重启nova各个进程:

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done

 

随便调用任意一个nova命令,如nova list,将会得到以下输出:

 

说明我们的修改生效。打开日志,看到了context中的具体内容:

 
本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

  • 大小: 11.5 KB
  • 大小: 17 KB
  • 大小: 30.2 KB
  • 大小: 14.8 KB
  • 大小: 4.5 KB
  • 大小: 9.2 KB
0
0
分享到:
评论

相关推荐

    OpenStack 开发环境搭建

    2. 配置环境:修改local.conf文件,根据需求定制OpenStack环境,例如设置网络配置,选择要启动的服务等。 3. 运行stack.sh脚本:执行此脚本将开始安装和配置OpenStack服务。 4. 检查安装:安装完成后,可以通过...

    Python库 | openstack-vim-driver-0.1.0.tar.gz

    通过这个库,开发者能够更好地集成和管理OpenStack环境中的虚拟化资源。 首先,我们要了解OpenStack是一个开源的云计算平台,它提供了一整套服务来构建和管理私有云、公有云以及混合云。VIM则是OpenStack架构中的...

    ThinkCloud Openstack概览.pdf

    综上所述,ThinkCloud OpenStack是一个成熟的、面向企业的云计算解决方案,结合OpenStack Mitaka版本的特性,提供了计算、网络、存储、镜像、认证和管理等多个层面的强大功能,确保了企业在云环境中的灵活性、安全性...

    OpenStack中国行PPT(成都)

    参会者可能有机会了解如何部署和优化OpenStack环境,以及如何利用OpenStack实现企业的数字化转型。通过这些PPT,我们可以深入学习OpenStack的架构、配置、运维以及与其它开源技术的集成,提升云计算相关技能。

    OpenStack Cloud Computing Cookbook

    7. **故障排查与性能优化**:书中可能会提供实用技巧来诊断和解决OpenStack环境中遇到的问题,以及如何优化系统性能,如负载均衡和资源调度。 8. **案例研究与最佳实践**:作者可能会分享实际的云部署案例,帮助...

    Openstack基础讲解

    此外,OpenStack的开源特性也意味着企业可以根据自身需求进行定制化开发,避免被单一供应商锁定。 然而,OpenStack的复杂性也是其一大挑战。由于组件众多,安装、配置和维护都需要专业知识。此外,虽然OpenStack...

    华为OpenStack增强商用解决方案.pdf

    社区版OpenStack虽然强大,但在实际应用中存在一些问题,例如功能未完全实现,如VDC(Virtual Data Center)管理、应用虚拟化部署等。此外,操作维护方面也有待加强,比如硬件和虚拟化资源的统一管理、容量扩展的...

    Openstack L版,最新配置文件node1

    配置文件有助于定制化和优化Horizon的功能。 5. **Glance**:Glance是OpenStack的镜像服务,用于存储和检索虚拟机镜像。配置文件涉及镜像的存储后端设置,如Swift或本地文件系统,以及认证和安全策略。 6. **...

    OpenStack实战演练及开发入门完整全套培训

    定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容---...

    我自己工作当中使用的openstack操作手册

    这个操作手册是我个人在工作中积累的经验总结,主要用于日常管理和操作OpenStack环境。它包含了一系列实用的命令行工具,帮助用户高效地管理OpenStack资源。 在OpenStack中,核心组件包括计算(Nova)、网络...

    openstack-nova计算节点一键安装脚本_openstack-nova_openstack_

    3. **QEMU**:在KVM环境中,QEMU是一个模拟器,配合KVM提供硬件虚拟化功能。 4. **Neutron Agent**:如Nova-Compute需要与网络服务Neutron通信,通过其代理(如nova-network或neutron-openvswitch-agent)来配置...

    OpenStack实战演练及开发入门完整全套培训__百度云视频链接

    定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容---...

    基于OpenStack的私有云产品化实践.pdf

    节点生命周期管理、监控告警、日志收集与分析、元数据备份以及定制化运维操作支持进一步简化运维工作。 3. **融合**:计算、存储、网络和管理服务融合部署,通过Cluster Agent协调,实现资源的有效整合。此外,支持...

    FusionStorage_OpenStack_Driver-master.zip

    这个压缩包提供的代码和文档,对于想要定制化或者扩展FusionStorage在OpenStack环境中的功能的开发者来说,是一份宝贵的参考资料。 总之,FusionStorage Block V100R003C30U2的北向接口和OpenStack Driver的结合,...

    OpenStack.rar

    这个版本的noVNC提供了无插件的VNC访问能力,对OpenStack环境中的虚拟机管理非常有用。 9. **cirros-0.3.2-x86_64-disk.img**: Cirros是一个小型的操作系统,常被用作OpenStack的测试和演示镜像。这个镜像文件可以...

    ThinkCloud OpenStack基础版技术白皮书.pdf

    - 云主机:提供高性能的虚拟机服务,支持多种操作系统和应用,可根据需求进行定制化配置,保证了业务运行的稳定性和性能。 - 云存储:结合Cinder和Swift服务,提供块存储和对象存储解决方案,满足不同场景下的数据...

    openstack部署实践(第二版)

    4. **服务配置**:深度解析各个OpenStack服务的配置选项,如Nova的调度策略、Swift的存储策略、Neutron的网络模型等,让读者能够定制化OpenStack以满足特定业务需求。 5. **安全管理**:介绍OpenStack的身份认证、...

    OpenStack和Ceph结合的云存储设计与实现1

    此外,由于OpenStack和Ceph都是开源项目,它们的结合也为企业提供了更多的定制化选项和社区支持,进一步降低了运维成本。 总之,OpenStack与Ceph的结合是解决现代企业存储挑战的有效途径,它为企业带来了灵活、可靠...

    Openstack-在京东的应用实践

    OpenStack在京东的应用实践中扮演了核心角色,作为一家大型互联网公司,京东利用OpenStack构建了其云计算基础设施,以满足业务的高效、灵活和可扩展的需求。以下是对OpenStack在京东应用的详细阐述: 1. **...

    OpenStack开源云计算方案.pptx

    OpenStack的发展历程显示了其快速迭代和不断进化的特性,从2010年的Austin版本到后续的Bexar、Cactus、Diablo等,每个版本都在功能和稳定性上有所提升,满足了日益增长的市场需求。OpenStack的生态系统也日趋繁荣,...

Global site tag (gtag.js) - Google Analytics