Installs and manages your versions of node.js in chef with nodebrew
Role based example:
run_list(
'recipe[nodebrew]'
)
override_attributes(
:nodebrew => {
:nodes => [
{ :version => '0.11.5' },
{ :version => '0.10.15', :binary => true }
],
:use => '0.10.15',
:npm => {
'0.11.5' => [
'underscore',
'coffee-script'
],
'0.10.15' => [
'underscore',
'[email protected]',
{ :name => 'bower', :version => '1.1.2', :action => 'install' }
]
}
}
)
Librarian-Chef is a bundler for your Chef cookbooks. To install Librarian-Chef:
cd chef-repo
gem install librarian
librarian-chef init
To reference the Git version:
repo="linyows/nodebrew-cookbook"
latest_release=$(curl -s https://api.github.com/repos/$repo/git/refs/tags \
| ruby -rjson -e '
j = JSON.parse(STDIN.read);
puts j.map { |t| t["ref"].split("/").last }.sort.last
')
cat >> Cheffile <<END_OF_CHEFFILE
cookbook 'nodebrew', :git => 'git://github.com/$repo.git', :ref => '$latest_release'
END_OF_CHEFFILE
librarian-chef install
why-run support.
Key | Description | Default |
---|---|---|
repository | nodebrew git repository | https://github.com/hokaccha/nodebrew.git |
ref | git ref | master |
upgrade | sync | true |
root | nodebrew root | /usr/local/lib/nodebrew |
user | nodebrew user | root |
Action | Description | Default |
---|---|---|
install | install nodebrew to nodebrew_root | yes |
Attribute | Description | Default |
---|---|---|
repository | nodebrew git repository | https://github.com/hokaccha/nodebrew.git |
ref | git ref | master |
upgrade | sync | true |
root | nodebrew root | $HOME/.nodebrew |
user | nodebrew user | root |
Install nodebrew to custom path
nodebrew '/usr/local/lib/nodebrew'
Install nodebrew for a user
nodebrew '/usr/local/lib/nodebrew' do
ref 'v0.6.3'
user 'vagrant'
end
Action | Description | Default |
---|---|---|
install | install node.js | yes |
uninstall | uninstall node.js | no |
Attribute | Description | Default |
---|---|---|
version | node.js version | |
binary | install by binary | false |
Install node.js
nodebrew_node '0.11.5'
Install node.js by binary
nodebrew_node '0.11.5' do
binary true
end
Action | Description | Default |
---|---|---|
install | install package by npm | yes |
uninstall | uninstall package by npm |
Attribute | Description | Default |
---|---|---|
name | resource name | |
package | node package name | |
version | package version | nil |
node_version | node version | nil |
path | install path to local | nil |
package_json | install by package.json | false |
Install node package
nodebrew_npm 'underscore'
Install node package with version
nodebrew_npm '[email protected]'
Install with option
nodebrew_node 'underscore' do
version '1.5.1'
node_version '0.11.5'
path '/var/www/app'
package_json true
end
MIT License