Upgrade to Pro — share decks privately, control downloads, hide ads and more …

加速你的Ansible

2d69bc96c87f26018ab9ca38005b61ee?s=47 Eric
April 28, 2018

 加速你的Ansible

2018/04/28@DevOps Taiwan Meetup
https://devops.kktix.cc/events/meetup13-0428

2d69bc96c87f26018ab9ca38005b61ee?s=128

Eric

April 28, 2018
Tweet

Transcript

  1. 加速你的Ansible 王仁宏 aka Eric 2018/04/28 @ DevOps Taiwan

  2. Hi , I’m Eric

  3. Ansible新手 (請大家鞭小力一點)

  4. Agenda 1. 故事起源 2. Ansible加速 3. Q&A

  5. 故事起源 1. Ansible新手上路第一個月 2. 剛推坑同事使用 3. 該次部署主機群數量約150台 4. 新增一個檔案、刪除一個檔案

  6. 同事說... 雖然比以前土炮部署舒服, 但Ansible執行速度好慢...

  7. http://i.imgur.com/CrMWH0h.jpg

  8. 於是開始思考,到底慢在哪裡。

  9. 收集執行時間數據 ansible-profile vim /etc/ansible/ansible.cfg callback_whitelist = profile_tasks :wq

  10. None
  11. 150台的佈署時間 (調整前) 1. gathering facts時間約530秒 2. 新增一個檔案時間約18秒 3. 刪除一個檔案時間約17秒

  12. 565 秒

  13. 幾個小調整 1. Disable gathering facts (視情況) 2. Fork Process (ansible-playbook

    -f n)
  14. 150台的佈署時間 (調整後-1) 1. gathering facts時間約530秒 -> 0秒 2. 新增一個檔案時間約18秒 ->

    11秒 3. 刪除一個檔案時間約17秒 -> 10秒
  15. 21 秒

  16. https://i.ytimg.com/vi/nYQyy7ZyOA8/hqdefault.jpg

  17. 沒有最快,只有更快。

  18. Ansible ssh + python

  19. 那就從ssh開始動手腳吧。

  20. SSH 連線再利用 1. SSH PIPELINING (視情況) 2. SSH Control Persist

  21. SSH PIPELINING vim /etc/ansible/ansible.cfg pipelining=True :wq

  22. SSH Control Persist OpenSSH 5.6 或更高 vim ~/.ssh/config Host *

    ControlPersist 1h Compression yes ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p :wq // 連線持久化保留1小時 // 啟用壓縮 // ssh連線共用 //socket保存路徑
  23. http://7.share.photo.xuite.net/leonchen01/176b299/8118575/320468842_m.jpg

  24. 150台的佈署時間 (調整後-2) 1. gathering facts 花費時間約0秒 2. 新增一個檔案的時間約11秒 -> 11秒

    3. 刪除一個檔案的時間約10秒 -> 4秒
  25. 15 秒

  26. 150台的佈署時間 (調整後-2) 1. gathering facts 花費時間約0秒 2. 新增一個檔案的時間約11秒 -> 4秒

    3. 刪除一個檔案的時間約4秒
  27. 8秒 以後部署不用一首歌的時間,8秒就足夠 XD

  28. 同事說... 這速度跑起來好爽阿...

  29. 總結 1. Ansible-profile 收集數據 2. Disable gathering facts (視情況) 3.

    Fork Process (ansible-playbook -f n) 4. SSH PIPELINING (視情況) 5. SSH Control Persist (OpenSSH 5.6 或更高)
  30. Thanks. ericwang8230 [at] gmail.com

  31. Q&A 歡迎大家回饋建議