使用Chef来安装CentOS 6.7 + nodejs + npm
相关的文章
-
- Chefを使ってより効率的にサーバを管理しよう。まずは用語から
-
- Berkshelfを使って外部クックブックをノードに適用する。
-
- クックブックを作成してノードに適用する。- その1
-
- クックブックを作成してノードに適用する。- その2
-
- ChefでCentOS 6.7 + rbenv + ruby 2.3.0の環境を構築する。
-
- ChefでCentOS 6.7 + Vim 7.4 + luaを設置する。
-
- ChefでVimプラグインマネージャーNeoBundleを設置する。
-
- Chefのレシピをデバッグしてみよう。
-
- ChefでCentOS 6.7 + nginxを設置する。- 外部クックブック
-
- ChefでCentOS 6.7 + nginxを設置する。- カスタムクックブック
-
- ChefでCentOS 6.7 + nodejs + npmを設置する。
-
- ChefでVimプラグインマネージャーvim-plugを設置する。
-
- ohaiのカスタムプラグインを作ってみよう。
-
- Chef SoloからChef Zeroへ
- Chefでnginx + php(php-fpm) + mariadb + wordpressを設置する。
用Ruby执行JavaScript代码
-
- railsではassets precompileなどのjavascriptの実行のためにtherubyracerというgemを提供している。
-
- しかし、therubyracerはメモリ使用量が大きくてHerokuでは非推奨となっている。
-
- therubyracerの代わりにnodejsを設置することを推奨する。
- どうせphantomjsを設置するためにはnodejsは必要だ。
制作烹饪书籍
- Chef社のSupermarketであるnodejsをみたが、簡単に設置することだけなのに余計に複雑だったので自作する。
% bin/knife cookbook create nodejs -o site-cookbooks
制作食谱
-
- nodeはyumで設置しても構わないが、npmはsourceで設置することを推奨する。
-
- yumで提供するnpmは余計なpackageがたくさん設置されるし古い。
- site-cookbooks/nodejs/recipes/default.rb
package "nodejs" do
action :install
end
execute "install npm" do
command "curl -L https://www.npmjs.com/install.sh | sh"
not_if "which npm"
end
%w(phantomjs).each do |pkg|
execute "npm install #{pkg}" do
command "npm -g install #{pkg}"
not_if "npm -g ls --depth=0 | grep #{pkg}"
end
end
执行结果
% bin/knife node run_list add dev 'recipe[nodejs]' -z
% bin/knife solo cook dev -E development
... snip ...
Recipe: nodejs::default
* yum_package[nodejs] action install
- install version 0.10.42-4.el6 of package nodejs
* execute[install npm] action run
- execute curl -L https://www.npmjs.com/install.sh | sh
* execute[npm install phantomjs] action run
- execute npm -g install phantomjs
在节点上确认
% ssh dev
$ node -v
v0.10.42
$ npm -v
3.7.5
$ npm -g ls --depth=0
/usr/lib
├── npm@3.7.5
└── phantomjs@2.1.3
$ which node
/usr/bin/node
$ which npm
/usr/bin/npm
请参考以上内容。
-
- Chef活用ガイド
- Chef実践入門