一、开源windows 的种类
Ansible、SaltStack、Puppet等都是目前比较受用户欢迎的自动化化运维工具,其中Ansible和SaltStack使用python 编写,具有良好的可移植性。Puppet的使用使用Ruby编写,脚本语法复杂,且可移植性比较差,目前的使用者慢慢变少。
Ansible、SaltStack、Puppet功能比较
| 名称 | Saltstack | Ansible | Puppet |
|---|---|---|---|
| 开发语言 | Python | Python | Ruby |
| windows支持 | 支持 | 支持 | 支持 |
| 学习成本 | State语法需要单独学习,相对容易 | playbook语法相对简单,容易学习 | 需学习Puppet的DSL或Ruby |
| 通信方式 | ZeroMQ进行通信 | SSH通信 | HTTP通信 |
| 加密方式 | AES加密(MQ本身不支持加密,需注意MITM攻击) | OpenSSH | 标准SSL协议 |
| 客户端 | 有 | 无 | 有 |
MITM攻击:中间人攻击,也称之为间接攻击,通过伪装成master主机和远程主机进行通信,从而进行攻击。
二、管理windows 方式对比:
2.1 Ansible管理windows 服务器环境要求
远程主机系统如为Windows需预先如下配置:
- Framework 版本大于3.0+
- 更改powershell策略为remotesigned
- PowerShell版本大于3.0+
- Windows远程管理(WinRM)启用以及配置
Ansible 服务端要求:
- Ansible 版本大于1.7
- Ansible 需要安装pywinrm 扩容(使用Python的 “winrm” 模块来和远程主机交互,插件安装比较麻烦)
ansible 服务器端通过调用Python的 “winrm“ 模块,和windows 的 WinRM通信,将命令通过powershell 进行执行。
2.2 Saltstack管理windows 服务器环境要求
只要客户端安装 Salt Minion 即可,根据系统版本X86 or X64 选择对应,软件包安装即可
salt master通过发布端口发送命令,salt minion接收到命令开始检索,目标minion找到执行module 和对应的方法,执行命令,将结果返回
2.3 Puppet管理windows 服务器环境要求
只要客户端安装 Puppet puagent 即可
在puppet里面叫做manifest,用户上传manifest程序,pupet master会对manifest程序进行编译,将编译后的信息发给Puppet client,client端通过master 获取的manifest完成 对服务器的配置,最后将结果返回给master
三、管理windows 优劣
| 名称 | 管理windows优势 | 管理windows劣势 |
|---|---|---|
| Saltstack | 安装 windows 客户端较为简单,无需太多额外配置,语法相应简单 | 需要在客户端安装agent,MQ本身不支持加密 |
| Ansible | ansible 的windows 模块的简单,可以使用win_powershell模块,可以有效减少dos 的学习 | 客户端预配置较多,管理端需要安装winrm(由于pip的问题,目前测试python 2不支持安装winrm) |
| Puppet | 安装 windows 客户端较为简单,无需太多额外配置 | 需要在客户端安装agent,需要额外学习Ruby,语法编写manifest,无法通过命令去下发配置 |
结论:Puppt 由于使用ruby 语法,且每次下发配置都需要通过编译manifest来完成,无法直接通过命令去下发配置,使用场景有局限性
ansible 和Saltstack模块都比较简单,并且都可以通过命令以及执行yaml文件去下发配置,使用目前技术团队使用最多两款批量管理工具,可以根据不同测重点去选择使用ansible 或者Saltstack


Comments | NOTHING