问题:

假如有A、B、C、D....等机器,机器A为Ansible服务器机器B、C、D...等为Ansible管理的节点服务器,A机器与其他机器都不在同一个网络,也就是A机器必须添加VPN之后才能与其他机器通信,我要上传文件夹到节点服务器;
 
普通的上传文件方法是用Ansible的copy模块把放在files里的文件上传上去,这个昨天部署的时候,4台并发,打包上传,用了42分钟,平时手动拷贝一下分把钟的事情,这样就让自动部署失去意义了
name: put the latest api to server
copy: src=api.tar.gz dest=/usr/local/tomcat/webapps/
 
传慢的原因分析:(我自己这么想的)
1:Ansible是通过VPN连接上去的,上传速度慢
2:Ansible文件上传本身速度就慢
 
解决办法:
我先手动上传到一台B机器,然后由B机器用scp的形式分发给C、D、E....等机器
 
解决过程遇到的问题:
也就是Ansible要把写好的scp拷贝脚本在B机器上执行,然后就动手干,先把文件夹手动上传到B机器的/home/lile目录下,先做单台测试:
---
 - hosts: B机器
   remote_user: lile
   sudo: yes
 
   tasks:
    - name: from B机器 put the api to other node
      shell: scp -r -P 34110 /home/lile/api lile@C机器:/home/lile/
 
这里执行的结果就是,一直卡着不动,然后在B机器上去查看ps -ef|grep scp 是可以看得到Ansible在B机器上执行scp脚本的一些东西,比如:
他卡在那里,那我就在B机器上自己手动执行这几条命令,看行不行,能不能执行成功,因为ansible的原理是把脚本拷贝在远程节点的tmp下,然后执行吗,既然他卡着了,肯定有问题,那我手动执行一下,问题就找到了,执行tmp的那个脚本的时候,提示要输入密码,那么怎么解决scp不需要密码呢,那就是把自己的公钥拷过去,也就是ssh-copy-id -i B机器的id_rsa.pub C机器,这样B机器拷贝东西过去就不用密码了,再来执行一遍这个yml,还是卡着,这又是为啥呢,我按照前面的办法,手动执行他传过来的脚本,是可以成功scp过去的,后来想了一想,因为ansible是用普通用户执行的,用了sudo,sudo加scp是必须得要输入密码的,那我怎么把sudo这个东西去掉呢,反过来看了一下yml,sudo用了yes,那么我把这一句去掉就可以了,但是其他的还是的要sudo才能行,就直能把这个拷贝的yml做一个单独的执行过程了。
 
 
最后的那个模型大概就是这样:
 
---
 - hosts: B机器
   remote_user: lile
 
   tasks:
    - name: from B机器 put the api to other node
      shell: scp -r -P 34110 /home/lile/api lile@{{ item }}:/home/lile/
      with_items:
         - C机器
         - D机器
         - E机器
         - F机器
         ......

 

解决ansible上传速度慢的问题的更多相关文章

  1. 关于主机FTP连接不上,无法列出目录,列表错误,上传速度慢,掉速的解决办法

    FTP是一种文件传输协议,它支持两种模式: 一种方式叫做Standard (也就是 Active,主动方式), 一种是 Passive (也就是PASV,被动方式). Standard模式 FTP的客 ...

  2. 【安富莱专题教程第6期】SEGGER的J-Scope波形上位机软件,RTT模式波形上传速度可狂飙到500KB/S左右

    说明:1.在实际项目中,很多时候,我们需要将传感器或者ADC的数值以波形的形式显示.通常的解决办法是用串口上位机,USB接口上位机或者MDK的逻辑分析仪功能,使用这三种方式都比较繁琐.本期专题为大家讲 ...

  3. 解决phpmyadmin上传文件大小限制的配置方法

    解决phpmyadmin上传文件大小限制的配置方法 phpmyadmin导入SQL文件时涉及到phpmyadmin上传文件大小限制问题,默认phpmyadmin上传文件大小为2M,如果想要phpmya ...

  4. 解决nginx上传模块nginx_upload_module传递GET参数

    解决nginx上传模块nginx_upload_module传递GET参数的方法总结 最近用户反映我们的系统只能上传50M大小的文件, 希望能够支持上传更大的文件. 很显然PHP无法轻易实现大文件上传 ...

  5. 解决phpmyadmin上传文件大小限制的配置方法(转)

    phpmyadmin导入SQL文件时涉及到phpmyadmin上传文件大小限制问题,默认phpmyadmin上传文件大小为2M,如果想要 phpmyadmin上传超过2M大文件,就需要修改phpmya ...

  6. 我是如何让minio client上传速度提高几十倍的

    minio java client 使用okhttp作为底层的http实现,在产品包里面局域网上传文件的速度一直只有400~800KB/s,经过一天排查发现是-Djava.compile=none禁用 ...

  7. js 文件异步上传 显示进度条 显示上传速度 预览文件

    通常文件异步提交有几个关键 1.支持拖拽放入文件.2.限制文件格式.3.预览图片文件.4.上传进度,速度等,上传途中取消上传.5.数据与文件同时上传 现在开始笔记: 需要一个最基础的元素<inp ...

  8. 解决wordpress上传文件出现http错误问题

    解决wordpress上传文件出现http错误问题 问题现象 今天上传约1.4m大小的gif文件到wordpress的媒体库时失败,提示http错误. 原因 由于之前一直上传图片都是可以的,所以推测最 ...

  9. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

随机推荐

  1. selenium+Java使用内容记录(全)

    1.模拟键盘操作,使用enter键 2.等待几秒 3.浏览器最大化 4.获取cookie,删除cookie 5.模拟鼠标 6.selenium+java 识别验证码(数字+字母组合) 7.seleni ...

  2. 缺陷管理工具Jira安装参考

      1安装简介 1.1方案/流程简介 需要依赖安装数据库,可以是mysql,orace或sqlserver.以mysql为例说明. 各模块各阶段安装任务说明如下: 安装模块 说明 jira 项目与事务 ...

  3. LeetCode--018--四数之和(java)

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  4. 前端布局神器display:flex

    2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持.   flex浏览器支持 一.Flex布局是什么? Flex是Flexi ...

  5. EL函数库及用法

    导入标签库: <%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%&g ...

  6. Codeforces Round #349 (Div. 1)E. Forensic Examination

    题意:给一个初始串s,和m个模式串,q次查询每次问你第l到第r个模式串中包含\(s_l-s_r\)子串的最大数量是多少 题解:把初始串和模式串用分隔符间隔然后建sam,我们需要找到在sam中表示\(s ...

  7. noip模拟ernd

    [题目背景]解决了第一题之后,你打开了第二题.这是一道关于树的题目,你很快想出了一个复杂度和树的直径有关的算法,可以通过所有的数据.不过,你的做法常数似乎有点大.为了更好地卡常,你决定构造一些数据来检 ...

  8. python --常用内置模块01

    1.简单了解模块         模块就是我们把装有特定功能的代码进行归类的解构,从代码编写的单位来看我们的程序 从小到大的顺序:一条代码< 语句块<代码块(函数,类) < 模块 我 ...

  9. webstorm crack

    webstorm 2018.2注册码如下:{"licenseId":"ThisCrackLicenseId","licenseeName": ...

  10. 数据分析---SQL(Access数据库)

    1. SQL(Structure Quest Language) 一种结构化查询语言,它是一种通用的关系型数据库操作语言,用于存取数据,查询,更新和管理数据库. 2. 基本语句 Select, Cre ...