私はfabricを使ってWebプロジェクトをインストールしてデプロイし、その間にPostgreSQLデータベースを作成し、RabbitMQサーバを設定する必要があります。これらの操作は双方向であり、データベースの作成、ユーザーの追加、パスワードの設定など(少なくとも私の知る限り)、ユーザーからの入力が必要です。Fabricを使用して対話型シェルコマンドを実行できますか?
ファブリックスクリプトを使用して、これらのような中間シェル操作を実行できますか?
私はfabricを使ってWebプロジェクトをインストールしてデプロイし、その間にPostgreSQLデータベースを作成し、RabbitMQサーバを設定する必要があります。これらの操作は双方向であり、データベースの作成、ユーザーの追加、パスワードの設定など(少なくとも私の知る限り)、ユーザーからの入力が必要です。Fabricを使用して対話型シェルコマンドを実行できますか?
ファブリックスクリプトを使用して、これらのような中間シェル操作を実行できますか?
これはFabric 1.0です。私はそれを試して、それは私のために働く。
古いバージョンのFabric(および同様の高水準SSHライブラリ)では、リムーバブルでリモートプログラムが実行されるため、ローカルエンドからはアクセスできません。これは、パスワードを入力したり、リモートプログラムとやり取りしたりする必要があるときに問題になります。
ファブリック1.0以降では、この壁が崩壊し、常に相手側と話すことができます。
編集:Payne氏は、以下の注意事項として、ファブリック1.0がリリースされました。これを示す答えを編集しました。
Fabric 1.0は3月6日にリリースされました。 – payne
Expectを知っていますか? http://www.noah.org/wiki/pexpect –
ほとんどの(うまく作られた)インストーラは対話型の質問を避ける方法を持っているか、あるいは答えをスクリプト化するための設定を提供しています。 'expect'や'pexpect'に入る前に、それを調べるほうがもっと有利かもしれません。 – JimB