• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年12月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456


            專(zhuān)注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開(kāi)頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺(jué)尊重??!如為您帶來(lái)不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類(lèi)

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 216734
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

            本文原創(chuàng)版權(quán)歸 51CTO Workming 所有,此處為轉(zhuǎn)載,如有再轉(zhuǎn)請(qǐng)于文章篇頭處標(biāo)明原文出處,以示尊重!
            原文:
            http://sofar.blog.51cto.com/353572/1596960/

            ==========================================================================================
            一、基礎(chǔ)介紹
            ==========================================================================================
            1、簡(jiǎn)介
            SaltStack是一個(gè)服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,一般可以理解為簡(jiǎn)化版的puppet和加強(qiáng)版的func。SaltStack基于Python語(yǔ)言實(shí)現(xiàn),結(jié)合輕量級(jí)消息隊(duì)列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構(gòu)建。

            通過(guò)部署SaltStack環(huán)境,我們可以在成千上萬(wàn)臺(tái)服務(wù)器上做到批量執(zhí)行命令,根據(jù)不同業(yè)務(wù)特性進(jìn)行配置集中化管理、分發(fā)文件、采集服務(wù)器數(shù)據(jù)、操作系統(tǒng)基礎(chǔ)及軟件包管理等,SaltStack是運(yùn)維人員提高工作效率、規(guī)范業(yè)務(wù)配置與操作的利器。

             

            2、特性
            (1)、部署簡(jiǎn)單、方便;
            (2)、支持大部分UNIX/Linux及Windows環(huán)境;
            (3)、主從集中化管理;
            (4)、配置簡(jiǎn)單、功能強(qiáng)大、擴(kuò)展性強(qiáng);
            (5)、主控端(master)和被控端(minion)基于證書(shū)認(rèn)證,安全可靠;

            (6)、支持API及自定義模塊,可通過(guò)Python輕松擴(kuò)展。

            wKiom1Sfzhmy2-OTAAIPxayI-Z4556.jpg

             

            3、Master與Minion認(rèn)證
            (1)、minion在第一次啟動(dòng)時(shí),會(huì)在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設(shè)置)下自動(dòng)生成minion.pem(private key)和 minion.pub(public key),然后將 minion.pub發(fā)送給master。

            (2)、master在接收到minion的public key后,通過(guò)salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會(huì)存放以minion id命名的 public key,然后master就能對(duì)minion發(fā)送指令了。

             

            4、Master與Minion的連接
            (1)、SaltStack master啟動(dòng)后默認(rèn)監(jiān)聽(tīng)4505和4506兩個(gè)端口。4505(publish_port)為saltstack的消息發(fā)布系統(tǒng),4506(ret_port)為saltstack客戶(hù)端與服務(wù)端通信的端口。如果使用lsof 查看4505端口,會(huì)發(fā)現(xiàn)所有的minion在4505端口持續(xù)保持在ESTABLISHED狀態(tài)。

            wKioL1Sf0JHwhBhaAAEsYS9e6HE690.jpg

             

            (2)、minion與master之間的通信模式如下:

            wKiom1Sfzr-i8BUjAAF0EW4NxyY818.jpg

             

            5、本次測(cè)試環(huán)境

            IP地址

            角色

            系統(tǒng)環(huán)境

            10.133.33.85

            master

            CentOS 6.3

            10.130.87.151

            minion

            CentOS 6.3

             

            ==========================================================================================
            二、SaltStack基礎(chǔ)安裝與配置
            ==========================================================================================
            1、依賴(lài)組件說(shuō)明
            http://docs.saltstack.com/en/latest/topics/installation/index.html

            wKioL1Sfz__ws2EVAANpFr96RiE332.jpg

            SaltStack的通信模式總共分為2種模式:ZeroMQ、REAT,鑒于REAT目前還不是太穩(wěn)定,我們選擇ZeroMQ模式,本次安裝采用源碼安裝的方式。

             

            解壓源碼后,這些文本文件里也有組件依賴(lài)相關(guān)說(shuō)明哈:

            wKioL1Sf0NaTTpjDAARykJLGBv0733.jpg

             

            2、SaltStack基礎(chǔ)安裝
            (1)、python 2.7安裝

            https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
            # tar xvzf Python-2.7.8.tgz
            # cd Python-2.7.8
            # ./configure --prefix=/usr/local
            # make --jobs=`grep processor /proc/cpuinfo | wc -l`
            # make install

             

            ## 將python頭文件拷貝到標(biāo)準(zhǔn)目錄,以避免編譯saltstack時(shí),找不到所需的頭文件
            # cd /usr/local/include/python2.7
            # cp -a ./* /usr/local/include/

             

            ## 備份舊版本的python,并符號(hào)鏈接新版本的python
            # cd /usr/bin
            # mv python python2.6
            # ln -s /usr/local/bin/python

             

            ## 修改yum腳本,使其指向舊版本的python,已避免其無(wú)法運(yùn)行
            # vim /usr/bin/yum

            #!/usr/bin/python  -->  #!/usr/bin/python2.6

             

            (2)、PyYAML模塊安裝
            http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
            https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz
            # tar xvzf yaml-0.1.5.tar.gz
            # cd yaml-0.1.5
            # ./configure --prefix=/usr/local
            # make --jobs=`grep processor /proc/cpuinfo | wc -l`
            # make install

             

            # tar xvzf PyYAML-3.11.tar.gz
            # cd PyYAML-3.11
            # python setup.py install


            (3)、setuptools模塊安裝

            https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
            # tar xvzf setuptools-7.0.tar.gz
            # cd setuptools-7.0
            # python setup.py install

             

            (4)、markupsafe模塊安裝
            https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz
            # tar xvzf MarkupSafe-0.9.3.tar.gz
            # cd MarkupSafe-0.9.3
            # python setup.py install

             

            (5)、jinja2模塊安裝
            https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz
            # tar xvzf Jinja2-2.7.3.tar.gz 
            # cd Jinja2-2.7.3
            # python setup.py install

             

            (6)、pyzmq模塊安裝
            http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

             

            注意:
            系統(tǒng)自帶的autoconf版本為2.63,在編譯ZeroMQ時(shí),由于版本較低,會(huì)報(bào)錯(cuò)不通過(guò),故需安裝大于2.63的版本。

            # tar xvzf autoconf-2.69.tar.gz
            # cd autoconf-2.69
            # ./configure --prefix=/usr
            # make
            # make install

             

            ## 其他依賴(lài)庫(kù)安裝
            # yum -y install libuuid.x86_64 libuuid-devel.x86_64
            # yum -y install uuid.x86_64 uuid-devel.x86_64
            # yum -y install uuid-c++.x86_64 uuid-c++-devel.x86_64

             

            https://github.com/jedisct1/libsodium/archive/1.0.1.tar.gz
            # tar xvzf libsodium-1.0.1.tar.gz
            # cd libsodium-1.0.1
            # ./autogen.sh
            # ./configure --prefix=/usr/local 
            # make --jobs=`grep processor /proc/cpuinfo | wc -l`
            # make install

             

            http://download.zeromq.org/zeromq-4.0.5.tar.gz
            https://pypi.python.org/packages/source/p/pyzmq/pyzmq-14.4.1.tar.gz
            # tar xvzf zeromq-4.0.5.tar.gz
            # cd zeromq-4.0.5
            # ./autogen.sh
            # ./configure --prefix=/usr/local
            # make --jobs=`grep processor /proc/cpuinfo | wc -l`
            # make install

             

            # tar xvzf pyzmq-14.4.1.tar.gz
            # cd pyzmq-14.4.1
            # python setup.py configure --zmq=/usr/local
            # python setup.py install


            (7)、M2Crypto模塊安裝

            # yum -y install swig.x86_64

             

            http://www.openssl.org/source/openssl-1.0.1g.tar.gz
            # tar xvzf openssl-1.0.1g.tar.gz
            # cd openssl-1.0.1g
            # ./config shared --prefix=/usr/local
            # make && make install

             

            https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz
            # tar xvzf M2Crypto-0.22.3.tar.gz
            # cd M2Crypto-0.22.3
            # python setup.py install

             

            注意:wKioL1Sf0SihxJdTAAOvt6zwKuQ140.jpg

            如果出現(xiàn)以上報(bào)錯(cuò),執(zhí)行以下命令:
            # cp -a /usr/local/include/openssl /usr/include/

             

            (8)、msgpack模塊安裝
            https://pypi.python.org/packages/source/m/msgpack-python/msgpack-python-0.4.2.tar.gz
            # tar xvzf msgpack-python-0.4.2.tar.gz
            # cd msgpack-python-0.4.2
            # python setup.py install

             

            (9)、msgpack-pure模塊安裝
            https://pypi.python.org/packages/source/m/msgpack-pure/msgpack-pure-0.1.3.tar.gz
            # tar xvzf msgpack-pure-0.1.3.tar.gz
            # cd msgpack-pure-0.1.3
            # python setup.py install

             

            (10)、pycrypto模塊安裝
            https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
            # tar xvzf pycrypto-2.6.1.tar.gz
            # cd pycrypto-2.6.1
            # python setup.py install

             

            (11)、requests模塊安裝
            https://pypi.python.org/packages/source/r/requests/requests-2.5.0.tar.gz
            # tar xvzf requests-2.5.0.tar.gz
            # cd requests-2.5.0
            # python setup.py install

            wKioL1Sf0ZnjB3EWAAT7h_5cIKk502.jpg

             

            # vim Python-2.7.8/Modules/Setup

            wKiom1Sf0SnAF2fRAAFMPwSeVfw093.jpg

            然后再重新對(duì)python-2.7.8進(jìn)行編譯安裝即可解決以上問(wèn)題。

             

            # vim/etc/ld.so.conf

            /usr/local/lib

            /usr/local/lib64

             

            # /sbin/ldconfig

            # cd Python-2.7.8
            # make && make install

             

            注意:
            如果openssl庫(kù)在python之前已經(jīng)安裝,就不會(huì)出現(xiàn)這種情況,也無(wú)需經(jīng)歷此步驟,此處更多的是想說(shuō)明一下組件之間的依賴(lài)關(guān)系,作為提醒。

             

            (12)、其他模塊安裝
            https://pypi.python.org/packages/source/l/libnacl/libnacl-1.3.5.tar.gz
            https://pypi.python.org/packages/source/i/ioflo/ioflo-1.0.2.tar.gz
            https://pypi.python.org/packages/source/s/six/six-1.8.0.tar.gz
            https://pypi.python.org/packages/source/r/raet/raet-0.4.2.tar.gz
            https://pypi.python.org/packages/source/M/Mako/Mako-1.0.0.tar.gz

             

            注意:
            以上模塊為REAT通信模式所依賴(lài)的模塊,作為可選項(xiàng),非必要。

             

            (13)、saltstack安裝
            https://github.com/saltstack/salt/releases/download/v2014.7.0/salt-2014.7.0.tar.gz
            # tar xvzf salt-2014.7.0.tar.gz
            # cd salt-2014.7.0
            # python setup.py install

            # salt --versions-report

            wKiom1Sf0cKz9gDzAAGy2YGKprQ499.jpg

             

            3、SaltStack配置
            (1)、master端

            # mkdir /etc/salt
            # cp -a conf/master /etc/salt/
            # cp -a pkg/suse/salt-master /etc/init.d/
            # chmod +x /etc/init.d/salt-master
            # chkconfig --level 235 salt-master on

             

            # mkdir -p /var/log/salt /srv/salt

             

            # vim /etc/salt/master
            interface: 10.133.33.85
            auto_accept: True

             

            # ln -s /usr/local/bin/salt-master /usr/bin/
            # service salt-master start

             

            # netstat -ntlp

            wKiom1Sf0kyT5tfmAAHOQhhowLw653.jpg

             

            # ps aux | grep python

            wKiom1Sf0sijET1tAAO0_Kr49_s600.jpg

            (2)、minion端
            # mkdir /etc/salt
            # cp -a conf/minion /etc/salt/
            # cp -a pkg/suse/salt-minion /etc/init.d/
            # chmod +x /etc/init.d/salt-minion
            # chkconfig --level 235 salt-minion on

             

            # mkdir -p /var/log/salt

             

            # vim /etc/salt/minion
            master: 10.133.33.85
            id: minion-10-130-87-151

             

            # ln -s /usr/local/bin/salt-minion /usr/bin/
            # service salt-minion start

             

            # ps aux | grep python

            wKioL1Sf1AOhW4LqAADK39r9R4Y882.jpg

             

            4、SaltStack簡(jiǎn)單使用
            ## 查看當(dāng)前的salt key信息
            # salt-key -L
            wKiom1Sf06XTHnz7AACYyu0j3cw532.jpg

            ## 測(cè)試被控主機(jī)的連通性
            # salt '*' test.ping

            wKiom1Sf0-ujfcVrAAB3_5XnO4Q909.jpg

             

            ## 遠(yuǎn)程命令執(zhí)行測(cè)試
            # salt '*' cmd.run 'uptime'

            wKioL1Sf1PKhiFH3AAC4sHQ-dlk870.jpg

             

            ## 根據(jù)被控主機(jī)的grains信息進(jìn)行匹配過(guò)濾
            # salt -G 'os:Centos' test.ping
            wKiom1Sf1JDyTqp4AAB63fXt6hw598.jpg

             

            ## 顯示被控主機(jī)的操作系統(tǒng)類(lèi)型
            # salt '*' grains.item os
            wKiom1Sf1NTxlPsnAACcxbpeFK0008.jpg

             

            ## 遠(yuǎn)程代碼執(zhí)行測(cè)試
            # salt '*' cmd.exec_code python 'import sys; print sys.version'

            wKioL1Sf1cWgTlOxAADseqP5EdA281.jpg

             

            5、常用模塊介紹
            (1)、cp模塊(實(shí)現(xiàn)遠(yuǎn)程文件、目錄的復(fù)制,以及下載URL文件等操作)
            ## 將主服務(wù)器file_roots指定位置下的目錄復(fù)制到被控主機(jī)
            # salt '*' cp.get_dir salt://hellotest /data

             

            ##將主服務(wù)器file_roots指定位置下的文件復(fù)制到被控主機(jī)
            # salt '*' cp.get_file salt://hellotest/rocketzhang /root/rocketzhang

             

            ## 下載指定URL內(nèi)容到被控主機(jī)指定位置
            # salt '*' cp.get_url 
            http://xxx.xyz.com/download/0/files.tgz /root/files.tgz

             

            (2)、cmd模塊(實(shí)現(xiàn)遠(yuǎn)程的命令行調(diào)用執(zhí)行)
            # salt '*' cmd.run 'netstat -ntlp'

             

            (3)、cron模塊(實(shí)現(xiàn)被控主機(jī)的crontab操作)
            ## 為指定的被控主機(jī)、root用戶(hù)添加crontab信息
            # salt '*' cron.set_job root '*/5' '*' '*' '*' '*' 'date >/dev/null 2>&1'
            # salt '*' cron.raw_cron root

             

            ## 刪除指定的被控主機(jī)、root用戶(hù)的crontab信息
            # salt '*' cron.rm_job root 'date >/dev/null 2>&1'
            # salt '*' cron.raw_cron root

             

            (4)、dnsutil模塊(實(shí)現(xiàn)被控主機(jī)通用DNS操作)
            ## 為被控主機(jī)添加指定的hosts主機(jī)配置項(xiàng)
            # salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 rocketzhang.qq.com

             

            (5)、file模塊(被控主機(jī)文件常見(jiàn)操作,包括文件讀寫(xiě)、權(quán)限、查找、校驗(yàn)等)
            # salt '*' file.get_sum /etc/resolv.conf md5
            # salt '*' file.stats /etc/resolv.conf
            更多功能可以看文檔哈 ^_^

             

            (6)、network模塊(返回被控主機(jī)網(wǎng)絡(luò)信息)
            # salt '*' network.ip_addrs
            # salt '*' network.interfaces
            更多功能可以看文檔哈 ^_^

             

            (7)、pkg包管理模塊(被控主機(jī)程序包管理,如yum、apt-get等)
            # salt '*' pkg.install nmap
            # salt '*' pkg.file_list nmap

             

            (8)、service 服務(wù)模塊(被控主機(jī)程序包服務(wù)管理)
            # salt '*' service.enable crond
            # salt '*' service.disable crond

            # salt '*' service.status crond
            # salt '*' service.stop crond
            # salt '*' service.start crond
            # salt '*' service.restart crond
            # salt '*' service.reload crond

            (9)、更多功能
            更多的功能,比如:grains、pillar、states、modules、returner、runners、reactor等,還有如下高級(jí)命令的使用,以及模板配置的渲染、擴(kuò)展模塊的二次開(kāi)發(fā)等,可以自己去深入學(xué)習(xí)哈。

             

            ==========================================================================================
            附錄
            ==========================================================================================
            一些學(xué)習(xí)資料:
            http://docs.saltstack.com/en/latest/ref/modules/all/index.html
            http://docs.saltstack.com/en/latest/ref/modules/index.html
            http://www.saltstack.cn/projects/cssug-kb/wiki
            http://salt-api.readthedocs.org/en/latest/
            http://xiaorui.cc/category/saltstack/
            http://www.shencan.net/index.php/category/%e8%87%aa%e5%8a%a8%e5%8c%96%e8%bf%90%e7%bb%b4/saltstack/
            http://liuping0906.blog.51cto.com/2516248/d-13
            http://lixcto.blog.51cto.com/4834175/d-1
            http://blog.coocla.org/category/saltstack
            http://pengyao.org/

             

            資源站點(diǎn):
            https://github.com/saltstack/
            https://github.com/saltstack-formulas
            https://github.com/cssug

            posted on 2016-12-21 10:16 思月行云 閱讀(887) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 服務(wù)器\Ops
            久久天堂电影网| 久久亚洲精品国产精品婷婷| 亚洲午夜久久久久久久久电影网 | 久久无码AV中文出轨人妻| 热综合一本伊人久久精品| 伊人久久久AV老熟妇色| 热99re久久国超精品首页| 久久精品视频一| 国产精品久久久久久| 午夜精品久久久久久| 青青草原1769久久免费播放| 国产香蕉久久精品综合网| 国内精品久久国产大陆| 亚洲综合久久夜AV | 亚洲午夜久久久精品影院| 一本一本久久A久久综合精品| 亚洲精品高清久久| 伊人久久综合无码成人网| 久久一区二区免费播放| 久久精品国产精品青草 | 久久精品99久久香蕉国产色戒| 久久精品国产99国产精品| AV狠狠色丁香婷婷综合久久 | 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 伊人丁香狠狠色综合久久| 久久亚洲AV成人无码电影| 超级碰碰碰碰97久久久久| 久久艹国产| 国产精品亚洲美女久久久| 久久精品夜夜夜夜夜久久| 久久亚洲国产成人精品性色| 久久99精品国产麻豆宅宅| 狠狠色丁香婷婷久久综合| 久久久黄色大片| 久久精品一区二区三区AV| 午夜欧美精品久久久久久久| 色婷婷综合久久久久中文一区二区| 最新久久免费视频| 精品国产99久久久久久麻豆| 国内精品综合久久久40p| 久久精品国产久精国产果冻传媒|