自动化服务器管理工具指南
1. 优先使用定义而非脚本
通用脚本语言(如Bash、Perl、Powershell、Ruby和Python)是基础设施团队工具包的重要组成部分。但像Ansible、CFEngine、Chef和Puppet等专用工具也有优势,它们旨在以可重复的方式简化和标准化多服务器配置问题。
这些工具将服务器配置定义与执行和应用到服务器的方式分离,其配置定义格式属于领域特定语言(DSL),是针对特定领域(如服务器配置)量身定制的专用语言。
例如,定义用户账户的配置定义如下:
user "spock"
state active
gid "science"
home "/home/spock"
shell "/bin/sh"
使用定义文件的优势:
- 清晰易懂 :只包含用户账户的关键信息,不嵌入脚本逻辑,便于理解和发现错误。
- 逻辑分离与可复用 :大多数配置工具都有丰富的定义类型库,涵盖用户账户管理、软件包、文件和目录等。这些库适用于不同操作系统和版本,节省了团队编写标准逻辑的工作,且经过良好编写和测试。即使现有的定义类型不够,团队也可编写自定义定义和实现。
2. 声明式语言
多数服务器配置工具和基础设施自动化工具的DSL是声明式语言,而非过程式语言。
- 过程式语言 :代码是一系列按步骤执行的指令,多数脚本和编程语言(如Bash脚本、C++和Java)都属于此类。例如:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



