成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過Chef實現Windows集群的自動化配置和管理

系統 Windows 系統運維 自動化
談起集群管理,大家似乎默認的都是對Linux系統集群的管理,對于Windows集群則很少涉及。但對Windows集群的管理問題無法回避,因為在企業中Windows集群的確存在。微軟也在致力改善這些問題,比如Window PowerShell就是為了解決校本化的問題。本文介紹如何通過Chef實現對這樣集群的自動化配置和管理。

  [[149278]]

但凡服務器上了一定規模(百臺以上),普通的ssh登錄管理的模式就越來越舉步維艱。試想Linux發布了一個高危漏洞的補丁,你要把手下成百上千臺機器都更新該補丁,如果沒有一種自動化方式,那么至少要耗上大半天時間。雖然你編寫了大量的shell(或python,perl)腳本來實現各種自動化場景,但最后會發現你又陷入了腳本的汪洋大海之中,管理和維護這么多的腳本的成本也不小。你需要一款基礎設施自動化工具,希望它能具有以下功能:

  1.批量執行

這個不多說了吧!試想要為每一臺機器打補丁的情形吧!

  2.任務編排

現在稍微復雜點的應用都需要N臺服務器來部署,而部署的過程中肯定有個先后的依賴順序。那么由此看來任務編排肯定必不可少。

  3.對業務場景的抽象,也就是DSL化

之所以拋棄自己用shell(或其它語言的)腳本來實現各種自動化的原因之一就是這些腳本很難懂,除了你以外其他人幾乎無法修改。而作為一個成熟的工具,自然對咱們復雜的應用場景要做抽象,比如對服務器節點、角色的抽象,對服務器上的各種安裝、配置操作的抽象,對不同環境的抽象等。通過抽象出來的DSL,大家很容易達成一致,協同工作。

  4.安全機制

既然是基礎設施自動化工具,免不了包含各種敏感信息,如何去敏也是挺重要的。而且既然能控制整個服務器集群,控制方式也要絕對安全。

  除了這幾個基本功能以外,當然我們還希望有更多功能,比如腳本重用、審計功能、完善的文檔等。這里就不多說了。

  類似的工具肯定已經有了,現在市場上比較流行的開源軟件有Puppet、Chef、Ansible、SaltStack等。關于它們的優劣不是這篇文章的重點。

  而談起集群管理,大家似乎默認的都是對Linux系統集群的管理,對于Windows集群則很少涉及。我想這大抵有兩方面的原因,一方面是大部分公司中機器集群類型大都是Linux系統,另一方面是Windows機器在批量化管理方面天然有缺陷,比如缺乏各種方便的腳本命令、很難對機器配置完全腳本化等。但對Windows集群的管理問題無法回避,因為在企業中Windows集群的確存在。微軟也在致力改善這些問題,比如Window PowerShell就是為了解決校本化的問題。

  而筆者的上一個項目就涉及對數百臺Windows和Linux集群的管理。Windows集群的主要操作系統是Windows Server 2008,Linux集群的主要操作系統是Ubuntu 12.04。要實現對這樣的集群的自動化配置和管理,筆者積累了一些經驗,特意分享給大家。

  一、自動化工具的選型

  凡是牽扯到工具選型的時候,如果你發現你處于一個非常糾結的地位,那可能是因為競品工具沒有一個能突出重圍,導致你在它們各自的優缺點之間難以取舍。我也理解,工具選型要考慮的因素太多。這個項目的選型其實沒經過太大波折,很快就決定使用Chef。原因我可以簡單說一下,Puppet的API太不友好,ansible和salt對windows的支持程度未知,而根據我以前的經驗,Chef對windows的支持還是比較成熟的。所以我們就快刀斬亂麻選擇了Chef。

  二、搭建Chef生態環境

  既然決定了Chef,那么接下來很多問題都不得不考慮。

  1.使用自建的Chef Server

  原因很簡單,因為客戶不會把自己的node暴露在公共的chef server之上。所以,我們在企業內網搭建了一個Chef server,放置在一臺ubuntu機器上。

  2.workstation選擇windows機器(windows 7)

  考慮到我們要同時管理Linux集群和Windows集群,所以workstation的選擇也很重要。在bootstrap一個node的時候,workstation和linux node的通訊方式是ssh,而和windows node的通訊方式是通過WinRM。如果使用Linux通過WinRM和Windows系統通訊,理論上是可行的,我們可以借助一些第三方工具實現,但過程肯定比較曲折。而如果使用Windows機器和Linux及Windows系統通訊,則沒有太大問題。

  3.搭建自己的軟件倉庫

  對于Linux系統而言,有很多成熟的包管理工具,想要安裝什么軟件基本上一條命令即可。而對于Windows系統而言,雖然有chocolatey之類的工具,但在分發一些企業內部的軟件方面仍捉襟見肘。所以,我們選擇搭建自己的軟件倉庫。剛開始為了簡便起見就搭建了一個ftp服務器作為軟件倉庫。后期會考慮遷移到Sonatype Nexus之類能提供更多功能的包管理服務器上去。

  創建Chef repo并納入源代碼管理之類的事情由于沒有太多特殊性,所以這里就不展開了。

  二、應用Chef管理windows集群

  使用Chef來管理windows集群肯定沒有像管理Linux集群那么容易,以下是幾個需要注意的點。

  1.配置Windows node開啟WinRM服務

  WinRM服務是微軟提供的用于進行遠程通訊的服務(Windows 7及以后的系統內置支持),你可以簡單理解為Windows版的SSH。在Windows server 2008 R2操作系統中,WinRM服務默認是關閉的,我們需要啟用它。首先需要修改兩個組策略。在組策略的計算機配置->策略->Windows組件->Windows遠程管理(WinRM)->WinRM服務中,選擇“允許自動配置監聽器”,把該策略選為啟用,并修改IPv4和 IPv6過濾器為*。然后在控制面板中選擇Windows防火墻,單擊例外選項卡,選擇Windows遠程管理復選框。如果看不到該復選框,請單擊添加程序以添加 Windows 遠程管理。 (具體請參見http://www.briantist.com/how-to/powershell-remoting-group-policy/)

  這兩項的配置也可以通過PowerShell腳本來實現。想要了解的可以參見這篇文章https://powertoe.wordpress.com /2011/05/16/enable-winrm-with-group-policy-but-use-powershell-to-create- the-policy/。

  然后就可以啟用和配置WinRM了。只需要在PowerShell終端輸入winrm quickconfig -q即可。另外Chef還推薦對WinRM進行一些進階配置,具體請參見https://github.com/Chef/knife- windows#requirementssetup。

  2.使用windows cookbook

  windows cookbook是Chef專為windows平臺寫的cookbook。里面包含了非常多的針對windows平臺特性的功能,是操縱windows平臺不可或缺的利器。比如解壓縮文件、執行batch(PowerShell)命令、安裝認證、安裝卸載windows包、配置執行計劃任務……

  使用方式也很簡單,安裝可以通過chef的supermarket執行,具體參見https://supermarket.chef.io /cookbooks/windows#knife。如果在其它cookbook需要使用該cookbook的模塊,只需在其它cookbook的metadata.rb中加入depends ‘windows’即可。

  3.升級Windows node上的PowerShell版本

  PowerShell之于Windows就相當于shell之于Linux。Windows Server 2008 R2上的PowerShell默認版本是3.0,最好能夠升級到高級版本。而https://github.com/opscode-cookbooks /powershell中的cookbook則可以方便的對Windows node的PowerShell進行升級和配置,以及安裝各種PowerShell module,執行PowerShell腳本等。

  4.實現對軟件的靜默安裝

  Linux上的每種軟件基本都有通過命令行靜默安裝的方式。而Windows下的軟件卻不盡然。如果軟件是以.msi方式打包的,那么可以使用Windows Installer來實現靜默安裝。如果是以.exe的方式來打包的,倒也不必驚慌,可以仔細分析其是否是以inno、NSIS、 installshield等方式打包的,然后根據各自方式的靜默方式實現自動化安裝。如果以上皆不適用,則可以分析該軟件是否為綠色軟件,嘗試把安裝后的整個文件夾打包放置于軟件倉庫之上,以后安裝只需要解壓縮即可。如果軟件既沒有規范的打包方式,也不是綠色軟件,那么就比較麻煩了,需要分析安裝后創建了那些文件,以及執行了那些腳本,然后嘗試把這些操作命令行化(不過這樣的軟件非常少,不必過于擔心)。

  5.使用push jobs功能

  通常我們需要對節點進行批量化操作,而通過chef-client的方式功能有限。chef提供了push jobs這樣的擴展功能,允許我們對節點進行隨心所欲的批量操作。詳情請參見https://docs.chef.io/push_jobs.html。

  6.熟練使用PowerShell腳本

  之前我說過,PowerShell在Windows上的地位就如同Shell在Linux上的地位。Windows PowerShell提供了對COM組建和WMI組件的完全訪問,而且可以輕松調用.net framework框架中的功能,而且也包含強大的文檔。如果你想配置一個DHCP服務器,或者配置一個IIS網站服務,抑或修改注冊表,使用PowerShell能輕松讓你達到目標,徹底擺脫圖形化界面。

  總體來說,Chef對于Windows平臺的支持力度還是相當完善的,如果你想實現對Windows集群的自動化管理,那么Chef不失為一種可行的方案。至于其它幾種自動化工具,筆者有時間也會進行深入調研,再出具報告。

責任編輯:火鳳凰 來源: 運維幫
相關推薦

2015-12-30 14:50:45

Kubernetes容器技術Docker

2025-01-02 08:00:39

2021-11-10 09:00:00

工具Chef開發

2015-11-04 10:22:23

Chef自動化應用棧

2021-11-29 18:11:33

自動化現代化網絡優化

2015-10-21 15:08:25

電纜自動化

2020-01-16 09:00:00

AI人工智能ML

2019-04-17 07:59:09

Puppet自動化集群管理

2022-01-20 16:35:35

補丁漏洞網絡安全

2024-06-11 10:41:14

2011-02-28 13:36:31

自動化管理VMControl

2013-08-30 14:30:59

系統自動化自動化配置SaltStack

2013-10-25 09:18:56

StarCluster服務器集群管理自動化Amazon云

2016-08-24 13:23:05

FabricSSHLinux

2011-05-10 14:35:07

TivoliIT服務管理整合

2010-12-06 09:59:58

2015-06-26 15:12:20

2025-02-06 14:59:08

2022-06-04 15:02:56

數字化轉型超自動化工具

2013-03-22 15:15:28

自動化管理部署虛擬化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国产一区二区三区四区 | 久久噜噜噜精品国产亚洲综合 | 国产伦精品一区二区三区照片91 | 天天干天天爽 | 亚洲成人一区 | 在线视频亚洲 | 亚洲高清视频在线观看 | 国产成人小视频 | 国内精品久久久久久久影视简单 | 黄网站在线播放 | 日韩在线不卡视频 | 日本福利视频免费观看 | 伊人天堂网 | 中文在线一区二区 | 涩涩视频网 | 免费观看一级毛片 | 国产69久久精品成人看动漫 | 九色av | 日本韩国电影免费观看 | av一级久久| 亚洲国产第一页 | 午夜欧美| 久在线视频 | 久久精品中文字幕 | 老司机久久| 亚洲一区二区三区久久 | 亚洲高清电影 | 日韩中文字幕在线观看 | 欧美性受xxxx白人性爽 | 久久久免费观看视频 | 6080亚洲精品一区二区 | 天天久久 | 国产伦一区二区三区视频 | 久久精品国产久精国产 | 欧美视频一区二区三区 | 91国产在线视频在线 | 日本亚洲欧美 | 国产精品视频一二三区 | 99视频网站 | 亚洲一区二区精品视频 | 久久久久久久久久久久久久国产 |