日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

解决ansible上传速度慢的问题

發布時間:2023/12/13 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 解决ansible上传速度慢的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:

假如有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上传速度慢的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。