首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过从文件读取/piping来使用gcloud编辑DNS记录

通过从文件读取/piping来使用gcloud编辑DNS记录
EN

Stack Overflow用户
提问于 2014-06-21 17:11:09
回答 3查看 1.5K关注 0票数 6

我可以使用gcloud工具编辑DNS记录,方法是使用以下命令交互编辑vi/mate中的JSON文件:

代码语言:javascript
复制
gcloud dns records --zone=myzone edit

但是,我希望能够进行批量更新,如下所示:

代码语言:javascript
复制
gcloud dns records --zone=myzone edit < my-additional-records.txt

DNS my-additional-records.txt包含我想要添加的...where记录。

我认为这并不简单,因为要编辑的JSON文件包含DNS记录的添加和删除。因此,任何建议都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2014-10-02 15:55:38

我认为您可以尝试像这样使用linux行编辑器'ed‘:

代码语言:javascript
复制
EDITOR=ed gcloud dns records --zone=myzone edit <<-EOF
12i
, {
        "kind": "dns#resourceRecordSet",
        "name": "a.mydomain.org.",
        "rrdatas": [
            "111.222.111.222"
        ],
        "ttl": 21600,
        "type": "A"
}
.
,wq
EOF

这假设编辑文件的顶部看起来像这样(因此您可以将添加的内容附加到第12行)

代码语言:javascript
复制
{
    "additions": [
        {
            "kind": "dns#resourceRecordSet",
            "name": "mydomain.org.",
            "rrdatas": [
                "ns-cloud-c1.googledomains.com. dns-admin.google.com. 2 21600 3600 1209600 300"
            ],
            "ttl": 21600,
            "type": "SOA"
        },

有关如何使用ed的更多详细信息,请单击此处:http://www.gnu.org/software/ed/manual/ed_manual.html

票数 4
EN

Stack Overflow用户

发布于 2016-08-03 00:02:43

提供这个新的答案,因为自从这个问题被提出以来,gcloud dns ...已经有了显着的改进。现在有两种方法可以编辑记录集。

使用导出/导入命令

  1. ,如下所示:

gcloud dns记录集导出-区域my-zone记录-文件

默认情况下,RECORDS-FILE是yaml格式。您也可以通过使用--zone-file-format标志在zone file format中获取它。

然后,您可以使用您选择的任何编辑器编辑RECORDS-FILE,并使用以下命令导入更改后的记录:

gcloud dns记录集导入--zone my-zone --delete-all-existing RECORDS-FILE

Import也接受--zone-file-format。如果您只想添加/编辑某些记录,而不是全部记录,则可以省略--delete-all-existing标志。

  • 使用事务命令组,如下所示:

gcloud dns记录-set事务开始# Start事务gcloud dns记录-设置事务添加/删除#添加删除记录gcloud dns记录-设置事务执行# execute transaction

票数 2
EN

Stack Overflow用户

发布于 2014-07-01 05:45:04

我自己还没有尝试过,但是如果JSON格式是这里的格式:https://developers.google.com/cloud-dns/getting-started

如果只设置deletions : [] (空JSON数组)如何?这不是实现了您想要的(不删除)吗?不知何故这是不是失败了?

更新1:

如果问题出在程序的实际管道输入上,而你又找不到一种基于外壳的方法来解决这个问题,我找到了this migration script,它向你展示了如何编写这个动作的脚本(使用python)。

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

https://stackoverflow.com/questions/24340131

复制
相关文章

相似问题

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