跨机器管理配置文件的工具。

configfiles的Python项目详细描述


配置文件

PyPI versionPython 3.6+

一种跨多台机器同步配置文件的系统,智能方式。

安装

$ pip install configfiles

or

$ pip install -r requirements.txt
$ python setup.py install

设计

configfiles用于存储和增量更新配置文件的模型,或者更准确地说,用于更新配置文件的脚本。 这些脚本通常是根据文件更改自动生成的,但可以自定义以执行安装依赖项或填充系统等操作 具体信息。

与git不同,这些文件的更新以脚本序列的形式存储,而不是diff图。这就降低了它的威力 分支,但更简单的内部模型。在将来的版本中,这可能会被修改,但是对于基于脚本的内容,它会更好地工作。

所讨论的脚本实际上不是shell脚本,而是为了更好的互操作性而使用的小python。大多数时候他们是 自动生成。


请注意,当使用configfiles时,您将以与您的帐户相同的权限运行任意python代码,并且 请确保仅sync对受信任的回购协议


用法

configfiles中有几个主要操作,第一个是sync,它将系统更新到配置repo的最新版本。


请注意,一旦sync成为回购协议,就必须desync使用另一个回购协议


$ configfiles sync config.someserver.url:repo/path

可以省略服务器路径以使用最后一个synced服务器。

要更新configfiles repo,可以使用update操作,该操作接受文件的diff并将其作为脚本添加。最终结果 文件被“签入”到回购协议。

$ configfiles update .zshrc

请注意,默认情况下,configfiles路径相对于当前用户文件夹运行,并且update将警告不要在主目录下添加文件。


要使用自定义python脚本作为更新方法,请使用add

$ configfiles add my_updater.py modifies_file.rc

脚本在主目录中运行,保证对configfiles公共api的完全访问。

若要还原由sync所做的更改,请使用rollback

$ configfiles rollback <number of changes>

or (with caution)

$ configfiles rollback --remote <number of changes>

请注意,回滚只关心文件,并且当前无法创建事务脚本(即自定义回滚脚本) 脚本功能的主要目的是为特定于机器的东西定制文件,这就是为什么它是这样设计的。


在使用上述任何方法之前,configfiles repo必须是init-ed.

init创建一个没有附加脚本的新repo。

$ configfiles init config.someserver.url:repo/path
$ configfiles sync config.someserver.url:repo/path
$ configfiles update .zshrc <etc>

其他文档

TOdo,有关详细信息,请参阅代码注释

服务器要求

托管configfiles repo的服务器必须支持sftp,这就是它。没有“configfiles server”,整个系统的代码仅限于客户端

更改日志

0.3.1:

  • 错误修复

0.3.0:

  • 增加了同步特定次数的功能
  • 错误修复

0.2.1:

  • 错误修复版本

0.2.0:

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FirebaseInstanceId。getInstance()始终为空   linux Java执行文件错误   javaspringboot:如何使用Ajax在springboot和Thymeleaf中创建进度条?   java禁用在安卓上使用传单时启用setJavaScriptEnabled   java如何在主体中发布原始类型JSON数据?   消除JAVA While循环中的额外输出   如何在java中直接将基本数据类型分配给自定义类   java为什么addNode()方法返回编译错误“类型中的方法…不适用于参数…”,我该如何修复它?   java惰性合成可观察对象   eclipse Java Blackberry位图单击   java Android:AsyncTask对象[]无法在doInBackground中强制转换   java有没有办法重构或改进这段代码?   java如何使用系统以十六进制打印字节。出来普林顿?   多线程如何在我的java聊天室中调试“java.net.UnknownHostException”?   java如何从Google App Engine下载应用程序源文件   java如何在Spring Data Mongo的聚合$group中使用类似$dateToString   java IBM websphere application server未在MyEclipse8中启动。0