使用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実践入門
广告
将在 10 秒后关闭
bannerAds