Fabric は、「ローカルまたはリモートのシェル コマンドを実行する」ためのツールです。
長い Fabric スクリプトでリモート シェル スクリプトを 1 行ずつ再実装するのはなぜですか?
つまり、代わりに長いリモート シェル スクリプトを実行する簡単な Fabric スクリプトを作成しないのはなぜでしょうか?
Fabric は、「ローカルまたはリモートのシェル コマンドを実行する」ためのツールです。
長い Fabric スクリプトでリモート シェル スクリプトを 1 行ずつ再実装するのはなぜですか?
つまり、代わりに長いリモート シェル スクリプトを実行する簡単な Fabric スクリプトを作成しないのはなぜでしょうか?
lobster1234 は、10 台のサーバーに長いリモート シェル スクリプトを手動で貼り付ける必要がないことを示しています。ただし、長いリモート シェル スクリプトを長い Fabric スクリプトとして書き直すことを避けたい場合は、そのリモート シェル スクリプトを指定されたサーバーにコピーし、そのスクリプトを実行してからスクリプトを削除する Fabric スクリプトを作成できます。このようにして、fabfile とシェル スクリプトの両方をまとめてリビジョン管理できますが、シェル スクリプトを Fabric スクリプトに書き換える必要はありません。
たとえば、10 台のサーバーで同じスクリプトを実行する必要がある場合、それは得策ではありません。これは、同じ長いスクリプトを 10 台のサーバーに適用するだけでなく、1 台のサーバーでスクリプトを変更した場合、その変更をすべてのサーバーに適用する必要があることを意味します。スクリプトを共有の場所に保存することでこれを回避できることはわかっていますが、スクリプトを fabfile に保存する方がはるかに整理されています。これにより、バージョン管理ができるだけでなく、すべての役割にわたって均一に保つことができます。
また、何をしようとしているのかによって、選択する道も変わってくると思います。Python の方が簡単な場合 (fabfile に記述) もあれば、シェルランドの方が簡単な場合もあります (前述のシェル アプローチのいずれかを使用します)。
いずれにせよ、ファブリックは集中化と移植性を目的としているため、実際に何がリフティングを行っているかは問題ではありません。