Linux配置的通用系统架构

2024-10-01 17:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我要为我的基于Ubuntu的系统编写配置工具。接下来我想写前端(文本、GUI和web)。但这是我想写的最复杂的项目,我不确定我应该使用的通用架构。在

目前,我有用于更改系统配置的函数和类。但这些功能可能会增长和变化。@Abkigave我建议如何为前端编写接口。我将为这个接口创建基类,但我不知道如何将它与后端连接,然后与前端连接。也许我应该使用fasade、wrapper或其他的设计模式。在

它看起来像(没有接口到后端层):

enter image description here

我不关心现在改变系统配置的UI和函数。但我不知道如何编写中间层,这样就可以很容易地将其与其他层连接起来,并在将来扩展功能。在

我需要一般的想法,设计模式,建议如何在Python中实现这一点。在


Tags: 工具项目函数文本功能web架构ubuntu
3条回答

我不确定这是否完全合适,但我很感兴趣,所以我会咬人。作为一个rubyist,我对Python没什么帮助,但从我的经验来看,以下是对pattens的一些看法。在

我的初步建议是你应该回顾一下那些竞争者。具体地说,我会关注cfengine、chef和bcfg2。他们各自讲述了不同的故事,但如果我总结一下,我会说:

  • Chef有一个可爱的dsl语法,但是由于一个复杂的体系结构而让人失望
  • bcfg2是用python编写的,但似乎有一种令人讨厌的倾向:使用XML:(
  • cfengine在promise理论中有着最强大的理论基础(顺便说一句很有趣),但它是基于C的。在

Wikipedia还提供了一个令人印象深刻的configuration management tools列表,您会发现这些列表很有用。在

关于设计你自己的工具,我建议你要遵循三个原则:

  1. 简单,你越简单,这就越好。范围简单,配置和使用都很重要。在
  2. 您将需要一种单一的方法来存储数据,您需要能够跟踪所做的选择,而不是践踏其他人的更改(特别是在团队环境中)。在
  3. 安全性方面,大多数配置管理工具都需要root权限。所以你需要确保用户可以信任他们正在运行的代码。在

如果使用Python编写GUI、text/CLI和Web界面,它们都可以使用相同的Python模块。这样一来,一个接口中的更改会透明地影响其他接口。另外,所有这些都是Python的优势所在。在

您可以将Fabric与Python一起使用,如文章Ubuntu Server Setup with Python Fabric中所述

位于Comparison of open source configuration management software的Wikipedia文章中有几个其他工具可以使用Python来实现这一点。在

我喜欢SALT采取的方法。在

相关问题 更多 >

    热门问题