ansible介绍和服务器管理思考
MarBeltran
8年前
<p>旧的服务器管理,基本上就是用ssh登录到服务器上面,进行一些操作。需要做的事情一般是:定期安全更新,新版本发布,新应用安装等。 这样有很多缺点:人工操作引发错误,服务器状态无法跟踪,人工操作繁琐耗时等。</p> <p>我觉得好的服务器管理方式应该是这样的:</p> <ul> <li>能够定义服务器的功能,通过写程序或者配置的方式说明服务器到底是怎么样的</li> <li>通过这个定义,自动化地配置服务器</li> <li>可以手动或者自动修改定义,更新整体的架构</li> <li>整个过程不要引入太多的复杂度,更好地反映服务器管理的本质</li> </ul> <p>以前我学习了一段时间的chef,整体架构偏复杂了。因为是server/agent架构,服务器上面要跑一个chef的监控程序, 这样对于大规模的服务器来说是性能更好,但是对于大多数小公司来说,没有agent的模式就足够用了。执行速度上也偏慢。</p> <p>现在重新学习了解了ansible,觉得在复杂度和易用性上面平衡得很好。主要有几点:</p> <ul> <li>和host服务器的通讯采用ssh的方式,host不需要安装额外的软件,除了python-simplejson</li> <li>module插件是传输一个python文件到host执行,参数命令行传入,简洁快速</li> <li>整体架构上面尽量减少了复杂度,概念上只有playbook – role – module,我觉得足够满足抽象了</li> </ul> <p>用ansible这种服务器配置管理工具,我可以做到以下事情:</p> <ul> <li>设置KX上网/下载服务器,需要的时候可以快速创建</li> <li>定义公司的服务器架构,进行归一化配置,自动更新</li> <li>遇到性能瓶颈或者需要更新服务器的时候,快速创建应用服务器</li> </ul> <p>以后小规模的服务器管理,就变得很简单了。</p> <p> </p> <p>来自:http://blog.linjunhalida.com/blog/ansible/</p> <p> </p>