SaltStack(六) 案例練習

來源:互聯網
上載者:User

標籤:通過   結構關係   空格   彙報   data   function   rm -rf   功能   nio   

salt 練習1、修改其中一台伺服器的主機名稱。          故障問題:

                如果不按照要領操作會出現什麼狀況呢?
                    1、原主機名稱會存在/etc/salt/minion_id這個檔案中,因此不會識別新的主機名稱。可清空minion_id檔案
                    2、pki檔案下儲存著master端的key和minion端的公開金鑰和私密金鑰,minion端的公開金鑰和私密金鑰是根據伺服器的主機名稱產生的,minion端更改主機名稱後,匹配不上,啟動的minion進程會自動殺掉。     

  技巧:

                要想使master依然可以控制minion,minion在修改主機名稱的前提下,先刪除minion端的 minion_id和pki目錄 :rm -rf /etc/salt/minion_id /etc/salt/pki/ ,任何重新啟動minion端服務

2、master遷移            需求:

                在不修改minion端任何資訊的情況下,將master修改到更高配置上。
                在保證minion端不掛掉的情況下,平滑遷移

  故障問題:

                salt原理是如果master拒絕minion端後,minion會自動殺掉服務的進程,如果目前有200台伺服器,所有的minion服務都掛掉了,那麼工作了就大了。

  技巧:

                原理是:在minion而言,master的key與minion的不能衝突,如果衝突就minion就會自己kill掉。    

  方法:

                1、先準備新master的key,將原master的key直接打包,將salt目錄下的pki目錄全部打包,然後傳到新的master上即可。在此之前新master不要啟動服務。將原master的key,放在新master的salt目錄下,再啟動salt服務
                2、先在原master上批量將所有機器的指定master的ip修改(即hosts的配置指向),修改hosts使用cmd.run模組,然後重啟minion端,可用cmd.run,也可直接使用salt提供的模組slat ‘*‘ service.restart slat-minion       

3、returnner (日誌輸出)

            預設情況下,發送給salt minion的命令執行結果將返回給salt master,Saltstack Returner的介面允許將結果發送給任意系統
            可做minion的監控使用,

  內建的returnner模組列表
            carbon_return       將結果返回給carbon接收器            cassandea_return    將結果返回給Cassandra ColumnFamily            local               將結果返回給本地的測試returner介面,即列印當前的結果            mongo_future_return 將結果返回給mongodb            mongo_return        將結果返回給mongodb            mysql               將結果返回給MySQL            postgres            將結果返回給postgres            redis_return        將結果返回給redis            sentry_return       將結果返回給sentry            smtp_return         通過email返回salt資料            syslog_return       將結果返回給作業系統的syslog facility 
4、grains

            grains跟puppet的facter功能一樣,主要負責採集用戶端一些基本資料,這個也完全可以自訂,可以在用戶端自訂,然後自動彙報上來;也可以從伺服器端定義然後推下去,採集完後,在彙報上來;pillar跟grains比較的話他的靈活性較強。          

  grains使用
                查看grains                    salt ‘salt-clinet‘ grains.ls                    salt ‘salt-clinet‘ grains.items                    salt ‘salt-clinet‘ grains.item                正則匹配                    salt -G ‘os:CentOS‘ test.ping                    salt -G ‘cpuarch:x86_64‘ grains.item num_cpus                    salt -G ‘ec2_tags:environment:*production*‘                                    自訂grains                                    在minion上進行配置grains                    grains:                        roles:                            -webserver                            -memcache                        deployment:datacenter4                        cabinet:13                        cab_u:14-15                        
5、states

            salt狀態系統的核心是sls,或者叫**S**aLtState檔案。SLS表示系統將會是什麼樣的一種狀態,而且是以一種很簡單的格式來包含這些資料,這經常也被叫做組態管理。
            SLS檔案實際上只是一些:字典dictionaries、列表lists、字串str、and數字int
                
                YAML
                    縮排:YAML使用一個固定的縮排風格表示資料層結構關係,salt需要每個縮排層級由兩個空格組成,不能是tab
                    Python的字典理所當然是簡單的索引值對,字典的keys在YAML中的表現形式是一個以冒號皆為的字串。alues的表現形式冒號下面的每一行,用一個空格隔開。
                        例如:my_key: my_value
                    想要表示清單項目,使用一個短橫杠加一個空格,多個項使用同樣的縮排層級作為同一列表的一部分。
                    
                http://docs.saltstack.cn/topics/yaml/index.html

6、state模組列表       

            http://docs.saltstack.com/en/latest/ref/states/all/index.html

7、salt-call(minion)


            去minion上call相應的方法

8、pillar

            pillar是salt非誠重要的一個組件,它用於給特定的minion定義任何你需要的資料,這些資料可以被salt的其他組件使用。
            salt在0.9.8版本中引入了pillar。
            pillar在解析完成後,是一個嵌套的dict結構,最上層的key是minion ID,其value是該minion所擁有的pillar資料,每個value也都是key/value。這裡可以看出pillar的一個特點,pillar資料是與特定minion關聯的,也就是說每個minion都是只能看到自己的資料,所以pillar可以用來傳遞敏感性資料(在salt的設計中,pillar使用獨立的加密session,也是為了保證敏感性資料的安全性)。pillar可以用在那些地方呢?

                            1、敏感性資料                    例如ssh key,加密認證等,由於pillar使用獨立的加密session,可以確保這些敏感性資料不被其他minion看到。                2、變數                    可以在pillar中處理平台差異性,比如針對不同的作業系統設定軟體包的名字,然後在state中引用。                3、其他任何資料                    可以在pillar中添加任何需要用到的資料,比如定義使用者和UID的對應關係,minion的角色等。                4、用在targetting中                    pillar可以用來選擇minion,使用-l選項                    預設情況下,master設定檔中的所有資料都添加到pillar中,且對所有minion可用,如果要禁用這一預設值,可以在master設定檔中添加如下資料,重啟服務後生效。            pillar樣本                http://docs.saltstack.cn/topics/jobs/schedule.html                                salt ‘*‘ saltutil.refresh_pillar #重新整理配置                            pillar定義定時任務                每分鐘同步一下nginx設定檔                [[email protected]-server pillar]# cat top.sls                base:                  ‘*‘:                    - nginx                [[email protected]-server pillar]# cat nginx.sls                schedule:                  nginx:                    function:state.sls                    minutes: 1   #每分鐘                    args:                      - ‘nginx‘                salt ‘*‘ saltutil.refresh_pillar  #重新整理所有機器上的pillar                salt ‘*‘ pillar.data #查看所有機器上的pillar                                        
9、proxy

            Salt syndic介面是一個強大的工具,這個工具允許建立Salt命令拓補結構,Salt的基本設定是一個salt master指揮一組salt minion。
            Syndic介面是一種特殊的直通minion,他允許在一個master上且串連到另外一個master,然後Syndic minion所串連的master就可以控制串連到運行syndic的master上的minion
            
           
            
           

       salt-syndic代理機直接安裝master即可,            salt-syndic不需要任何安裝其他外掛程式,直接啟動/etc/init.d/salt-syndic 即可。            設定檔是/etc/salt/master            直接配置三個地方即可。                syndic_master:更進階別master的IP地址                syndic_log_file: syndic記錄檔的路徑(絕對路徑為佳)                order_masters:True  確認轉寄機制。

 

SaltStack(六) 案例練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.