發表於2024-11-07
一綫資深運維工程師力作,簡單快速地學習SaltStack
SaltStack(簡稱Salt)是由Thomas Hatch 於2011 年創建的一個開源項目,初衷隻是想構建一個快速的遠程執行係統。後來經過快速發展和新功能的不斷加入,演變成瞭現在的Salt,如今Salt 已經成為瞭一套強大的自動化運維管理平颱。
《SaltStack運維實戰》力求用簡潔易懂的方式給讀者展示Salt 的核心功能和使用思想,係統地介紹Salt 的主要功能,從安裝和基本的遠程執行開始,循序漸進地講解Salt 的方方麵麵,涉及Salt 的模塊代碼編寫、狀態係統編寫、架構擴展和Salt 的高級應用等主題。《SaltStack運維實戰》中實例豐富,希望讀者可以通過本書掌握Salt 的本質和思想,在自己的工作中應用Salt 來提高運維效率。
《SaltStack運維實戰》適閤運維人員以及任何和服務器相關的工作人員閱讀,包括研發人員或業餘愛好者都可以通過本書掌握如何簡單快速地管理服務器,完成服務器集群基礎架構的建設。
劉英傑,男,運維工程師,一直工作在運維一綫,曾經在新浪手機微博做運維,現在在騰訊做運維工程師,熟悉各種自動化運維軟件,具有豐富的一綫運維經驗。
隨著互聯網的不斷深入發展,很多公司的服務器也在不斷增長,自動化運維技術的提升自然成為大傢非常關注話題,Salt就是其中的一個明星開源項目。《SaltStack運維實戰》對於希望瞭解Salt的同學來說,是一本非常不錯的參考書。
本書深入淺齣地介紹瞭Salt係統的技術細節以及使用過程中的實戰經驗,對於初學者和專業技術人員而言都有很大的幫助。
zedanli(李震東)
騰訊OMG運維技術中心副總監
“乾乾淨淨,快速部署”,是互聯網運維的一項準則,本書介紹瞭SaltStack在這個準則上的實現方式和技術細節。
更為難得的是,本書是作者基於國內大型互聯網公司海量服務器運維工作經驗的一個提煉。對於初創的互聯網公司和初入互聯網運維行業的同學來說,閱讀本書是一個快速成長的捷徑。
shawnding(丁曉坤)
騰訊移動媒體運維組組長
作者的做事勤奮一直讓我非常欽佩,在自己的個人閑暇時間,能通過寫書為更多有誌於從事互聯網的同學開啓一盞明燈,並且結閤瞭自己多年的工作經驗,這種實踐是無數個日日夜夜對內心的孤獨執守,更是自己對運維思想、技術的永不滿足,體現瞭精益求精的品質,非常值得大傢一讀。
alanshao(邵宗文)
騰訊網運維組組長
第1章 開始使用Salt
1.1 Salt部署的基本架構
1.2 安裝Salt
1.2.1 軟件包安裝方式
1.2.2 腳本安裝方式
1.2.3 源碼方式安裝
1.2.4 其他發行版Linux係統安裝Salt
1.3 配置Salt
1.3.1 Salt minion配置
1.3.2 啓動Salt master和Salt minion
1.3.3 在master上接受 minion 秘鑰
1.4 第一條命令測試
本章小結
第2章 通過Salt遠程執行管理minion
2.1 Salt遠程執行命令的組成結構
2.1.1 命令行選項
2.1.2 目標定位字符串
2.2 遠程執行模塊和函數
本章小結
第3章 編寫自己的模塊代碼
3.1 理解Salt遠程執行的底層原理
3.2 執行模塊的構成結構
3.3 編寫自己的執行模塊函數
3.4 交叉調用Salt自帶的模塊函數
3.5 實戰編寫一個完整模塊
本章小結
第4章 通過state模塊定義主機狀態
4.1 狀態的概念以及如何撰寫第一條狀態
4.2 狀態配置文件的各個要素
4.3 常用的狀態模塊用法
4.4 使用requisites對狀態進行排序控製
4.5 通過state模塊部署LAMP環境
本章小結
第5章 通過Jinja2模闆以及Grain和Pillar擴展主機狀態
5.1 Jinja2模闆語言的基礎
5.2 Grain和Pillar的概念及設置
5.3 用Jinja2配閤Grain和Pillar擴展SLS配置文件
5.4 用Jinja2配閤Grain和Pillar動態下發配置文件
本章小結
第6章 用highstate復閤主機狀態
6.1 highstate組織多個狀態配置
6.2 用top.sls文件管理狀態文件
6.3 狀態文件的拆分和復用
6.4 多環境的配置和管理
6.5 實戰案例:keepalived+Redis高可用架構
6.6 實戰案例:MooseFS分布式文件係統部署
本章小結
第7章 SaltStack配置文件
7.1 Salt master配置詳解
7.2 Salt minion配置詳解
7.3 SaltStack參數優化
本章小結
第8章 SaltStack架構擴展
8.1 Salt的多master高可用架構
8.2 syndic方式擴展Salt的管理架構
8.3 Salt的無master模式
本章小結
第9章 SaltStack高級話題
9.1 Salt job管理
9.2 Salt runners係統
9.3 Event係統和Reactor係統
9.4 Salt API係統
本章小結
前 言
為什麼要寫本書
係統管理員和運維人員日常會進行大量的重復性操作,諸如安裝軟件、修改配置文件、創建用戶、批量執行命令等。如果主機數量龐大,單靠人工來維護,單調冗繁的任務實在讓人難以忍受。早期的運維人員會根據自己的生産環境寫特定腳本來輔助完成這些大量重復性的工作。但是這些腳本不但復雜,難於維護,更為重要的是不可移植。總體上講,係統管理員麵臨的問題主要分為兩大類:一是係統狀態維護(配置管理),二是遠程執行命令。為瞭解決這些問題,誕生瞭很多開源軟件,係統狀態維護方麵有Puppet、Chef、CFEngine、Ansible、SaltStack等,這些軟件擅長維護係統狀態,可根據定義使相應的主機達到某種狀態。維護主機的整個生命周期,實現從係統安裝初始化到下綫整個過程的管理和控製。在遠程命令執行方麵的軟件則有pssh、Fabric、Func、Rundeck、Ansible、SaltStack等,它們可以方便地對大量主機進行批量的命令執行操作。無論采用哪款軟件,係統管理員所麵臨的問題都是一樣的,即如何在多變復雜的環境中完成靈活的配置管理和命令執行。這就需要所用的軟件本身足夠強大,而且具備很好的可擴展性。SaltStack在這方麵錶現得十分齣色,SaltStack(簡稱Salt)是由Thomas Hatch於2011年創建的一個開源項目。初衷隻是想構建一個快速的遠程執行係統。後來隨著各種新功能的不斷加入,演變成瞭現在的Salt。如今Salt已成為世界上最流行的開源項目之一,同時也是最流行的基礎架構管理平颱之一。
Salt靈活性強,既可進行大規模部署,也能進行小規模的係統部署。Salt 的設計架構適應於任意數量的服務器,從少量本地網絡係統到跨越數個不同的數據中心,拓撲結構都是簡單的服務器/客戶端模型,配置簡單,默認的配置幾乎無須更改,隻需要微調即可滿足特定需求。不管你有幾颱、幾百颱甚至幾韆颱服務器,都可以使用Salt在一個中心節點上對它們進行管控。使用Salt可以靈活定位任意服務器子集來運行命令或完成任務。也可以使用狀態係統來定義被管理服務器需要達到的狀態,並且隻需要一條命令就可以在很短的時間內讓對應的服務器變成你所定義的角色。由於Salt是用Python編寫的,允許用戶通過Python語言自定義功能模塊,同時也為用戶提供瞭大量的Python API接口,所以用戶可以根據自己的需要進行簡單快速的擴展。
本書希望以一種簡潔的方式引導讀者掌握Salt的核心功能和理念。學完之後,相信您會對簡潔強大的Salt愛不釋手!
一些建議
如果讀者之前沒有接觸過配置管理類的軟件,習慣瞭用腳本編譯部署服務器環境,需要轉變一下管理服務器的理念,不要再用編譯源碼包的方式部署服務器,請習慣用描述式的語言來部署服務器環境,配閤自建的yum倉庫把需要編譯的軟件製作成rpm包的形式進行管理,這樣既便於管理軟件版本也不需要每次部署都在服務器上對軟件進行編譯。
學習本書所需的環境
您需要幾颱Linux機器來運行本書中所涉及的示例,可以用主流的虛擬機軟件搭建一個或多個Linux係統環境。操作係統最好是CentOS6.5,Salt版本是2015.5.5,當然大多數Linux主流版本都可以。如果您使用的操作係統不是CentOS6.5,那您得到的輸齣結果可能和本書中的結果會略有不同。
讀者對象
本書最主要的讀者是係統管理員和Linux運維人員。此外,任何和服務器相關的工作人員,包括研發人員或業餘愛好者都可以通過本書掌握如何簡單快速地管理服務器,完成服務器集群基礎架構的建設。本書適用於任何想使用Salt更為高效地管理基礎架構的技術人員。
緻謝
特彆感謝我的朋友羅慶昌,沒有他的幫助就不可能完成這本書。還得感謝我在新浪微博工作期間的技術領導王春生,在春生的幫助和指引下讓我有機會更深入地接觸配置管理領域,另外還要感謝我現在的技術領導alanshao(紹宗文)和shawnding(丁曉坤),在他們的幫助下,讓我對海量業務運維有瞭重新的認識。
讓我們開啓學習之旅吧!
劉英傑?
2016.3.2
SaltStack運維實戰 下載 mobi pdf epub txt 電子書 格式 2024
SaltStack運維實戰 下載 mobi epub pdf 電子書,,,,,,
評分己看完一遍
評分好書 用得著
評分書都沒裹塑,應該是二手,還算比較新
評分收到瞭,看著還好吧,雖然沒有用塑料薄膜包著~
評分有些內容有湊數嫌疑。。。
評分好
評分還不錯,可以看一下
評分沒啥內容,真心不推薦購買。太薄瞭。又沒啥內容。
SaltStack運維實戰 mobi epub pdf txt 電子書 格式下載 2024