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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

saltstack与ansible对比

發布時間:2024/2/28 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 saltstack与ansible对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SaltstackAnsible
SaltStack 依靠ZeroMQ速度快Ansible SSH傳輸速度慢一些
ZeroMQ本身不加密,AES加密,需注意MITM攻擊SSH安全性高
Master需要守護進程無額外開支,SSH即可
State語法需要學習playbook語法相對簡單,容易學習
excution模塊+state模塊,state會調用excution模塊Ansible模塊+playbook
使用topfile?top.sls?使用YAMLplaybook使用YAML
圍繞Master輸入命令,首次連接使用加密key,使用ZeroMQ庫不會擁堵,持續連接速度更快使用SSH通道,無固定Master,更安全,也有MQ版本
未提及配置記錄文件,原始vs生產
默認本地root,客戶端root支持多用戶sudo操作
密碼容易保管,命令容易審計SSH,公鑰連接
配置模塊化,學習成本更高克隆Ansible Git,語法簡單

Ansible vs SaltStack 誰才是自動化運維好幫手?

1.概述

互聯網技術的發展,機房里面機器的數量隨之增加,運維的難度和復雜度也在增加,需要投入的運維人員和成本也在增加,從而催生了一系列的自動化運維工具(Ansible、SaltStack、Puppet)的產生來減少運維的成本。
Ansible、SaltStack、Puppet都是目前比較受用戶歡迎的自動化化運維工具,其中Ansible和SaltStack使用python 編寫,具有良好的可移植性。Puppet的使用腳本語法復雜,且可移植性比較差,目前的使用者慢慢變少。本文將對Ansible、SaltStack進行 詳細的比較。

2.Ansible和SaltStack的比較和選型

Ansible和SaltStack都是的目前最流行的自動化運維工具,能滿足企業IT系統的自動化運維管理。這兩個工具都是用python開發 的,可以部署到不同的系統環境中和具有良好的二次開發特性。在執行的命令的時候,Ansible和SaltStack都支持Ad-hoc操作模式,也可以 支持將命令寫入yaml格式文件中再批量執行。在處理返回結果方面,Ansible和SaltStack的返回結果格式都是JSON格式,比較易懂和方便 解析。本文主要從響應速度、安全、自身運維、使用語法等方面對Ansible和SaltStack的不同點進行分析:
1.響應速度
SaltStack的master和minion主機是通過ZeroMQ傳輸數據,而Ansible是通過標準SSH進行數據傳輸,SaltStack的 響應速度要比Ansible快很多。標準SSH連接的時候比較耗費時間,ZeroMQ傳輸的速度會快很多,所以單單從響應速度方面考慮SaltStack 會是更好的選擇。但是在一般的運維場景下Ansible的響應速度也可以滿足需求。

在表格1 Ansible和SaltStack性能測試中,測試了Ansible和SaltStack在執行命令、分發文件、讀取文件和批量腳本執行等自動化運維場景下的性能,由耗時數據可以看出Ansible的響應速度比SaltStack要慢10倍左右。
2.安全
Ansible和SaltStack都需要和遠程主機進行連接,它們的最大的安全問題就是MITM攻擊,通過偽裝成Master主機和遠程主機進行通信,從而進行攻擊。
SaltStack使用ZeroMQ進行數據傳輸,ZeroMQ本身數據傳輸不支持加密,SaltStack可以通過使用AES數據加密方法來對數據進行加密傳輸,但是SaltStack的minion主機以守護進程的方式運行在遠端暴露了很多容易被攻擊的點。
Ansible使用標準SSH連接傳輸數據,不需要在遠程主機上啟動守護進程,并且標準SSH數據傳輸本身就是加密傳輸,這樣遠程主機不容易被攻擊。也不是說Ansible就可以完全避免被攻擊,Ansible使用paramiko庫進行SSH連接,paramiko是一個有很不錯記錄SSH連接的 python庫。Ansible可以通過配置StrictHostKeyChecking參數,使得遠程主機上的keys和之前連接不一樣的時候 Ansible沒有及時感知和提醒用戶。但是Ansible可以通過修改配置文件和配置一個合適的known_hosts文件來解決這個問題,因此 Ansible在安全方面還是比SaltStack做的好。
3.自身運維
SaltStack需要在Master和Minion主機啟動守護進程,自身需要檢測守護進程的運行狀態,增加運維成本。Ansible和遠端主機之間的 通信是通過標準SSH進行,遠程主機上只需要運行SSH進程就可以進行運維操作,SSH是機房主機中一般都安裝和啟動的進程,所以在Ansible進行運 維的時候只需要關注Ansible主機的運行狀態。Ansible對機房運維不會增加過多的運維成本。從工具本身的運維角度來說,Ansible要比 SaltStack簡單很多。
4.使用語法
Ansible的Playbook語法要比SaltStack的State語法具有更好的可讀性。在使用的過程中發現Ansible在實現loop的更加的簡潔,也可以使用相對路徑。舉例說明,SaltStack在備份文件A.txt和B.txt的State語法為:

?
  • # back up A.txt and B.txt

  • {% for remote_target %}

  • /backup/{{ filename}}:

  • file.managed:

  • ‐ source: salt://remote-host/{{ filename }}

  • ‐ require:

  • ‐ cmd: A.txt

  • ‐ cmd: B.txt

  • {% endfor %}

  • ?

    Ansible的Playbook語法實現同樣的功能如下:

    ?
  • -name: back up A.txt and B.txt

  • copy: src ={{item}}

  • Dest=/backup/{{item}}

  • with_items:

  • - A.txt

  • - B.txt

  • ?

    同樣Ansible的Notify模塊和Handler模塊實現的功能和SaltStack的watch和module.wait的模塊實現功能也類似,也比SaltStack要簡潔明了。
    總之,Ansible的安全性能比SaltStack好,自身運維簡單,使用語法可讀性更強,雖然在響應速度方面不如SaltStack,但是在大部分應用場景下Ansible的響應速度能滿足需求。因此,在金融行業的自動化運維系統,Ansible工具是最好的選擇。

    3.微服務化架構設計

    自動化運維系統的主要運維操作場景有腳本執行、文件的上傳下載、啟動項管理、用戶密碼修改、系統軟件包管理、定時任務管理等,在云計算的機房里面需 要管理1000余臺主機,而Ansible執行任務最高并發數約200個,所以系統中需要部署多個Ansible工具來滿足系統的應用需求。運維操作需要 經歷連接主機,執行并返回結果的過程,這個過程需要異步執行且實時返回執行結果。

    圖1 展示的是自動化運維平臺總體設計,便于自動化運維系統管理大規模主機、實時反饋運維結果的一套系統。
    自動化運維平臺:自動化運維平臺包含有CMDB、圖形化界面、權限管理等核心功能,后端采用REST API調用Worker模塊和監聽執行結果。
    服務注冊中心:服務注冊中心提供服務的注冊和服務發現的功能,在開源界有Etcd、Consul、Apache Zookeeper、Eureka等組件來實現服務注冊中心的功能。Worker模塊向網關以IP地址和端口的方式注冊到服務注冊中心中,自動化運維平臺 發現Worker后調度選擇Worker執行運維操作。

    • Etcd:一個高可用,分布式,一致的key-value存儲,用來共享配置和服務發現。Kubernetes和Cloudfoundry都使用了etcd。
    • Consul:一個發現和配置服務的工具。客戶端可以利用它提供的API,注冊和發現服務。Consul可以執行監控檢測來實現服務的高可用
    • Apache Zookeeper:一個常用的,為分布式應用設計的高可用協調服務,最開始Zookeeper是Hadoop的子項目,現在已經成為頂級項目了。
    • Eureka: 是一個基于 REST 的服務,它主要是用于定位服務,以實現服務注冊和服務發現功能,本身具有服務健康檢測的功能。
      Worker集群:Worker模塊的核心是Ansible,Worker模塊啟動的時候使用IP地址和端口向服務注冊中心注冊一個地址,自動化運維平臺 會主動發現Worker模塊。圖2 Worker模塊設計,Ansible本身沒有提供REST API,通過使用Flask將Ansible API封裝給自動化運維平臺調用,在啟動REST API的時候將IP地址和端口注冊到服務注冊中心中。運維操作請求到達REST API后,發送給異步調度celery模塊,celery后端對接的是消息中心,實現任務的異步分布式調度。Ansible拿到執行任務,連接遠程主機執 行運維操作,然后將執行結果發送消息中心。這個自動化運維平臺實時監聽消息中心每臺主機的執行結果,達到遠程主機上的運維操作結果能實時的反饋到自動化運 維平臺中。

      消息中心:消息中心采用的是消息隊列,開源消息隊列中間件有RabbitMQ、ActiveMQ、kafka。采用消息隊列的好處就是能實時的返回執行結果。

    4.總結

    在金融領域中,安全是最重要的考慮因素,在眾多自動化運維工具種,Ansible的安全性能最好,是目前最適合金融領域的自動化運維工具。本文通過將Ansible微服務化,集成到自動化運維平臺中,實現自動化運維平臺高并發執行運維操作場景和實時收集執行結果。

    5.參考

    1.http://jensrantil.github.io/salt-vs-ansible.html
    2.http://www.tuicool.com/articles/3UjQNn

    總結

    以上是生活随笔為你收集整理的saltstack与ansible对比的全部內容,希望文章能夠幫你解決所遇到的問題。

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