首页
/ cli53 - 亚马逊Route 53的命令行工具

cli53 - 亚马逊Route 53的命令行工具

2024-12-23 10:02:41作者:宣聪麟

1. 安装指南

cli53的安装非常简单,只需从GitHub发布页面下载对应的二进制文件(提供Linux、Mac和Windows的构建版本):

$ sudo mv cli53-my-platform /usr/local/bin/cli53
$ sudo chmod +x /usr/local/bin/cli53

在Mac上,您也可以使用homebrew进行安装:

$ brew install cli53

配置您的亚马逊凭证,可以将它们放在~/.aws/credentials文件中:

[default]
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY

或者设置环境变量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

您可以通过传递--profile参数或设置环境变量AWS_PROFILE在不同的凭证集之间切换。

例如:

cli53 list --profile my_profile

您还可以通过传递--role-arn参数来承担特定的角色。

例如:

cli53 list --role-arn arn:aws:iam::123456789012:role/myRole

您可以结合使用角色和配置文件。

例如:

cli53 list --profile my_profile --role-arn arn:aws:iam::123456789012:role/myRole

有关更多信息,请参阅:AWS SDKs中管理和凭证的新方法和标准化

注意:在Docker的Alpine上,预构建的二进制文件无法工作,因此请使用Debian,或者按照以下说明从源代码构建。

2. 项目的使用说明

cli53提供了从BIND格式导入和导出以及简单的命令行管理Route 53域的功能。

特性:

  • 从BIND格式导入和导出

  • 创建、删除和列出托管区域

  • 创建、删除和更新单个记录

  • 创建AWS扩展:故障转移、地理定位、延迟、加权以及ALIAS记录

  • 创建、删除和使用可重用委托集

以下是cli53的一些使用示例:

创建托管区域:

$ cli53 create example.com --comment '我的第一个区域'

检查我们做了什么:

$ cli53 list

列出也支持其他输出格式(例如json,用于脚本中使用jq):

$ cli53 list -format json | jq .[].Name

导入BIND区域文件:

$ cli53 import --file zonefile.txt example.com

替换导入的区域,并等待完成:

$ cli53 import --file zonefile.txt --replace --wait example.com

也可以进行“干运行”导入,以检查将会发生什么:

$ cli53 import --file zonefile.txt --replace --wait --dry-run example.com

向上更新导入的区域(替换现有记录并添加新记录,不删除):

$ cli53 import --file zonefile.txt --upsert example.com

验证区域文件语法:

$ cli53 validate --file zonefile.txt

创建一个A记录,指向192.168.0.1,TTL为60秒:

$ cli53 rrcreate example.com 'www 60 A 192.168.0.1'

更新此A记录以指向192.168.0.2:

$ cli53 rrcreate --replace example.com 'www 60 A 192.168.0.2'

删除A记录:

$ cli53 rrdelete example.com www A

创建MX记录:

$ cli53 rrcreate example.com '@ MX 10 mail1.' '@ MX 20 mail2.'

创建一个轮询A记录:

$ cli53 rrcreate example.com '@ A 127.0.0.1' '@ A 127.0.0.2'

对于CNAME记录,相对域名没有尾随点,但绝对域名应该有:

$ cli53 rrcreate example.com 'login CNAME www'
$ cli53 rrcreate example.com 'mail CNAME ghs.googlehosted.com.'

导出为BIND区域文件(用于备份!):

$ cli53 export example.com

将完全限定域名(而不是仅前缀)导出到stdout,并将AWS调试日志发送到stderr

$ cli53 export --full --debug example.com > example.com.txt 2> example.com.err.log

创建一些加权记录:

$ cli53 rrcreate --identifier server1 --weight 10 example.com 'www A 192.168.0.1'
$ cli53 rrcreate --identifier server2 --weight 20 example.com 'www A 192.168.0.2'

创建指向ELB的别名:

$ cli53 rrcreate example.com 'www AWS ALIAS A dns-name.elb.amazonaws.com. ABCDEFABCDE false'

创建指向A记录的别名:

$ cli53 rrcreate example.com 'www AWS ALIAS A server1 $self false'

创建指向CNAME的别名:

$ cli53 rrcreate example.com 'docs AWS ALIAS CNAME mail $self false'

创建一些地理定位记录:

$ cli53 rrcreate -i Africa --continent-code AF example.com 'geo 300 IN A 127.0.0.1'
$ cli53 rrcreate -i California --country-code US --subdivision-code CA example.com 'geo 300 IN A 127.0.0.2'

创建一个主/次健康检查记录对:

$ cli53 rrcreate -i Primary --failover PRIMARY --health-check 2e668584-4352-4890-8ffe-6d3644702a1b example.com 'ha 300 IN A 127.0.0.1'
$ cli53 rrcreate -i Secondary --failover SECONDARY example.com 'ha 300 IN A 127.0.0.2'

创建一个带有健康检查的多值记录:

$ cli53 rrcreate -i One --multivalue --health-check 2e668584-4352-4890-8ffe-6d3644702a1b example.com 'ha 300 IN A 127.0.0.1'
$ cli53 rrcreate -i Two --multivalue --health-check 7c90445d-ad67-47bd-9649-3ca0985e1f88 example.com 'ha 300 IN A 127.0.0.2'

创建、列出然后删除一个可重用委托集:

$ cli53 dscreate
$ cli53 dslist
$ cli53 dsdelete NA24DEGBDGB32

更多文档,请参考:

$ cli53 --help
$ cli53 rrcreate --help

3. 项目API使用文档

cli53的命令行界面是其主要的API。每个命令都有相应的参数和选项,可以通过--help参数获得详细的使用说明。

例如,要获取rrcreate命令的帮助信息:

$ cli53 rrcreate --help

4. 项目安装方式

请参考“安装指南”部分获取详细的安装步骤。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
163
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
199
279
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
952
558
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
77
71
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0