我可以使用gcloud工具编辑DNS记录,方法是使用以下命令交互编辑vi/mate中的JSON文件:
gcloud dns records --zone=myzone edit但是,我希望能够进行批量更新,如下所示:
gcloud dns records --zone=myzone edit < my-additional-records.txtDNS my-additional-records.txt包含我想要添加的...where记录。
我认为这并不简单,因为要编辑的JSON文件包含DNS记录的添加和删除。因此,任何建议都将不胜感激。
发布于 2014-10-02 15:55:38
我认为您可以尝试像这样使用linux行编辑器'ed‘:
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行)
{
"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
发布于 2016-08-03 00:02:43
提供这个新的答案,因为自从这个问题被提出以来,gcloud dns ...已经有了显着的改进。现在有两种方法可以编辑记录集。
使用导出/导入命令
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
发布于 2014-07-01 05:45:04
我自己还没有尝试过,但是如果JSON格式是这里的格式:https://developers.google.com/cloud-dns/getting-started
如果只设置deletions : [] (空JSON数组)如何?这不是实现了您想要的(不删除)吗?不知何故这是不是失败了?
更新1:
如果问题出在程序的实际管道输入上,而你又找不到一种基于外壳的方法来解决这个问题,我找到了this migration script,它向你展示了如何编写这个动作的脚本(使用python)。
https://stackoverflow.com/questions/24340131
复制相似问题