Ansible がアドホックを使用してアドホック コマンドを実行する方法

アドホックは、アドホック コマンドを迅速に実行するために Ansible によって提供される方法です。これにより、ユーザーは Playbook を使用せずにコマンドラインから直接 Ansible モジュールを実行できるようになります。Ad-Hoc を使用すると、Ansible の一部の機能を迅速にテストしたり、一部の属性情報を一時的に変更またはクエリしたりすることができます。

例: (アドホック一時コマンドを使用してすべてのホストのホスト ファイルを表示する方法を示します)

ansible all -m shell -a "cat /etc/hosts"

このアドホック コマンドは、Ansible を使用して「date」コマンドを実行し、すべてのリモート サーバーのシステム時間を表示し、指定されたユーザー名「username」でリモート ホストに接続します。

アドホックの構文は非常に単純で、基本的な形式は次のとおりです。
このコマンドの基本的な形式は次のとおりです。

ansible <hosts> -m <module> -a "<arguments>"

の:

  • <hosts>: コマンドを実行する必要があるターゲットホストまたはホストグループ。
  • -m <module>: 使用する必要がある Ansible モジュール。たとえば、ここではシェル モジュールが使用されます。これは、リモート ホスト上でシェル コマンドを実行するために使用されます。
  • -a "<arguments>": モジュールに渡されるパラメータ。ここでは、リモート ホスト上の hosts ファイルの内容を表示するために「cat /etc/hosts」コマンドが使用されます。

したがって、このコマンドは、すべての対象ホスト上でコマンドを実行して、cat /etc/hostshosts ファイルの内容を表示することを意味します。この例では、シェル モジュールが使用されています。これは、Ansible がリモート ホスト上でコマンドを実行し、結果を制御マシンに返すことを意味します。

shellモジュールを使用する場合は注意が必要です。リモート ホスト上で実行されるコマンドはシェルで実行され、セキュリティ上のリスクが生じる可能性があるためですリモート ホストでコマンドを実行する必要がある場合は、より安全なcommandモジュールをお勧めします。

上記のアドホック コマンドは、Ansible コア ライブラリによって提供される Ansible モジュールを実際に実行します。アドホック コマンドを実行すると、Ansible はプレイブックを動的に作成し、リモート ホストに送信します。このプレイブックには、実行されるモジュールと関連パラメーターが含まれています。

Ansible は、まずローカルの Ansible.cfg 設定ファイルとインベントリ ファイルをチェックし、これらのファイルの内容に従って使用するホスト、ユーザー名、パスワード、その他の情報を決定し、広告のパラメータに従ってプレイブックを動的に生成します。 -Hocコマンド。最後に、Ansible は SSH 経由でターゲット ホストに接続し、プレイブックで定義されたコマンドまたはアクションを実行し、結果をローカル システムに返します。

これが Ansible Ad-Hoc の基本原則です。Playbookを書かずにコマンドや検査、デバッグなどを短時間で素早く実行できるのがメリットです。ただし、Playbook を使用する場合よりもスケーラビリティと柔軟性が劣ります。

おすすめ

転載: blog.csdn.net/qq_34185638/article/details/131117354