配置管理工具
配置管理工具(SCM,Software Configuration Management)可以将代码、软件方式实现的基础设施配置信息保存,也可以根据需求变化反复进行变更。
相关工具包括Ansible、Chef、Puppe、SaltStack等,版本管理工具有Git、Subversion等。
- 省时省力:通过自动化进行快速设置
- 声明式:通过配置信息对当前配置对象的具体状态进行明确描述
- 抽象化:配置信息能涵盖细微的环境差异
- 收敛性:不管对象的状态如何,最终都会达到期望的状态
- 幂等性:不管执行多少次,都能得到相同的结果
Ansible
Ansible是基于python语言开发的一种开源的自动化运维工具和平台,集合了众多运维工具的优点,实现了批量配置管理、批量应用部署和运行命令执行特定任务等功能。
Ansible基于SSH来和远程主机通讯,不需要在远程主机上安装client/agents。
Ansible只是提供一种框架,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块。主要包括:
- 连接插件connection plugins:负责和被监控端实现通信
- host inventory:指定操作的主机,是一个配置文件里面定义监控的主机
- 各种模块核心模块、command模块、自定义模块
- 借助于插件完成记录日志邮件等功能
- playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务
官网与教程
- HomePage:https://www.ansible.com/
- Ansible中文权威指南:http://ansible.com.cn/
- Ansible自动化运维教程:https://www.w3cschool.cn/automate_with_ansible/