1.ソルトスタックの概要
1.1Saltstackの概要
SaltStackは、構成管理、リモート実行、監視、その他の機能を備えたサーバーインフラストラクチャの集中管理プラットフォームです。SaltStackは、Python言語の実装に基づいており、軽量メッセージキュー(ZeroMQ)およびPythonサードパーティモジュール(Pyzmq、PyCrypto、Pyjinjia2)と組み合わされています。 、python -msgpackおよびPyYAMLなど)ビルド。SaltStack環境を導入することで、数千台のサーバーでコマンドをバッチで実行し、集中管理を構成し、ファイルを配布し、サーバーデータを収集し、オペレーティングシステムの基盤を構築し、さまざまなビジネス特性に応じてソフトウェアパッケージを管理できます。
1.2Saltstackサービスアーキテクチャ
ソルトスタックアーキテクチャでは、サーバーはマスターと呼ばれ、クライアントはミニオンと呼ばれます。
マスター側とミニオン側の両方がデーモンモードで実行されます
1.3ソルトポート
ソルトをインストールした後、設定を開始します。ソルトマスターはデフォルトで2つのポートでリッスンします。
- 4505publish_portはリモートコマンド送信機能を提供します
- 4506 ret_portは、認証、ファイルサービス、結果収集、およびその他の機能を提供します
2.rpmパッケージのダウンロード
ダウンロードリンク>> https://repo.saltstack.com/yum/redhat/
3.実験環境
ホストタイプ | IP | インストールするアプリ |
---|---|---|
制御機 | 192.168.153.135 | salt、salt-cloud、salt-master、salt-minion、salt-ssh、salt-syndic |
制御されたマシン | 192.168.153.136 | ソルトミニオン |
両方のホストがファイアウォールとselinuxを閉じます
4.コントロールマシンにsaltstackコンソールソフトウェアをインストールします
4.1リポジトリパッケージをインストールします
rpm -ivh salt-repo-latest-2.el7.noarch.rpm
4.2yumキャッシュをクリアする
yum clean all
4.3マスター側に必要なソフトウェアパッケージをインストールします
yum -y install salt salt-cloud salt-master salt-minion salt-ssh salt-syndic
4.4マスターのミニオン構成ファイルを変更する
sed -i '/^#master:/a master: 192.168.153.135' /etc/salt/minion
#Remember: "master:"コロンの後にスペースを追加してから、IPを書き込みます
4.5マスターのsalt-masterとsalt-minionを起動し、スタートアップを自動的に起動するように設定します
systemctl start salt-master
systemctl start salt-minion
systemctl enable salt-master
systemctl enable salt-minion
5.制御対象のマシンにsalt-minionクライアントをインストールします
5.1リポジトリパッケージをインストールします
rpm -ivh salt-repo-latest-2.el7.noarch.rpm
5.2yumキャッシュをクリアする
yum clean all
5.3必要なソフトウェアパッケージをマスターにインストールします
yum -y install salt-minion
5.4マスターのミニオン構成ファイルを変更する
sed -i '/^#master:/a master: 192.168.153.135' /etc/salt/minion
#Remember: "master:"コロンの後にスペースを追加してから、IPを書き込みます
5.5制御された端のソルトミニオンを開始し、自動的に開始するように設定します
systemctl start salt-minion
systemctl enable salt-minion
6.マスターは、認証を待機しているすべてのミニオンキーを受け入れます
salt-key -yA
7.saltstack構成ファイルの概要
saltstack構成ファイルは/ etc / saltディレクトリにあります
構成ファイル | 説明 |
---|---|
/ etc / salt / master | ホスト(制御側)構成ファイル |
/ etc / salt / minion | 制御側構成ファイル |
構成ファイル/ etc / salt / masterのデフォルト構成は非常にうまく機能するため、この構成ファイルを変更する必要はありません。
構成ファイル/ etc / salt / minionの一般的な構成パラメーター
- マスター:マスターのIPを設定します
- id:制御されるエンドマシンの一意の識別子を
設定します。これは、IP名、ホスト名、または構成ファイルの意味のある単語です。構成ファイルの詳細な紹介へのリンク>> https://www.cnblogs.com/shawhe/ p / 10826498.html
8.ソルトスタック認証メカニズム
saltstackのメインコントロールエンドは、openssl証明書に依存して、コントロールエンドホストと通信します。コントロールエンドが開始されると、公開キー証明書ファイルがコントロールエンドに送信され、salt-keyコマンドを使用してで証明書を管理します。コントロールエンド。
salt-minionとsalt-masterの認証プロセス:
- ミニオンが初めて起動されると、/ etc / salt / pki / minion /の下にキーのペアが自動的に生成され、公開キーがマスターに送信されます。
- マスターはミニオンの公開鍵を受け取った後、salt-keyコマンドを介して公開鍵を受け入れます。このとき、マスターの/ etc / salt / pki / master / minionsディレクトリには、minion_idにちなんで名付けられた公開鍵が格納され、マスターは制御コマンドをminionに送信できます。
salt-key常用选项
-L //列出所有公钥信息
-a minion //接受指定minion等待认证的key
-A //接受所有minion等待认证的key
-r minion //拒绝指定minion等待认证的key
-R //拒绝所有minion等待认证的key
-f minion //显示指定key的指纹信息
-F //显示所有key的指纹信息
-d minion //删除指定minion的key
-D //删除所有minion的key
-y //自动回答yes
現在の証明書のステータスを表示する
[root@host-135 master]# salt-key -L
Accepted Keys:
host-135
host-136
Denied Keys:
Unaccepted Keys:
Rejected Keys:
9.saltstackモジュール
9.1すべてのsaltsysモジュールを一覧表示する
salt 'host-136' sys.list_modules
9.2テストモジュールのpingメソッドは、指定されたホストが生きているかどうかをテストします
[root@host-135 master]# salt 'host-136' test.ping
host-136:
True
[root@host-135 master]# salt '*' test.ping
host-136:
True
host-135:
True
9.3pkgモジュール
nginxサービスをインストールします
salt 'host-136' pkg.install "nginx"
nginxサービスバージョンのクエリ
salt 'host-136' pkg.version "nginx"
nginxサービスをアンインストールします
salt 'host-136' pkg.remove "nginx"
9.4サービスモジュール
nginxサービスを開く
salt 'host-136' service.start "nginx"
nginxサービスステータスのクエリ
salt 'host-136' service.status "nginx"
nginxサービスを停止します
salt 'host-136' service.stop "nginx"
9.5 cmdスーパーモジュール、すべてのシェルコマンドを実行できます
salt 'host-136' cmd.run 'ps -ef|grep python'