知人Ansible 01

自動化された運用・保守ツールは、機能の実装、メンテナンスコスト、選択するために使用されるシステムから、いくつかの一般的な操作とメンテナンスツールを比較し、多くのとおりです。

人形ベースのRuby開発は、SSLに基づくC / Sアーキテクチャ、スケーラビリティは、リモートコマンドの実行は比較的弱いです

SaltStackのPythonベースの開発、C / Sアーキテクチャ、比較的軽量な人形、YAML構文の構成なので、その簡単な構成スクリプト

使用テンプレート言語、複数のリモートコマンド実行操作へのPython paramiko開発に基づいて、分散型、ないクライアント、軽量、およびJinja2のYAMLの設定構文Ansible。

 

そう。Ansible!


 

Ansibleはじめと機能

ansibleはPythonの開発に基づいて自動化ツールの操作やメンテナンスは、バッチシステム設定、バッチ展開、バッチ実行コマンドの機能を実現することが可能です。

次のような機能は次のとおりです。

完全にPythonの開発に基づいてAnsibleはPythonのバージョン2.6以降が必要です。

組み込みモジュール、ほぼ600の機能モジュールが完全に日常のニーズを満たすのAnsible Aの富

SSHプロトコル経由Ansibleデフォルトの管理マシンので、クライアントがどのような構成の後に使用する必要はありません、管理側の構成が良いです

 

Ansibleアプリケーション環境:

アプリケーションコードの自動展開

システム管理の自動化

継続的デリバリの自動化をサポートしています

サポートクラウドコンピューティング、ビッグデータプラットフォーム環境

バッチタスクの実行は、スクリプトに記述することができ、あなたがリモート実行できるために配布しません。

root以外のユーザー管理操作、サポートsudoをサポートしています

pythonを使って書かれ、簡単に維持するために、

 

Ansible基本的なアーキテクチャ

  • ansibleコア
  • コアは、コアモジュールをモジュール:分配ansibleに付属しているモジュールは、リモート・ノードへAnsibleモジュールのリソースが特定のタスクを実行したり、特定の状態と一致します。
  • カスタムは、拡張モジュールをmodeles:コアモジュールは、特定の機能を実行するのに十分でない場合は、拡張モジュールを追加することができます。
  • プラグインプラグイン:完全な小さなタスク。補助モジュールは、特定の機能を完了します。
  • プレイブックバッチジョブの設定ファイル:ansibleタスク構成ファイル、スクリプト内で定義された複数のタスクをansibleによって自動的に実行されます。nginxのようなサービスをインストールすると、我々はいくつかのタスクのために脚本にこれを分割することができます。例えば:nginxの最初のステップは、インストールパッケージをダウンロードすることです。私は必要性を検討することができる第二のステップは、ターゲットサーバnginx.conf書かれた私の前にして、文書を構成することです。第3のステップは、我々はサービスを起動する必要があります。第四のステップは、我々はポートが正常に開いているかどうかを確認する必要があります。これらのステップは、次に脚本により一体化した後、スクリプトを実行するホスト上の在庫を通じて次に送信することができます。
  • ホストインベントリホストグループは、複数のホストを定義する:デフォルトは、操作を実行するターゲット・マシンへのSSH接続に基づいているプラ​​グインの各ホストへの接続に基づいてansible接続が、それはまた、他の接続方法をサポートするプラグイン接続、管理側の必要そう経営側を接続するローカル、SSH、paramiko三つの方法をサポートしています。
  • 接続は、接続プラグインは、リモートホスト部の接続プラグイン:ポリシー定義ansible管理ホストを、一般的な唯一の小規模な環境では、ホストファイルのホストIPアドレスへの書き込みに必要がありますが、大規模な環境に、あなたは、静的または動的ホストインベントリリストの来世を使用する必要があります目標は、ホストを実行する必要があります。

 

Ansibleタスク実行プロセス

 

タスクの実行プロセス:

実行の順序を押し下げ:

1)設定を読み込む:設定ファイルがansible読みます

2)管理されるすべてのクロールのマシンまたはグループのリスト:hostsファイルに対応するリストからホストのリストを()

3)使用のホスト・パターンフィルタマシンのリストに:マシンが何をするフィルタ

4)実行モジュールおよび構成パラメータ:モジュールまたはモジュールディレクトリから動的読み出し、演算モジュール行うリモートホストの機能に応じて

5)ランナーを実行し、リターン:詳細な二つのステップ:接続リンク - その後、特定のマシンのリスト、変数/リソースファイルへのアクセス - 接続モード、アクションフェイズを定義します

6)出力端:端を管理するフィードバックの結果の実装

 

どのように動作します:

管理ホスト(またはスクリプト実行コマンド)の遠位端の管理、実行結果管理フィードバックのリモート・ホスト・エンド

具体的に:

首先管理端需要安装ansible工具;

其次配置ansible配置文件(/etc/ansible/ ansible.cfg)和定义被控制的主机或分组列表(/etc/ansible/hosts)并对相关主机变量进行定义;

然后ansible执行模块,将管理端本地执行路径(~/.ansible/tmp)将操作执行(命令或脚本),通过local/ssh/paramiko方式传到远端主机用户目录下(~/.ansible/tmp)并执行;

最后将执行结果反馈至管理端

 

おすすめ

転載: www.cnblogs.com/liuxc83/p/12382075.html