問題タブ [capistrano]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rubyでファイルの最初の行を読み取る
Rubyを使用して、ファイルの最初の行だけを、可能な限り最も速く、最も単純で、最も慣用的な方法で読み取りたいと思います。最善のアプローチは何ですか?
(具体的には、最新のCapistranoでデプロイされたRailsディレクトリのREVISIONファイルからgit commit UUIDを読み取り、それをタグに出力します。これにより、サーバーにデプロイされているバージョンをhttp-glanceで確認できます。 。これを行うためのまったく異なる、より良い方法がある場合は、私に知らせてください。)
svn - CapistranoとSubversionを使用したデプロイ。作業コピーがロックされました
作業コピーがロックされているために失敗するCapistranoを使用してDebianサーバーにデプロイしています。私はそれをこれに絞り込みました:
だから私が実行した場合:
エラーが発生します:
クリーンアップは違いはありません。同じコマンドがサーバーから正常に実行されます。1234 /でファイルを一覧表示すると、すべての.svnファイルと作業コピーファイルが表示されます。
誰かがこれを解決するために正しい方向に私を向けることができますか?作業コピーが本当にロックされているかどうかはどうすればわかりますか?svn status
何も表示されません。
git - capistrano を使用して異なる git ブランチからデプロイする
カピストラーノを使用して RoR アプリケーションをデプロイしています。コードベースは git リポジトリにあり、分岐は開発で広く使用されています。Capistrano はdeploy.rb
その設定に file を使用します。そのうちの 1 つはデプロイ元のブランチです。
私の問題はこれです: masterから新しいブランチAを作成するとしましょう。deploy ファイルはmasterブランチを参照します。それを編集して、Aをテスト環境にデプロイできるようにします。機能の作業を終了し、ブランチAをmasterにマージします。Aからのファイルはより新しいため、マージされ、マスターブランチ内でAが参照されます。もう一度編集する時間。deploy.rb
deploy.rb
これは、一見不必要な手動編集の多くです。パラメーターは常に現在のブランチ名と一致する必要があります。その上、毎回設定を編集するのを忘れがちです。
このプロセスを自動化する最良の方法は何でしょうか?
編集:誰かがすでに私が必要としていたことを正確に行っていることがわかりました:
今朝、ステージング サーバーに git リポジトリのブランチをデプロイする機会がありましたが、その方法がまったくわかりませんでした。capistrano のソース コードをざっと検索したところ
:branch "branch_name"
、デプロイ スクリプトで set を使用できることがわかりました。私はそれを試してみましたが、うまくいきました。次に、すべてのブランチで同様の変更を行う必要があると考えました。もちろん、私は怠け者なので、もっと良い方法はないかと考えました。git に慣れていない場合、git branch コマンドの出力は、ローカル マシンで現在チェックアウトされているブランチを示すアスタリスクが付いたブランチのリストです。例えば:
したがって、出力を解析して、最新としてマークされたブランチを検索するとどうなるかを考えました。
これで、単一の共有デプロイ スクリプトから、ローカル マシンに最新のブランチをデプロイできるようになりました。
capistrano - capistranoタスクにいくつかのステップをどのように追加しますか?
deploy:migrateタスクを実行する前に、いくつかのプロセスを停止したいと思います。既存のコードをコピーし、タスクの最初と最後に停止/開始ステップを追加することで、deploy:migrateタスクを再定義できることを知っています。
私のバージョンのタスクで、デフォルトのdeploy:migrateタスクからコードをコピーしないようにする方法があるかどうか疑問に思っています。同じ名前の新しいタスクを定義するときに、既存のdeploy:migrateタスクを参照する方法はありますか?
java - Java 環境の適切なデプロイメントと管理はありますか?
Hudson には既に優れたビルド サーバーがありますが、サーバーを起動およびシャットダウンし、ソフトウェアの新しい展開をプッシュできるものが必要です (これは、単一の WAR または EAR がどこかに行くよりもはるかに複雑です。コピー、抽出、名前の変更など)、および自動化したいその他のさまざまなタスク。
私は SmartFrog (一般的に使用されているというよりは主にアカデミックなようです)、ControlTier (あなたの複雑さに合わせて非常に複雑です)、Capistrano (Ruby と Rails に焦点を当てています)、および Func (ドキュメントはまったくありません。MediaWiki は拭きました)。この種のことに対する 80/20 の優れたソリューションはありませんか。確かに、すべてのオーバーヘッドなしで ControlTier が提供する多くの機能を提供するツールを手に入れることができます。
別の方法は、すべてを実行する Ant スクリプト (おそらく既存の Hudson サーバーから利用可能) か、何らかのタイプの Hudson プラグインですらありますが、それは私には不器用に感じられ、解決策としては好きではありません (さらに、次の場合に何かを再構築する可能性があります)。その必要はありません)。
良い代替案を教えてください。
ruby-on-rails - Railsアプリケーションを複数の環境にデプロイする
真の実稼働環境にデプロイする準備をしています。私が本当と言うときは、サーバー上に他のがらくたがあり、実際に本番マシンになるための新しい大きなスライスを作成しているため、現在の本番環境がステージングされることを意味します。
capistrano-ext gemにより、デプロイレシピの分離が非常に簡単になりました。ただし、私が遭遇する問題の1つは、あるスライスから別のスライスにコードを取得することです。プロダクションに使用するステージングスライスにgitリポジトリを設定しています。フローは次のようになります。
ローカルで開発ローカルでテストローカルからステージにプッシュステージでテストステージから本番にプッシュ...
したがって、ステージングと本番の間に安全な接続を確立する方法が明らかに必要です。本番環境にデプロイすると、「アクセスが拒否されました(公開キー)」が表示されます。これが設定されていないため、エラーが発生します。この接続を確立するにはどうすればよいですか?本番サーバーでキーを生成し、ステージングに公開する必要がありますか?本番サーバーのどのユーザーがステージングサーバーに接続しようとしているのかを知るにはどうすればよいですか?
bash - Capistrano :シェルの例
現在、カピストラーノを使用して、魅力的に機能する Web アプリケーションをデプロイしています。
私の新しいプロジェクトでは、sudo /bin/bash シェルからコマンドを実行する必要があります。
Capistrano がユーザー X としてマシンにログインし、sudo /bin/bash を実行し、パスワードを入力して、sudo シェルでコマンドを実行することは可能ですか? はいの場合、例を教えてください。
よろしく
ヤコブ
ruby-on-rails - カピストラーノは再起動せず、停止しますが、更新は機能しています
私は最近マシンを変更し、Rails を更新する際に大まかな箇所がいくつかありました。サーバー自体はそのままでした。すべてが順調に見えましたが、カピストラーノではありませんでした。変更を加えてSVNを更新すると、実行中
リポジトリの正しい新しいバージョンがサーバーに配置されます。capistrano を実行しているターミナルでのログには異常はありませんが、サーバーが引き続き実行されているため、実際には再起動が行われないことは明らかです。ランニング
プロデュース
しかし、明らかな変化はありません。何が起こっているのでしょうか?サーバーの Mongrel ログには何の変更も表示されません。更新より前の古いバージョンがまだ実行されています。
ruby-on-rails - Capistranoはワイプデータベースを展開しますか?
Capistranoを使用してアプリを本番環境にデプロイできましたが、データベースの処理方法がわかりません。私はsubversionとpassengerを使用しています。
cap deployを実行すると、新しいデプロイメントですべてが新しく開始されます。データベースに追加されたデータを一掃します。明らかに、解決策があるはずですが、これに対処する方法についてオンラインで何も見つからないことに非常に驚いています。Capistranoのドキュメントと多くのチュートリアルを読みました。
私が見つけることができる最高のものは、ユーザー生成コンテンツを共有ディレクトリに入れることについて説明しているAdvanced Railsレシピ本ですが、それは正確には正しいわけではありません。
Capistranoを使用して展開する場合、データベースをどのように処理しますか?