問題タブ [chef-infra]
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.
php - シンプルな LAMP 開発のための Chef/Fabric/Puppet に代わるものはありますか?
私は最終的に、スキルを向上させ、ビジネスを成長させるために、ソフトウェア設計プロセスを正しく学ぶことに専念しました. これは、バージョン管理 (git) を採用し、開発 - ステージング - 運用環境をセットアップし、これらの環境を可能な限り同様に構成することを意味します。
サーバー設定を自動化して同期するためのソリューションを選択するという最後のステップに本当に追いついています。Chef、Puppet、Fabric について調べてみましたが、私の目的からすると、どれも複雑すぎるように思えます。私は:
- 単一サーバーでの小さな Web アプリの開発
- 中程度の PHP と UNIX のスキルを備えた LAMP 環境での開発
- 環境変数を大幅に変更することはありません (主に php.ini、Apache 構成)
複雑な Chef 環境をマスターしたり、Fabric を使用するために Python を学習したりするよりも簡単に実装できるソリューションに関する推奨事項をいただければ幸いです。必要に応じてこれを行うことができますが、非常に単純なニーズを考えると、より基本的でエレガントなソリューションがあることを願っています。
ruby-on-rails - シェフの展開?
Capistrano から Chef への切り替えに興味がありますが、すべての要素をまとめるのにいくつか問題があります。
http://wiki.opscode.com/display/chef/Quick+Startに従って、EC2 インスタンスをknife
. コードの展開に関しては、 http://wiki.opscode.com/display/chef/Deploy+Resourceにあることをやりたいように見えますが、唯一の問題は、そのページのどこにもどのディレクトリに言及されていないかということです/file デプロイ/to/path
コード ブロックを配置する必要があります。
私が抱えているもう 1 つの問題は、サーバーのセットアップ後にコードの変更をデプロイする方法を理解することです。おそらく、私は現在のワークフロー ( git push && cap deploy
) に慣れているだけですが、変更をコミットした後、サーバーに ssh してsudo chef-client
? それについての何かが間違っていると感じます。同等のキャップはありませんchef deploy
か?
最後に (これは少し難しいかもしれませんが)、複数の Rails アプリを 1 つのサーバーにデプロイしようとしています。展開の詳細を説明する各アプリのレポにある種のシェフ構成ファイルを保持することは賢明なようですが、それがシェフレポ/ホストされたサーバーとどのようにやり取りするかはわかりません。各アプリはロールですか? また、物事がどのように機能するかについての私の理解から、「chef-client」が実行時にすべてのアプリケーションをデプロイしようとするという考えにも少し不安があります。git push && cap deploy
私は自分が展開しているものを確信しています。一方、他のアプリケーション リポジトリの一部はデプロイ可能な状態ではない可能性があります。このセットアップで 1 つのアプリだけをデプロイする方法はありますか?
ruby-on-rails - シェフのデプロイリソースで変更をデプロイする方法は?
シェフの展開で別の質問がありますか? それはおそらく少し範囲が広すぎます。そこで、ここでより具体的な質問をします。
サーバーがセットアップされた後、 chef のDeploy Resourceを使用してコードの変更をデプロイする方法を教えてください。おそらく、私は現在の capistrano ワークフロー (「git push && cap deploy」) に慣れているだけですが、変更をコミットした後、サーバーに ssh して「sudo シェフ」を実行することになっていることがわかります。 -クライアント"?それについての何かが間違っていると感じます。キャップに相当するもの、つまり「chef deploy」はありませんか?
ruby - Chef がレシピを読み込むときに存在しない Ruby ライブラリへの依存関係を設定するにはどうすればよいですか?
シナリオ:
- Recipe1: アーカイブをダウンロードして展開します。Ruby ライブラリも定義する CLI を利用できるようにします。
- Recipe2: 前述のライブラリの Ruby API を活用します。
レシピ1/recipes/default.rb:
レシピ2/recipes/default.rb:
ただし、レシピをロードすると、Chef は次のようにアナウンスします。
すべてのレシピが実行中に Ruby ライブラリを宣言/有効化するにはどうすればよいですか?
git - vagrant+chefセットアップでパスフレーズ付きのsshキーを使用する
vagrantを使用してVMを実行していて、Chefでプロビジョニングしています。手順の1つは、gitリポジトリのクローンを作成することですが、私のssh-key(ホストマシン上)にはパスフレーズがあります。
を実行するvagrant up
と、プロセスはgit cloneステップで失敗し、次のエラーが発生します:(
Permission denied (publickey). fatal: The remote end hung up unexpectedly
キーがパスフレーズを使用してホストマシンに追加されました)
私は次のようにしてsshエージェント転送でこれを解決しようとしました:
VMの
追加config.ssh.forward_agent = true
にVagrantFile
追加Defaults env_keep = "SSH_AUTH_SOCK
/etc/sudoers
さて、vagrant up
git cloneの部分に到達するとまだ失敗しますが、vagrant provision
その後実行すると合格します。これは、VMが起動され、リロードされないときにssh構成がセットアップされるためだと思います。
これらの2つの設定を調整した後、sshをリロードしようとしましたが、それは役に立ちませんでした。
これを解決する方法はありますか?
ありがとう。
ruby - Chef シェル スクリプトが実行されていない
私はScalariumで Chef を使用して、エージェントをダウンロードし、さまざまなコマンドを実行しています。私が試みているのは、これを実行するためにレシピにシェルスクリプトを書くことです.
Scalarium でレシピを実行すると、エラーは発生しませんが、コマンドも実行されません。コンピューターで実行したため、コマンド自体にエラーはありません。
シェフのログに含まれているため、レシピは間違いなく読み取られますProcessing file[/etc/profile.d/blah.sh] on blah.localdomain
。
これまで Chef を使用したことがありません。シェル スクリプトを実行するように指示するために何か他のことをする必要がありますか?
ruby - Chef シェル スクリプトの相互作用
execute
コマンドを使用してリポジトリに接続し、デーモンをインストールしてから、構成して起動するシェフのレシピがあります。
実行時apt-get install
に、必要なスペースの量を決定した後、続行するにはユーザーの確認 (Y/N 入力) が必要です。これをChefでプログラム的にどのように行うことができますか?
amazon-ec2 - Chefを使用したパッケージのアンインストール
私はChefを使用してサーバーを管理しています。
私のroles/app.rbは次のようになります。
次に、nginxパッケージをマシンから削除したいと思います。run_listのnginxレシピを削除すると、ノードからnginxが削除されますか?そうでない場合は、ノードで変更管理を行うための最良の戦略を教えてください。
ruby - ubuntu 10.04のchef-soloブートストラップ
先週、私はchef-soloで遊んでいて、多くの質問があります.
ruby 1.9.2-p290 と Ubuntu 10.04 を使用したいので、rvm のようなものを使用する必要があるようです。
Chef-solo で RVM を使用する必要がありますか?
RVM を使用している場合、「システム全体」または「ユーザーごと」にインストールする必要がありますか?
または、代わりにUbuntu 11.04サーバーを使用し、apt-getを介してルビーを使用する必要がありますか?
ruby - たとえば not_if で使用できる値を返す関数/アクション/...をchefで定義する方法
私は現在シェフを学んでおり、プロビジョニングを繰り返しても何も壊れないようにすべてを記述しようとしています。
マシンにデプロイされたサーバーがあり、そこにいくつかのコードがロードされています。次回のプロビジョニング時に、コードが既にロードされているかどうかを最初にテストしたいと思います。そして、さまざまなレシピで使用するため、一般的な方法でそれを行いたい. 私の考えは、関数/定義/などを定義することです。条件をテストして値を返す関数を呼び出すことができます。この function/... を他のアクションの not_if 句で使用できることを願っています。
シェフで定義/アクション/プロバイダー/...を使用してこれを行う方法はありますか?または、ルビっぽいものをどこかに追加する必要がありますか?