単一のコマンドを使用して複数のコンピュータにSFTP

単一のコマンドを使用して複数のコンピュータにSFTP

1つのSFTPコマンドで2台のコンピュータにファイルを転送したいと思います。可能ですか?

ベストアンサー1

習慣。 SFTP コマンドは単一の接続で発生します。

ターゲットコンピュータのリストを取得し、そのコンピュータからファイルをコピーし、コマンドを実行し、状態と成功を継続的に確認する簡単なプログラムが必要なようです。

そのようなツールがたくさんあります!私が主に使うのはアンシプール

デフォルトでは、両方のコンピュータグループに名前を付けるファイルが作成されます。私たちはそれを次のように呼びますinventory.ini

[karthiksmachines]
machine1
machine2

(もちろん、machine1コンピュータmachine2のホスト名またはIPアドレスに置き換えてください)

その後、次のコマンドを実行して動作しているかどうかをテストできます。

ansible -i inventory.ini karthiksmachines -m ping

machine1 | SUCCESS =>…のような素晴らしい出力を得る必要がありますmachine2。 (そうしないと、SSHアクセスキーが正しく設定されていない可能性があります。)

うまくいけばいいですね!今書いてみましょうスクリプトつまり、各コンピュータで実行される一連の作業です。このファイルをと呼びましょうplaybook.yaml

- name: Maintain the machines of Karthik
  hosts: karthiksmachines
  tasks:
   - name: Copy file over
     ansible.builtin.copy:
       src: /path/to/your/local/file.ext
       dest: /path/where/the/file/should/end/file.ext

推測できるように、リストにさらに多くのタスクを追加できますtasks:。通常、これらのタスクには、セキュリティ更新プログラムのインストール、ログファイルのダウンロード、またはサーバー上のサービス設定が含まれます。どちら!

次にプレイブックを起動します。

ansible-playbook -i inventory.ini playbook.yaml

だからそれはすべてです。管理したいマシンを1つのファイルに入れ、そのマシンで実行するコマンドを別のファイルに入れたら、コマンドを実行する必要があります。 :)

私はこれが非常に簡単だと思うので、すべてのサーバーで実行されるすべてのタスク、特にソフトウェアのインストール、サービスの構成、ユーザーの作成などのタスクについてそうしようとします。
これには、他のサーバーを追加する必要がある場合は、マニフェストに追加してプレイブックを実行できるという大きな利点があります。再現可能なサーバー!

おすすめ記事