• <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
            <2016年8月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910


            專注即時通訊及網游服務端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標準模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉載,并在文章開頭給出了原文出處,如有再轉,敬請保留相關信息,這是大家對原創作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215481
            • 排名 - 118

            最新評論

            閱讀排行榜

            本文原創版權歸 51CTO Workming 所有,此處為轉載,如有再轉請于文章篇頭處標明原文出處,以示尊重!
            原文:
            http://sofar.blog.51cto.com/353572/1596960/

            ==========================================================================================
            一、基礎介紹
            ==========================================================================================
            1、簡介
            SaltStack是一個服務器基礎架構集中化管理平臺,具備配置管理、遠程執行、監控等功能,一般可以理解為簡化版的puppet和加強版的func。SaltStack基于Python語言實現,結合輕量級消息隊列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構建。

            通過部署SaltStack環境,我們可以在成千上萬臺服務器上做到批量執行命令,根據不同業務特性進行配置集中化管理、分發文件、采集服務器數據、操作系統基礎及軟件包管理等,SaltStack是運維人員提高工作效率、規范業務配置與操作的利器。

             

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

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

            wKiom1Sfzhmy2-OTAAIPxayI-Z4556.jpg

             

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

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

             

            4、Master與Minion的連接
            (1)、SaltStack master啟動后默認監聽4505和4506兩個端口。4505(publish_port)為saltstack的消息發布系統,4506(ret_port)為saltstack客戶端與服務端通信的端口。如果使用lsof 查看4505端口,會發現所有的minion在4505端口持續保持在ESTABLISHED狀態。

            wKioL1Sf0JHwhBhaAAEsYS9e6HE690.jpg

             

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

            wKiom1Sfzr-i8BUjAAF0EW4NxyY818.jpg

             

            5、本次測試環境

            IP地址

            角色

            系統環境

            10.133.33.85

            master

            CentOS 6.3

            10.130.87.151

            minion

            CentOS 6.3

             

            ==========================================================================================
            二、SaltStack基礎安裝與配置
            ==========================================================================================
            1、依賴組件說明
            http://docs.saltstack.com/en/latest/topics/installation/index.html

            wKioL1Sfz__ws2EVAANpFr96RiE332.jpg

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

             

            解壓源碼后,這些文本文件里也有組件依賴相關說明哈:

            wKioL1Sf0NaTTpjDAARykJLGBv0733.jpg

             

            2、SaltStack基礎安裝
            (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頭文件拷貝到標準目錄,以避免編譯saltstack時,找不到所需的頭文件
            # cd /usr/local/include/python2.7
            # cp -a ./* /usr/local/include/

             

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

             

            ## 修改yum腳本,使其指向舊版本的python,已避免其無法運行
            # 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

             

            注意:
            系統自帶的autoconf版本為2.63,在編譯ZeroMQ時,由于版本較低,會報錯不通過,故需安裝大于2.63的版本。

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

             

            ## 其他依賴庫安裝
            # 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

            如果出現以上報錯,執行以下命令:
            # 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

            然后再重新對python-2.7.8進行編譯安裝即可解決以上問題。

             

            # vim/etc/ld.so.conf

            /usr/local/lib

            /usr/local/lib64

             

            # /sbin/ldconfig

            # cd Python-2.7.8
            # make && make install

             

            注意:
            如果openssl庫在python之前已經安裝,就不會出現這種情況,也無需經歷此步驟,此處更多的是想說明一下組件之間的依賴關系,作為提醒。

             

            (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通信模式所依賴的模塊,作為可選項,非必要。

             

            (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簡單使用
            ## 查看當前的salt key信息
            # salt-key -L
            wKiom1Sf06XTHnz7AACYyu0j3cw532.jpg

            ## 測試被控主機的連通性
            # salt '*' test.ping

            wKiom1Sf0-ujfcVrAAB3_5XnO4Q909.jpg

             

            ## 遠程命令執行測試
            # salt '*' cmd.run 'uptime'

            wKioL1Sf1PKhiFH3AAC4sHQ-dlk870.jpg

             

            ## 根據被控主機的grains信息進行匹配過濾
            # salt -G 'os:Centos' test.ping
            wKiom1Sf1JDyTqp4AAB63fXt6hw598.jpg

             

            ## 顯示被控主機的操作系統類型
            # salt '*' grains.item os
            wKiom1Sf1NTxlPsnAACcxbpeFK0008.jpg

             

            ## 遠程代碼執行測試
            # salt '*' cmd.exec_code python 'import sys; print sys.version'

            wKioL1Sf1cWgTlOxAADseqP5EdA281.jpg

             

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

             

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

             

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

             

            (2)、cmd模塊(實現遠程的命令行調用執行)
            # salt '*' cmd.run 'netstat -ntlp'

             

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

             

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

             

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

             

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

             

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

             

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

             

            (8)、service 服務模塊(被控主機程序包服務管理)
            # 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等,還有如下高級命令的使用,以及模板配置的渲染、擴展模塊的二次開發等,可以自己去深入學習哈。

             

            ==========================================================================================
            附錄
            ==========================================================================================
            一些學習資料:
            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/

             

            資源站點:
            https://github.com/saltstack/
            https://github.com/saltstack-formulas
            https://github.com/cssug

            posted on 2016-12-21 10:16 思月行云 閱讀(881) 評論(0)  編輯 收藏 引用 所屬分類: 服務器\Ops
            国产V综合V亚洲欧美久久| AV无码久久久久不卡蜜桃 | 亚洲欧洲中文日韩久久AV乱码| 美女写真久久影院| 久久一区二区三区免费| 伊人久久大香线蕉综合Av| 久久精品无码一区二区无码| Xx性欧美肥妇精品久久久久久| 久久久久久毛片免费看 | 国产精品久久99| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 日本国产精品久久| 99久久人妻无码精品系列| 久久国产成人| 国产一级做a爰片久久毛片| 久久最新免费视频| 久久夜色精品国产亚洲| 午夜天堂精品久久久久| 欧美激情精品久久久久久久九九九| 亚洲AV无码久久精品狠狠爱浪潮| 精品久久久久久久中文字幕| 久久亚洲中文字幕精品有坂深雪| 精品久久久久久无码中文野结衣| 久久水蜜桃亚洲av无码精品麻豆| 久久性精品| 青青草原1769久久免费播放| 91精品国产9l久久久久| 久久精品国产亚洲AV不卡| 久久人人爽人人爽人人片AV麻豆 | 2021久久精品免费观看| 国产精品久久久久久福利漫画| 伊人久久大香线蕉综合5g| 久久性精品| 日本精品久久久久影院日本| 精品乱码久久久久久夜夜嗨| 久久99毛片免费观看不卡| 久久精品亚洲精品国产色婷| 国产成人久久精品一区二区三区| 日韩av无码久久精品免费| 久久亚洲AV成人无码电影| 久久ww精品w免费人成|