<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • SaltStack(一)

            SaltStack介紹

            在白沙黎族等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,白沙黎族網(wǎng)站建設(shè)費(fèi)用合理。

            saltstack是一個開源的批量分發(fā)管理工具,具有非常強(qiáng)大的管理功能,能同時管理上萬臺服務(wù)器。由python語言編寫,并提供API.

            saltstack有四種運(yùn)行方式:Local, Master/Minion, Salt SSH,Syndic

            saltstack有三大功能:遠(yuǎn)程執(zhí)行,配置管理(狀態(tài)),云管理。

            saltstack支持多種常見的操作系統(tǒng),包括Windows(只能做為minion)。

            saltstack是依賴于ZeroMQ來實現(xiàn)的(訂閱發(fā)布模式),監(jiān)聽4505端口(發(fā)布系統(tǒng)端口)。所有的minion都會連接到master上的4505端口,而master上的4506端口用于接受minion返回的數(shù)據(jù)。由于使用的是TCP長連接,所以在master上對海量的服務(wù)器執(zhí)行命令時,會得到非常迅速的響應(yīng)。

            SaltStack的安裝配置

            http://repo.saltstack.com/#rhel 

            SaltStack提供了非常豐富的安裝方式,可以在官方網(wǎng)站找到對應(yīng)的說明。

            這里使用兩臺CS7的系統(tǒng),一臺作為master(node1),另一臺作為Minion(node2)。

            安裝SaltStack倉庫:

            yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm

            在master端安裝服務(wù)端和客戶端:

            yum install salt-master salt-minion -y

            在minoin安裝客戶端:

            yum install salt-minion -y

            啟動master:

            # systemctl  start salt-master

            修改master和minion端的minion配置文件,為minion指定master,:

            vim /etc/salt/minion
            master: 172.16.10.60 #可以是主機(jī)名或IP
            #id:     #id默認(rèn)可以不改,為主機(jī)名
            
            # systemctl start salt-minion  #啟動minion服務(wù)

            啟動成功后,會生成一個/etc/salt/minion_id的文件,記錄了minion的ID信息。

            # cat /etc/salt/minion_id 
            node2

            在pki目錄下會生成一系列的密鑰:

            [root@node1 salt]# tree pki
            pki
            ├── master
            │   ├── master.pem   #master私鑰
            │   ├── master.pub   #master公鑰
            │   ├── minions
            │   ├── minions_autosign
            │   ├── minions_denied
            │   ├── minions_pre   #未被管理的密鑰
            │   │   ├── node1
            │   │   └── node2
            │   └── minions_rejected
            └── minion
                ├── minion.pem
                └── minion.pub
            [root@node2 salt]# tree pki
            pki
            ├── master
            └── minion
                ├── minion.pem
                └── minion.pub

            通過MD5校驗對比,可以發(fā)現(xiàn)master上收到的node2的密鑰和node2本地的密鑰相同:

            # 完成分發(fā)后,路徑改變
            [root@node1 ~]# md5sum  /etc/salt/pki/master/minions/node2
            d9a0453d7d539dbcc36e1daea259aa10  /etc/salt/pki/master/minions/node2
            
            [root@node2 ~]# md5sum /etc/salt/pki/minion/minion.pub 
            d9a0453d7d539dbcc36e1daea259aa10  /etc/salt/pki/minion/minion.pub

            在master上使用salt-key命令來查看添加minion主機(jī):

            [root@node1 salt]# salt-key 
            Accepted Keys:
            Denied Keys:
            Unaccepted Keys:
            node1
            node2
            Rejected Keys:

            加入指定的minion主機(jī):

            # salt-key -a node1   #可以使用通配符如 node*添加所有以node開頭為開頭的主機(jī)
            The following keys are going to be accepted:
            Unaccepted Keys:
            node1
            Proceed? [n/Y] Y
            Key for minion node1 accepted.

            同意所有minion主機(jī):

            # salt-key -A

            對所有的主機(jī)執(zhí)行命令,測試主機(jī)是否在線:

            [root@node1 ~]# salt '*' test.ping
            node2:
                True
            node1:
                True

            對所有主機(jī)運(yùn)行一個命令,出現(xiàn)下面結(jié)果說明可以進(jìn)行遠(yuǎn)程管理了:

            [root@node1 ~]# salt '*' cmd.run 'date'
            node1:
                Fri Nov  4 14:21:37 CST 2016
            node2:
                Fri Nov  4 14:21:37 CST 2016

            如果在使用過程中修改了主機(jī)名(不推薦這樣做,會造成很多問題),可以在minion的配置文件中指定主機(jī)名(id), 然后刪除修改主機(jī)的KEY,重新啟動minon:

            [root@node-1 ~]# salt-key -d old-key-name  #刪除指定的key
            [root@node-1 ~]# salt-key -D  # 刪除所有key

            SaltSack配置管理

            當(dāng)需要對海量的機(jī)器進(jìn)行配置管理的時候經(jīng)常會修改各種配置文件,SaltStack的配置管理可以讓我們更方便的部署服務(wù),針對不同的服務(wù)器和不同的服務(wù),可以通過編輯.sls文件來管理。

            SaltStack的配置分發(fā)管理是使用YAML狀態(tài)文件來編寫的。

            YAML語法:
            1.縮進(jìn): 兩個空格,不能使用tab鍵。

            2.冒號:代表鍵值對  key: value (注意,鍵值對冒號后面有一個空格)

            3.短橫線:表示列表(短橫線后面有一個空格)

            基礎(chǔ)配置

            編輯配置文件,定義YAML模塊:

            # vim /etc/salt/master #打開基礎(chǔ)配置
            file_roots:  
              base:    
                - /srv/salt   #配置文件根路徑

            在示例中又三個模塊,base,dev,prod.分別代表基礎(chǔ)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境的配置,可以對每個模塊可以指定對應(yīng)路徑:

            # Example:
            # file_roots:
            #   base:
            #     - /srv/salt/
            #   dev:
            #     - /srv/salt/dev/services
            #     - /srv/salt/dev/states
            #   prod:
            #     - /srv/salt/prod/services
            #     - /srv/salt/prod/states

            修改salt配置文件后重啟:

             systemctl restart salt-master

            創(chuàng)建根路徑:

            mkdir /srv/salt/        # salt的根路徑

            批量執(zhí)行相同命令

            在需要對大量主機(jī)安裝配置相同的內(nèi)容時可以通過編輯簡單的sls文件來執(zhí)行。

            創(chuàng)建base環(huán)境文件分類目錄,編輯需要安裝的配置:

            mkdir /srv/salt/web        
            vim /srv/salt/web/apache.sls
            #編寫內(nèi)容:
            apache-install:         #命名ID,可隨意命名
              pkg.installed:        #pkg模塊,調(diào)用installed方法
                - names:            #installed方法中的參數(shù)
                  - httpd           #需要安裝的包名
                  - httpd-devel
            apache-service:         #狀態(tài)命名ID
              service.running:      #調(diào)用service.running方法
                - name: httpd       #服務(wù)的命名為httpd
                - enable: True      #設(shè)置開機(jī)自啟動

            執(zhí)行.sls文件:

             salt '*' state.sls web.apache     #state.sls執(zhí)行模塊,執(zhí)行根目錄中apache.sls文件

            此時會在兩臺在線的主機(jī)上安裝Apache,并啟動。

            查看node2上的文件,同樣生成了一個apache.sls的文件:

            [root@node2 ~]# cat /var/cache/salt/minion/files/base/web/apache.sls 
            apache-install:
              pkg.installed:
                - names:
                  - httpd
                  - httpd-devel
            apache-service:
              service.running:
                - name: httpd
                - enable: True

            minion通過復(fù)制master的.sls文件到本地執(zhí)行。

            對不同主機(jī)指定不同的動作

            在master配置文件中,指定top配置文件,top文件必須在base環(huán)境中。

            #state_top: top.sls  #默認(rèn)不需要配置

            在指定的base環(huán)境路徑上編寫top.sls文件,為不同的minion主機(jī)指定不同的動作:

            [root@node1 salt]# cat /srv/salt/top.sls 
            base:
              'node1':
                - web.apache
              'node2':
                - web.apache

            執(zhí)行高級狀態(tài)命令,使top.sls文件生效:

             salt '*' state.highstate test=True #測試top文件,對minion不做修改
             salt '*' state.highstate  # * 代表所有minion,執(zhí)行top文件內(nèi)容


            SaltStack數(shù)據(jù)系統(tǒng)

            SaltStack是通過兩種數(shù)據(jù)系統(tǒng)來發(fā)布的,Grains和Pillar。通過數(shù)據(jù)系統(tǒng)來統(tǒng)計主機(jī)的相關(guān)信息,進(jìn)而幫助用戶使用多樣化的方式來篩選定位我們要執(zhí)行salt命令的主機(jī)。

            Grans介紹

            Grains: 獲取靜態(tài)數(shù)據(jù) ,當(dāng)minion啟動的時候收集Minion本地的相關(guān)信息,如操作系統(tǒng)版本,內(nèi)核信息,硬件信息等,也可以自定義。當(dāng)minion啟動后,獲取的數(shù)據(jù)就不會再改變,只有重啟或同步時才能獲取新的變化信息。

             Grains的特性可以有幾種應(yīng)用場景:

            • 資產(chǎn)管理,信息查詢。

            • 用于目標(biāo)選擇。(salt -G 'key:value'  cmd.run 'cmd')

            • 配置管理中使用。

            查看Grains信息:

             salt 'node1' grains.ls    #顯示所有模塊

             salt 'node1' grains.items  #顯示所有模塊的信息

             salt '*' grains.item fqdn  #返回所有minion端的fqdn信息

            使用Grains指定信息對應(yīng)的主機(jī),執(zhí)行salt命令:

            [root@node1 salt]# salt '*' grains.item os
            node2:
                ----------
                os:
                    CentOS
            node1:
                ----------
                os:
                    CentOS
            [root@node1 salt]# salt -G 'os:CentOS' cmd.run 'date'   # -G 參數(shù)指定Grains信息
            node1:
                Sun Nov  6 17:28:36 CST 2016
            node2:
                Sun Nov  6 17:28:36 CST 2016

            自定義Grains

            自定義Grains有兩種方式:

            • 在/etc/salt/minion添加配置

            • 在/etc/salt/目錄編寫新的配置文件grains

            在node2上的/etc/salt/minion添加配置,在grains部分取消注釋,添加一個roles角色:

            grains:
              roles: apache

            重啟salt-minion,并在master上獲取roles的值:

            [root@node2 ~]# systemctl restart salt-minion
            [root@node1 ~]# salt '*' grains.item roles
            node1:
                ----------
                roles:
            node2:
                ----------
                roles:
                    apache

            這樣就可以根據(jù)Grains的匹配結(jié)果來對符合匹配結(jié)果的主機(jī)執(zhí)行命令:

            [root@node1 ~]# salt -G 'roles:apache' cmd.run 'date'  
            node2:
                Sun Nov  6 17:51:07 CST 2016

            在/etc/salt/目錄編寫新的配置文件grains:

            [root@node2 ~]# cat /etc/salt/grains
            saltname: trying
            [root@node2 ~]# systemctl restart salt-minion  
            #也可以在master上使用刷新命令,和重啟salt-minion效果一樣
            [root@node1 ~]# salt '*' saltutil.sync_grains
            node1:
            node2:

            master上查看:

            [root@node1 ~]# salt '*' grains.item saltname
            node1:
                ----------
                saltname:
            node2:
                ----------
                saltname:
                    trying

            在top file中使用Grains

            在top.sls中使用grains進(jìn)行匹配

            vim /srv/salt/top.sls 
            base:
              'node1':
                - web.apache
              'saltname:trying':      #此處grains匹配上node2
                - match: grain        #匹配grains,不加s.
                - web.apache


            使用python腳本編寫一個Grains

            使用python腳本編寫一個grains,需要存放在base環(huán)境中的_grains目錄中。

            [root@node1 _grains]# cat /srv/salt/_grains/my_grains.py
            #!/usr/bin/env python
            #-*- coding: utf-8 -*-
            def my_grains():
                #init a grains
                grains = {}
                #set key-value
                grains['iaas'] = 'openstack'
                grains['blog'] = 'trying'
                # return value
                return grains


            同步腳本到minion端:

            [root@node1 _grains]# salt '*' saltutil.sync_grains #這里可以指定主機(jī)同步
            node1:
                - grains.my_grains
            node2:
                - grains.my_grains

            在minion端可以看到同步過來的腳本和目錄:

            [root@node2 ~]# tree /var/cache/salt/minion/
            /var/cache/salt/minion/
            ├── accumulator
            ├── extmods
            │   └── grains
            │       ├── my_grains.py       #真正執(zhí)行的腳本
            │       └── my_grains.pyc
            ├── files
            │   └── base
            │       ├── _grains
            │       │   └── my_grains.py   #同步的腳本文件
            │       ├── top.sls
            │       └── web
            │           └── apache.sls
            ├── highstate.cache.p
            ├── module_refresh
            ├── pkg_refresh
            ├── proc
            └── sls.p

            在master上查看執(zhí)行結(jié)果,已經(jīng)同步到minion上:

            [root@node1 _grains]# salt '*' grains.item blog
            node1:
                ----------
                blog:
                    trying
            node2:
                ----------
                blog:
                    trying

            Grains的優(yōu)先級

            上面給出了四種方式可以使用Grains的值,在這四種方式中,如果出現(xiàn)了同名的情況,會

            按照以下的優(yōu)先級來獲取對應(yīng)的值:

            1. 系統(tǒng)自帶的值

            2. /etc/salt/grains文件中編寫的值

            3. minion配置文件中定義的值

            4. /srv/salt/_grains/my_grains.py 腳本中自定義的值

            ================

            Pillar介紹

            與Grains不同的是,Pillar是動態(tài)的,能給特定的minion指定特定的數(shù)據(jù)。只有指定的minion能看到自己的數(shù)據(jù),這樣常用與一些敏感的特殊數(shù)據(jù)。

            默認(rèn)情況下pillar的系統(tǒng)模塊是關(guān)閉的:

            [root@node1 salt]# salt '*' pillar.items
            node1:
                ----------
            node2:
                ----------

            可以在/etc/salt/master中打開注釋,修改為True,系統(tǒng)的這些變量很少會用到:
            pillar_opts: True

            自定義pillar

            自定義pillar需要編寫一個sls文件,在文件中定義pillar. 使用YAML定義多級。

            修改master配置文件,打開注釋:

            vim /etc/salt/master
            pillar_roots:
              base:
                - /srv/pillar

            重啟salt-master:

            systemctl  restart salt-master

            創(chuàng)建pillar的目錄:

            mkdir /srv/pillar

            和grains一樣,創(chuàng)建分類目錄和.sls的文件    

            vim  /srv/pillar/web/apache.sls 
            {% if grains['os'] == 'CentOS' %}
            apache: httpd
            {% elif grains['os'] == 'Debian' %}
            apache: apache2
            {% endif %}

            在pillar目錄中編寫top file指定主機(jī),和grains中的一樣:

            # cat /srv/pillar/top.sls 
            base:
              'node2':         #只指定了node2
                - web.apache

            刷新,使配置生效:

            # salt '*' saltutil.refresh_pillar
            node2:
                True
            node1:
                True

            執(zhí)行查看pillar items 生效:

            # salt '*' pillar.items apache    
            node2:
                ----------
                apache:
                    httpd
            node1:
                ----------
                apache:

            使用pillar匹配上主機(jī)node2,執(zhí)行命令:

            # salt -I 'apache:httpd' cmd.run  'hostname' 
            node2:
                node2

            Grains和Pillar的對比

            分類類型數(shù)據(jù)采集方式應(yīng)用場景定義位置
            Grains靜態(tài)minion啟動時收集數(shù)據(jù)查詢,目標(biāo)選擇,配置管理minion
            Pillar動態(tài)master自定義目標(biāo)選擇,配置管理,敏感數(shù)據(jù)master

            SaltStack遠(yuǎn)程執(zhí)行

            saltstack命令語法, salt  '*'  cmd.run  'w'

            命令:salt

            目標(biāo):‘*’

            模塊: cmd.run  自帶150+模塊,也可以自定義編寫模塊

            返回:執(zhí)行后結(jié)果返回。

            目標(biāo)選擇方式

            所有匹配目標(biāo)的方式都可以用top file來指定。

            使用通配符:

            #  salt  'node*' test.ping
            #  salt  'node[1|2]'  test.ping 
            #  salt  'node[1-2]' test.ping
            #  salt  'node[!2]' test.ping

             使用列表,-L:

            #  salt -L 'node1,node2' test.ping

            使用正則,-E:

            #  salt -E 'node(1|2)*' test.ping

            使用IP/子網(wǎng)方式:

            #  salt -S '172.16.10.61' test.ping 

            #  salt -S '172.16.10.0/24' test.ping 

            使用node_group匹配:-N

            修改配置文件/etc/salt/master,在node group模塊中添加匹配的組:

            nodegroups:
              web: 'L@node1,node2'

            重啟salt-master:

             systemctl restart salt-master

            匹配node-group:

            [root@node1 ~]# salt -N web test.ping
            node2:
                True
            node1:
                True


            多種匹配方式命令示例:

            https://www.unixhot.com/docs/saltstack/topics/targeting/index.html

            https://www.unixhot.com/docs/saltstack/topics/targeting/compound.html   

            SaltStack自帶模塊

            https://docs.saltstack.com/en/latest/ref/modules/all/index.html#all-salt-modules 

            Saltstack有很多集成的模塊,大部分模塊都是由python編寫,使用這些模塊可以很方便的返回一個信息列表或者執(zhí)行某些任務(wù)。

            常用的一些模塊舉例:

            network模塊:網(wǎng)絡(luò)相關(guān)服務(wù)

            https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.network.html#module-salt.modules.network 

            salt.modules.network.active_tcp :這里表示了模塊函數(shù)的路徑和位置,salt.modules表示的就是slat模塊在本機(jī)的安裝位置,一般默認(rèn)情況下在 /usr/lib/python2.7/site-packages/salt/modules

            在執(zhí)行命令的時候可以直接使用slat命令來調(diào)用

            service 模塊:和主機(jī)當(dāng)前服務(wù)相關(guān)的模塊

            https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.service.html#module-salt.modules.service 

            在一些常用的模塊中,有一些模塊方法已經(jīng)有了單獨(dú)的命令如cp模塊:

            cp是復(fù)制模塊,在系統(tǒng)中我們可以直接使用salt-cp 如:

            salt-cp  ‘*’  /etc/hosts  /tmp/   #拷貝本地的hosts文件到所有minion的/tmp目錄下。

            state:執(zhí)行模塊

            https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.state.html#module-salt.modules.state 

            Saltstack返回程序

            數(shù)據(jù)的返回是由minion端提供的,可以將minion返回的數(shù)據(jù)直接寫入到MySQL中而不經(jīng)過master。

            要實現(xiàn)minion直接返回數(shù)據(jù)到mysql,需要在所有的minion安裝MySQL-python

            salt  '*' state.single pkg.installed name=MySQL-python

            使用返回數(shù)據(jù)存入mysql,需要在master上安裝數(shù)據(jù)庫,并且創(chuàng)建表結(jié)構(gòu),授權(quán):

            https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html 

            執(zhí)行下面命令,創(chuàng)建數(shù)據(jù)庫并授權(quán):

            > CREATE DATABASE  `salt`
                 DEFAULT CHARACTER SET utf8
                 DEFAULT COLLATE utf8_general_ci;
            
            > USE `salt`;
            
            > DROP TABLE IF EXISTS `jids`;
              CREATE TABLE `jids` (
                 `jid` varchar(255) NOT NULL,
                 `load` mediumtext NOT NULL,
                  UNIQUE KEY `jid` (`jid`)
                 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
                  CREATE INDEX jid ON jids(jid) USING BTREE;
            
            > DROP TABLE IF EXISTS `salt_returns`;
            
            > CREATE TABLE `salt_returns` (
                `fun` varchar(50) NOT NULL,
                `jid` varchar(255) NOT NULL,
                `return` mediumtext NOT NULL,
                `id` varchar(255) NOT NULL,
                `success` varchar(10) NOT NULL,
                `full_ret` mediumtext NOT NULL,
                `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                KEY `id` (`id`),
                KEY `jid` (`jid`),
                KEY `fun` (`fun`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
            
            > DROP TABLE IF EXISTS `salt_events`;
            
            > CREATE TABLE `salt_events` (
                `id` BIGINT NOT NULL AUTO_INCREMENT,
                `tag` varchar(255) NOT NULL,
                `data` mediumtext NOT NULL,
                `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                `master_id` varchar(255) NOT NULL,
                PRIMARY KEY (`id`),
                KEY `tag` (`tag`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
            
            > grant all on salt.* to salt@'%'  identified by 'salt';
            
            > show databases;
            +--------------------+
            | Database           |
            +--------------------+
            | information_schema |
            | mysql              |
            | performance_schema |
            | salt               |
            +--------------------+
            4 rows in set (0.00 sec)
            > use salt
            Database changed
            > show tables;
            +----------------+
            | Tables_in_salt |
            +----------------+
            | jids           |
            | salt_events    |
            | salt_returns   |
            +----------------+
            3 rows in set (0.00 sec)
            MariaDB [salt]> select * from salt_returns;
            Empty set (0.00 sec)

            修改所有minion端salt的配置文件,加入下面配置后重啟salt服務(wù):

            在配置最后添加如下信息:

            mysql.host: '172.16.10.60'   # mysql所在的主機(jī)地址
            mysql.user: 'salt'
            mysql.pass: 'salt'
            mysql.db: 'salt'
            mysql.port: 3306

            重啟minion服務(wù):

            systemctl  restart salt-minion

            執(zhí)行數(shù)據(jù)庫測試命令:

             salt '*' test.ping --return mysql

            再次查看數(shù)據(jù)庫,發(fā)現(xiàn)已經(jīng)寫入數(shù)據(jù):

            [root@node1 ~]# mysql -h 172.16.10.60 -usalt -p -e "use salt; select * from salt_returns\G"
            Enter password: 
            *************************** 1. row ***************************
                   fun: test.ping
                   jid: 20161108135248194687
                return: true
                    id: node2
               success: 1
              full_ret: {"fun_args": [], "jid": "20161108135248194687", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "node2"}
            alter_time: 2016-11-08 13:52:48
            *************************** 2. row ***************************
                   fun: test.ping
                   jid: 20161108135248194687
                return: true
                    id: node1
               success: 1
              full_ret: {"fun_args": [], "jid": "20161108135248194687", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "node1"}
            alter_time: 2016-11-08 13:52:48

            執(zhí)行一條命令,寫入數(shù)據(jù)庫:

            salt '*' cmd.run 'df -h' --return mysql

            再次查看數(shù)據(jù)庫,會發(fā)現(xiàn)數(shù)據(jù)庫中已經(jīng)記錄了操作的命令和返回值記錄,以及操作的時間。

            編寫狀態(tài)模塊

            我們可以根據(jù)自己的需要,自定義一些狀態(tài)模塊。比如,可以編寫一個模塊腳本,來執(zhí)行復(fù)雜的操作,直接使用salt來調(diào)用這些模塊就可以實現(xiàn)我們需要的功能。

            模塊存放的路徑:/srv/salt/_modules

            mkdir /srv/salt/_modules

            編寫一個顯示磁盤信息的模塊腳本:

            [root@node1 /srv/salt/_modules]# vim /srv/salt/_modules/my_disk.py
            def list():
              cmd = 'df -h'
              ret = __salt__['cmd.run'](cmd)
              return ret

            salt同步文件到所有minion端:

            # salt '*' saltutil.sync_modules 
            node1:
                - modules.my_disk
            node2:
                - modules.my_disk

            運(yùn)行my_disk.py模塊:

            # salt '*' my_disk.list
            node2:
                Filesystem               Size  Used Avail Use% Mounted on
                /dev/mapper/centos-root  8.5G  1.4G  7.1G  17% /
                devtmpfs                 483M     0  483M   0% /dev
                tmpfs                    493M   12K  493M   1% /dev/shm
                tmpfs                    493M   20M  474M   4% /run
                tmpfs                    493M     0  493M   0% /sys/fs/cgroup
                /dev/sda1                497M  165M  332M  34% /boot
                tmpfs                     99M     0   99M   0% /run/user/0
            node1:
                Filesystem               Size  Used Avail Use% Mounted on
                /dev/mapper/centos-root  8.5G  1.6G  7.0G  18% /
                devtmpfs                 483M     0  483M   0% /dev
                tmpfs                    493M   28K  493M   1% /dev/shm
                tmpfs                    493M   20M  474M   4% /run
                tmpfs                    493M     0  493M   0% /sys/fs/cgroup
                /dev/sda1                497M  165M  332M  34% /boot
                tmpfs                     99M     0   99M   0% /run/user/0

            可以看到salt將每一臺minion運(yùn)行的結(jié)果返回到我們的master端,和執(zhí)行df -h 的效果一樣。

            本文名稱:SaltStack(一)
            URL鏈接:http://www.jbt999.com/article32/gseopc.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、App開發(fā)、網(wǎng)站改版、響應(yīng)式網(wǎng)站微信小程序、標(biāo)簽優(yōu)化

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            外貿(mào)網(wǎng)站制作

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 一级片国产 | 国产一级片无码 | 三级片69 | 在线成人中文字幕无码影 | 国内自拍视频网站 |