自动化服务器管理工具指南
1. 优先使用定义而非脚本
通用脚本语言(如 Bash、Perl、Powershell、Ruby 和 Python)是基础设施团队工具包的重要组成部分。但像 Ansible、CFEngine、Chef 和 Puppet 这类专用工具也有其优势。这些工具旨在以可重复的方式简化和标准化多服务器配置问题,主要通过将服务器配置定义与执行及应用到服务器的方式分离来实现。
这些配置定义格式属于领域特定语言(DSL),与通用编程语言不同,它们是专门为特定领域(如服务器配置)定制的语言。
1.1 示例:定义用户账户
user "spock"
state active
gid "science"
home "/home/spock"
shell "/bin/sh"
上述示例定义了一个用户账户。配置工具会读取该定义,确保其在相关服务器上存在,并具有指定的属性。与编写显式创建用户账户的脚本相比,使用定义文件有以下优点:
- 清晰性 :定义只包含用户账户的关键信息,不嵌入脚本逻辑,更易理解和查找错误。
- 逻辑分离与可重用性 :大多数配置工具都有丰富的定义类型库,用于管理用户账户、软件包、文件和目录等。这些预构建的逻辑可节省团队编写标准逻辑的工作,且经过良好编写和测试。即使工具提供的现成定义类型不足,团队也可编写自定义定义和实现。
2. 声明式语言
大多数服务器配置工具的 DSL 以及其他基础设施自动化工具使用的是声明式语言,而非过程式语言。
超级会员免费看
订阅专栏 解锁全文
8746

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



