問題タブ [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 - CapistranoにGitサブディレクトリをデプロイする
私のマスターブランチのレイアウトは次のようになります。
/ <-トップレベル
/client <-デスクトップクライアントのソースファイル
/ server <-Railsアプリ
私がやりたいのは、私の/ serverディレクトリをプルダウンすることだけdeploy.rb
ですが、それを行う方法が見つからないようです。/ clientディレクトリは巨大であるため、/ serverを/にコピーするためのフックを設定してもうまく機能せず、Railsアプリをプルダウンするだけで済みます。
svn - SVNのみのホストをgitリポジトリからプルするにはどうすればよいですか?
ファイルを手動でアップロードするのではなく、ホストにGitリポジトリからプルさせたいのですが、Gitがインストールされていません。
では、Subversion(彼らが持っている)をだましてGitリポジトリをチェックアウトさせる方法はありますか?
私はすでに答えを知っていると思います。つまり、ホストにGitを追加して、Gitが追加されるまでそれを使用するようにバグを報告しますが、とにかく質問したいと思いました。
ruby-on-rails - Subversionに関してベンダーディレクトリをどうすればよいですか?
だから私は問題があります。あなたがそうするはずがないのに、私は凍った宝石とレールをチェックインしました。私はそれが簡単で、とにかくそれほど大したことではないだろうと思いました。後で、私はrailsを更新し、そうすることで、vendor/railsディレクトリ内のすべての.svnファイルを削除しました。私が本当にすべきことは、ベンダーディレクトリへのsvn:externalsと関係があると聞いています。私は正確に何をする必要がありますか、そしてcapistranoは私のレポにない場合でも私の冷凍宝石を使用しますか?凍結されたgemを使用しない場合、これらの.svnファイルを正しく再生成するにはどうすればよいですか。これは再び発生するためです。
ありがとう!
ruby-on-rails - Ruby on Rails の環境ベースの構成ファイルのベスト プラクティスは何ですか?
アプリケーションが実行されている環境に依存するプロパティがいくつかあります。たとえば、ヘッダーとフッターに表示される、並行して開発されている別のアプリケーションへのリンクがあります。それらのリンクは、それらが置かれている環境に応じて異なるものにしたいと考えています。
これは、システム管理者が開発サーバーでも「本番」モードで mongrel を実行しているため、すぐに使用できる環境構成ファイルの使用方法とは少し異なります。私のラップトップでは、mongrel を「開発」モードでのみ実行しています。
このような状況を処理するための標準的な方法はありますか? または、開発サーバーでmongrelを「開発」モードで実行する必要があります。その場合、env 階層に余分なレベルがあるとどうなりますか。(開発、テスト、UAT、本番)
ruby-on-rails - 雑種のクラスターのローリング再起動を行う方法
カピストラーノを介して「ローリング」スタイルで雑種クラスターを再起動する良い方法、たとえば一度に1つの雑種を再起動する良い方法を誰もが知っています。雑種がレールアプリもロードできるように、それぞれに少しの待ち時間があるといいでしょう。
私はいくつかの検索を行いましたが、あまり見つけられなかったので、自分で mongrel_cluster gem に飛び込む前に助けを探しています。
ありがとう!
ruby-on-rails - キャップ呼び出しとsudo
すべてのアプリケーション サーバーに gem をインストールしたいのですが、gem のインストールには sudo アクセスが必要です。この capistrano コマンドを実行するためだけに sudo を有効にするにはどうすればよいですか?
つまり、コマンドラインでこのコマンドを呼び出すときだけ、すべての展開レシピに sudo を使用したくありません。
ruby-on-rails - JRuby on RailsアプリケーションをTomcatにデプロイするための最良の方法は何ですか?
テストのために、Ruby on Railsアプリ(JRubyで実行)をTomcatインスタンスにデプロイする方法を検討しています。
Tomcatインスタンスは、SSHで接続できるSolarisサーバーで実行されています。Capistranoの使用を検討しましたが、Tomcatにデプロイするために使用することや、JRubyで実行することについてはあまり多くないようです。また、Windows / JRuby環境が原因で、Capistranoでバグが発生し続けています。私のPCは実行されています(ええ、それは企業です-私の選択ではありませんが、私はそれと一緒に暮らす必要があります)。
warbleを使用して.warファイルをビルドしています。手動でコピーしてデプロイすると、アプリは正常にデプロイおよび実行されます。実際にそこに到達するために、もっと簡単で自動化されたものが欲しいのです。
誰かが前にこれをしましたか?Web上のドキュメントはかなり薄いようです。
ruby-on-rails - CapistranoがMongrelクラスターを適切に再起動しない
nginxで実行されている3つの雑種のクラスターがあり、Capistrano2.4.3を使用してアプリをデプロイします。実行中のシステムがあるときに「キャップデプロイ」すると、動作は次のようになります。
- アプリがデプロイされます。コードは正常に更新されました。
cap deployの出力には、次のものがあります。
- "sudo -p'sudo password:' mongrel_rails cluster :: restart-C/var/www/rails/myapp/current/config/mongrel_cluster.yml"を実行しています
- サーバー:["myip"]
- [myip]コマンドの実行
- ** [out::myip]ポート9096を停止します
- ** [out::myip]ポート9097を停止します
- ** [out::myip]ポート9098を停止します
- ** [out::myip]はすでにポート9096を開始しています
- ** [out::myip]はすでにポート9097を開始しています
- ** [out::myip]はすでにポート9098を開始しています
- サーバーをすぐに確認すると、Mongrelがまだ実行中であり、前の3つのインスタンスのPIDファイルがまだ存在していることがわかります。
- しばらくして(1分未満)、Mongrelが実行されなくなり、PIDファイルがなくなり、再起動に失敗しました。
- サーバー上で手動で雑種犬を起動すると、アプリは正常に起動します。
'mongrel_rails cluster :: restart'は、クラスターの再起動を試みる前に、完全な停止を適切に待機していないようです。この問題を診断して修正するにはどうすればよいですか?
編集:答えは次のとおりです。
mongrel_clusterは、「再起動」タスクで、これを実行するだけです。
「開始」を呼び出す前に、プロセスが終了したことを確認するための待機やチェックは行いません。これは、未解決のパッチが提出された既知のバグです。パッチをMongrelClusterに適用すると、問題は解消されました。
ruby-on-rails - カピストラーノ+シン+ユーザーがsudoすることを許可されていないnginxのハウツー?
カピストラーノを使用してRuby on Railsアプリケーションをデプロイしたい、次のようなシナリオがあります。
- Web アプリケーションはシン クラスタ上にあり、設定ファイルは /etc/thin に保存されています。また、init スクリプトは /etc/init.d/thin にあるため、サーバーの再起動が必要になるたびに自動的に開始されます。
- また、nginx も同じ方法で実行されます (init スクリプト デーモンとして)
- 誰かが私のウェブサーバーをハッキングした場合に備えて、あまりにも恐ろしいことをさせたくないので、ウェブユーザーは sudo を許可されていません。
- Thin と nginx の両方が Web ユーザーとして実行され、そのようなセキュリティが適用されます
デプロイを行う必要がある場合は、/home/webuser/railsapps/helloworld にファイルをインストールする必要があります。その後、cap スクリプトでシンを再起動する必要があります。すべてのファイルを webuser が所有するようにしたいので、cap スクリプトのプライマリ ユーザーは webuser として実行されます。webuserがsudoできないため、シンデーモンを再起動したいときに問題が発生します。
ファイル展開用の webuser と、デーモンを再起動するための特別な sudoer という 2 つの個別のセッションを呼び出すことが可能かどうかを考えています。誰かがこれに関するサンプルスクリプトを教えてもらえますか?
java - Java のカピストラーノ?
私は Capistrano の大ファンですが、Java のみのショップ用に自動展開スクリプトを開発する必要があります。私は Ant と Maven を見てきましたが、Capistrano のようにリモート管理に適しているようには見えません。単純にアプリケーションを構築してパッケージ化することに重点を置いているようです。そこにもっと良いツールはありますか?