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):
マスタ端子SaltStack:service restart salt-masterの再起動
制御側構成の変更(/etc/salt/minion)
制御された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をサポートする
2、API呼び出し
cmdモジュール
1、機能:リモートのコマンドライン呼び出し実行を実現する(デフォルトはroot操作権限を備え、使用時にリスクを評価する必要がある)
2、API呼び出し
cpモジュール
1、機能:リモートファイル、ディレクトリのコピー、及びURLファイルのダウンロードなどの操作を実現する
cronモジュール
1、機能:制御ホストのcrontab操作を実現する
2、API呼び出し
iptablesモジュール
1、制御ホストのiptables操作を実現する
2、API呼び出し
Networkモジュール
1、機能:制御されたネットワーク情報を返す
2、API呼び出し
pkgモジュール
1、機能:制御ホストのプログラム管理、例えば:yum,apt-get
2、API呼び出し
サービスモジュール
1、機能:制御ホストのパッケージサービス管理
2、API呼び出し
grainsコンポーネント
grainsはSaltstackの最も重要なコンポーネントの一つであり、grainsの役割は制御された側の基本情報を収集することであり、これらの情報は一般的にCPU、カーネル、オペレーティングシステム、仮想化などの静的クラスのデータである.
制御されたホスト側で特定のgranisデータをカスタマイズ
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