Transactions gcloud dns删除子域NS记录
我尝试使用gcloud dns transaction remove命令来删除我添加到区域以指向子域的名称服务器条目,但无效 我认为我找到的删除子域nameserver条目的唯一方法是拉取整个区域文件,删除该条目,然后导入已编辑的区域文件。然而,对我来说,这似乎是危险和容易出错的 有人知道如何使用gcloud dns记录集事务删除然后gcloud dns记录集事务执行命令来删除NS条目吗 我试过这个:Transactions gcloud dns删除子域NS记录,transactions,gcloud,Transactions,Gcloud,我尝试使用gcloud dns transaction remove命令来删除我添加到区域以指向子域的名称服务器条目,但无效 我认为我找到的删除子域nameserver条目的唯一方法是拉取整个区域文件,删除该条目,然后导入已编辑的区域文件。然而,对我来说,这似乎是危险和容易出错的 有人知道如何使用gcloud dns记录集事务删除然后gcloud dns记录集事务执行命令来删除NS条目吗 我试过这个: gcloud dns record-sets transaction start --zon
gcloud dns record-sets transaction start --zone ${ZONE_NAME}
gcloud dns record-sets transaction remove "${NS_0}" "${NS_1}" --name "${friendly_hostname}" --zone ${ZONE_NAME} --ttl 600 --type=NS
但是,每次执行此操作时,我都会收到以下错误消息:
ERROR: (gcloud.dns.record-sets.transaction.remove) Record to be removed does not exist
要使用“transaction remove”命令,您需要运行以下命令(修改[]的内容以获得正确的值):
$gcloud dns记录集事务开始-z=[examplezonename]
它将启动事务
$gcloud dns record set transaction remove--name=“[name(记住最后一个文档)”)”--type=“NS”--ttl=[time\u in\u seconds]-z=“[name\u of_the_dns\u zone]”“[full\u name\u of_dns\u server(也是最后一个文档)”,“[full\u name\u of_of_dns\u server(也是最后一个文档)””
我自己试过,效果很好。回答,因为我花了太长时间才意识到: “gcloud dns记录集事务删除”和“gcloud dns记录集列表”命令之间的数据语法不同 列出后,gcloud将返回一个名称服务器列表,如下所示:
ns-cloud-e1.googledomains.com.,ns-cloud-e2.googledomains.com.,ns-cloud-e3.googledomains.com.,ns-cloud-e4.googledomains.com.
ns-cloud-e1.googledomains.com. ns-cloud-e2.googledomains.com. ns-cloud-e3.googledomains.com. ns-cloud-e4.googledomains.com.
read DNS_NAME DNS_TYPE DNS_TTL DNS_DATA <<< "$(gcloud dns record-sets list --project=$MYPROJECT --zone=$PARENT_ZONE --name=$PLATFORM_DOMAIN|tail -n +2)"
gcloud --project=$MYPROJECT dns record-sets transaction start --zone="$PARENT_ZONE"
gcloud --project=$MYPROJECT dns record-sets transaction remove --name="${PLATFORM_DOMAIN}" --ttl=$DNS_TTL --type=$DNS_TYPE --zone=$PARENT_ZONE ${DNS_DATA//,/ }
gcloud --project=$MYPROJECT dns record-sets transaction execute --zone="$PARENT_ZONE"
但是,如果您希望在现场数据中包含这些ns服务器的ns记录,gcloud希望将它们分开,如下所示:
ns-cloud-e1.googledomains.com.,ns-cloud-e2.googledomains.com.,ns-cloud-e3.googledomains.com.,ns-cloud-e4.googledomains.com.
ns-cloud-e1.googledomains.com. ns-cloud-e2.googledomains.com. ns-cloud-e3.googledomains.com. ns-cloud-e4.googledomains.com.
read DNS_NAME DNS_TYPE DNS_TTL DNS_DATA <<< "$(gcloud dns record-sets list --project=$MYPROJECT --zone=$PARENT_ZONE --name=$PLATFORM_DOMAIN|tail -n +2)"
gcloud --project=$MYPROJECT dns record-sets transaction start --zone="$PARENT_ZONE"
gcloud --project=$MYPROJECT dns record-sets transaction remove --name="${PLATFORM_DOMAIN}" --ttl=$DNS_TTL --type=$DNS_TYPE --zone=$PARENT_ZONE ${DNS_DATA//,/ }
gcloud --project=$MYPROJECT dns record-sets transaction execute --zone="$PARENT_ZONE"
这意味着,如果您使用上述命令提取ns记录的数据以将其用于删除,则必须按如下方式转换它们:
ns-cloud-e1.googledomains.com.,ns-cloud-e2.googledomains.com.,ns-cloud-e3.googledomains.com.,ns-cloud-e4.googledomains.com.
ns-cloud-e1.googledomains.com. ns-cloud-e2.googledomains.com. ns-cloud-e3.googledomains.com. ns-cloud-e4.googledomains.com.
read DNS_NAME DNS_TYPE DNS_TTL DNS_DATA <<< "$(gcloud dns record-sets list --project=$MYPROJECT --zone=$PARENT_ZONE --name=$PLATFORM_DOMAIN|tail -n +2)"
gcloud --project=$MYPROJECT dns record-sets transaction start --zone="$PARENT_ZONE"
gcloud --project=$MYPROJECT dns record-sets transaction remove --name="${PLATFORM_DOMAIN}" --ttl=$DNS_TTL --type=$DNS_TYPE --zone=$PARENT_ZONE ${DNS_DATA//,/ }
gcloud --project=$MYPROJECT dns record-sets transaction execute --zone="$PARENT_ZONE"
读取DNS\u名称DNS\u类型DNS\u TTL DNS\u数据