首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从chef服务器批量删除数据库?

从chef服务器批量删除数据库?
EN

Stack Overflow用户
提问于 2014-12-15 21:19:09
回答 2查看 607关注 0票数 0

我使用的是包版本的数据库标签,例如

代码语言:javascript
复制
databags/
  versions/
    0.1.1
    0.1.2
    0.1.3
    0.2.1
    0.2.2
    ...

当版本变得过时时,我想清除旧的数据包项。例如,有没有办法使用正则表达式批量删除数据包项?类似于:

代码语言:javascript
复制
knife data bag delete versions 0.1.*

目前,我必须查询服务器并迭代结果,这需要多次刀子调用。

EN

回答 2

Stack Overflow用户

发布于 2014-12-15 23:25:51

为此,我将使用基于repo的数据库标记。

如果你做一个knife data bag from file 'folder',它会用这个文件夹中的项目(jsno文件)覆盖数据库。Documentation here

因此,有一个干净的文件夹,其中只包含文件系统上每个项目所需的json,并使用文件系统工具管理内容,这样就可以了,最后只需要一条命令。

如果文件系统上还没有数据库标记,那么可以为每个数据库标记创建一个目录,然后创建一个knife data bag show BAG ITEM -F json > databag_folder/item.json来创建每个项目(在刀子数据包示上循环可能会有所帮助)

也许已经有一种刀子插件,但我找不到它。

快速搜索后编辑:http://docs.chef.io/chef/knife.html#id133似乎可以使用此命令删除数据库标签项目/食谱。

票数 0
EN

Stack Overflow用户

发布于 2014-12-16 02:21:06

可能是这样的:

knife exec -E 'api.get("/data/versions").select{|v| v.start_with?('0.1')}.each{|v| api.delete("/data/versions/#{v}")'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27485034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档