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>