4、python自動化運行メンテナンス——集中化管理プラットフォームSaltstack


集中化管理プラットフォーム——Saltstack
Saltstckはサーバインフラストラクチャの集中化管理プラットフォームとして、配置管理、リモート実行、監視などの機能を備えている.簡略版のpuppet,補強版のfuncと簡単に理解できる.くだらないことはあまり言わないで,直接手に入れなさい.
1、Saltstackのインストールと構成
インストールに必要なコンポーネント:マスタ端子:salt-master被制御端子:salt-minion
インストール手順
1、saltstackを配備するyumソースとして必要なepelをインストールする:yum install-y epel
2、salt-master/salt-minion:yum install-y salt-masteryum install-y salt-minionをインストールする
3、サービス起動の設定:systemctl enable salt-master/systemctl enable salt-minion
4、メイン制御端にファイアウォールiptables-A INPUT-p tcp--dport 4405-j ACCEPTiptables-A INPUT-p tcp--dport 4406-j ACCEPTを追加する
5、サービス側の構成とクライアント側の構成を修正してメインコントロール側の構成を修正する(/etc/salt/master):
interface: 192.168.118.132 #  Master  IP
auto_accept: True #    
file_roots:
 base:
- /srv/salt
#  SaltStack    

マスタ端子SaltStack:service restart salt-masterの再起動
制御側構成の変更(/etc/salt/minion)
master:192.168.118.132 #  Master  IP  
id:mbb_server #       ID

制御されたSaltStack:service restart salt-minionの再起動
インストール結果の確認:salt'*'test.ping
2、常用モジュール及びAPI
saltstackは非常に豊富な機能モジュールを提供し、オペレーティングシステムの基礎機能、一般的なツールのサポートに関連しています.
API呼び出しの例:
import salt.clientclient = salt.client.LocalClient()
Archiveモジュール(gunzip,gzip,rar,tar,unrar,unzipをサポート)
1、機能:システムレベルの圧縮パッケージ呼び出しを実現し、gunzip、gzip、rar、tar、unrarをサポートする
    :
salt ‘*’ archive.gunzip /tmp/mbb.txt.gz
    
salt ‘*’ archive.gzip /tmp/mbb.txt

2、API呼び出し
client.cmd(‘*’,’archive.gzip’,[‘/tmp/mbb.txt’])

cmdモジュール
1、機能:リモートのコマンドライン呼び出し実行を実現する(デフォルトはroot操作権限を備え、使用時にリスクを評価する必要がある)
    :
salt ‘*’ cmd.run “free -m”

2、API呼び出し
client.cmd(‘*’,’cmd.run’,[‘free -m’])

cpモジュール
1、機能:リモートファイル、ディレクトリのコピー、及びURLファイルのダウンロードなどの操作を実現する
                    :
salt ‘*’ cp.cache_local_file /etc/hosts

cronモジュール
1、機能:制御ホストのcrontab操作を実現する
        
salt ‘mbb_208’ cron.raw_cron root
       、root    echo 1 > mbb.txt    
salt ‘mbb_208’ cron.set_job root ‘*’ ‘*’ ‘*’ ‘*’ 1 “echo 1 > mbb.txt”
        ,root  crontab echo 1 > mbb.txt     
salt 'mbb_208' cron.rm_job root "echo 1 > lsk.txt"

2、API呼び出し
client.cnd(‘mbb_208’,’cron.rm_job’,[‘root’*’,’*’,’*’,’*’,1,”echo 1 > mbb.txt”])

iptablesモジュール
1、制御ホストのiptables操作を実現する
  iptables  
salt 'mbb_208' iptables.insert filter INPUT position=1 rule="-p tcp --dport 4405 -j ACCEPT"
salt 'mbb_208' iptables.append filter INPUT rule="-p tcp --dport 4406 -j ACCEPT"

  iptables  
salt 'mbb_208' iptables.delete filter INPUT  position=1

2、API呼び出し
client.cmd('mbb_208','iptables.insert',['filter','INPUT','position=1','rule=\'-p tcp --dport 21 -j ACCEPT\''])

Networkモジュール
1、機能:制御されたネットワーク情報を返す
  dig,ping,traceroute      
salt 'mbb_208' network.dig www.baidu.com
salt 'mbb_208' network.ping www.baidu.com
salt 'mbb_208' network.traceroute www.baidu.com
            mac  
salt 'mbb_208' network.hwaddr eth0
           
salt  mbb_208' network.interfaces
      ip      
salt 'mbb_208' network.ip_addrs
         
salt 'mbb_208' network.subnets

2、API呼び出し
client.cmd('mbb_208','network.interfaces')

pkgモジュール
1、機能:制御ホストのプログラム管理、例えば:yum,apt-get
  php
salt ‘mbb_208’ pkg.install php
  php
salt ‘mbb_208’ pkg.remove php
  php
salt ‘mbb_208’ pkg.upgrade php

2、API呼び出し
client.cmd(‘mbb_208’,’pkg.install’,[‘php’])

サービスモジュール
1、機能:制御ホストのパッケージサービス管理
salt 'mbb_208' service.start httpd
salt 'mbb_208' service.stop httpd
salt 'mbb_208' service.reload httpd
salt 'mbb_208' service.restart httpd
salt 'mbb_208' service.status httpd
salt 'mbb_208' service.enable httpd
salt 'mbb_208' service.disable httpd

2、API呼び出し
client.cmd(‘mbb_208’,’service.start’,[‘nginx’])

grainsコンポーネント
grainsはSaltstackの最も重要なコンポーネントの一つであり、grainsの役割は制御された側の基本情報を収集することであり、これらの情報は一般的にCPU、カーネル、オペレーティングシステム、仮想化などの静的クラスのデータである.
         grains  
salt ‘*’ grains.items

制御されたホスト側で特定のgranisデータをカスタマイズ
       , /etc/salt/minion.d/    ,  ”*.conf”    
grains:
  roles:
    - webserver
    - memcache
  deployment: datacenter4
  cabinet: 13
    :
salt 'mbb_208' grains.item roles deployment cabinet