ansible是基于Python的 自动化部署 方案,但是目前只是通过命令行
ansible -i hosts all -a 'uptime' # or ansible-playbook -i hosts playbook.yml -e 'args' -t deploy
实现自动化部署.
长此以往,虽然可以实现所谓的自动化,但产品业务线多且杂的情况下,项目很难维护,更不用说以文件为存储的表现形式很差,针对目前使用ansible的经验以及使用中的困难,可以针对性的提出一些解决方案
加速
问题
自动化部署其中最大的障碍就是 网络 的原因
其中需要通过网络上传一些模板文件,有的甚至还需要上传一些压缩包,虽然说几MB的东西很快就能上传成功,但如果把这上传文件所需要的2秒乘以上百,上千台主机呢,更不用说ansible的表现形式就是一个任务一个任务的往下执行,假如在上传模板这一步卡住(等待所有服务器上传成功),这时某台未模板化的服务器的某服务需要重启,是不是会出问题呢
方案
针对这一问题,目前想到的解决方案如下:
- 适当增加fork数
目前fork数默认为50,可以适当增加
- 大文件使用内网(外网)下载
从部署机上上传文件可能会出现这样那样的问题,尤其是上传到国外服务器时经常会出现ansible playbook的任务卡住问题 …