cookbook 'nssm', '= 3.0.1'
nssm (14) Versions 3.0.1 Follow5
Installs/Configures NSSM
cookbook 'nssm', '= 3.0.1', :supermarket
knife supermarket install nssm
knife supermarket download nssm
NSSM Cookbook
This cookbook installs the Non-Sucking Service Manager (http://nssm.cc), and exposes resources to install
and remove
Windows services.
Requirements
- Chef 12.7+
Platform
- Windows
Usage
Add recipe[nssm]
to run list.
Quick Start
To install a Windows service:
nssm 'service name' do program 'C:\Windows\System32\java.exe' args '-jar C:/path/to/my-executable.jar' action :install end
To remove a Windows service:
nssm 'service name' do action :remove end
Using Parameters
A parameter is a hash key representing the same name as the registry entry which controls the associated functionality.
So, for example, the following sets the Startup directory, I/O redirection, and File rotation for a service:
nssm 'service name' do program 'C:\Windows\System32\java.exe' args '-jar C:/path/to/my-executable.jar' parameters( AppDirectory: 'C:/path/to', AppStdout: 'C:/path/to/log/service.log', AppStderr: 'C:/path/to/log/error.log', AppRotateFiles: 1 ) action :install end
Arguments with Spaces
Having spaces in servicename
, program
and parameters
attributes is not a problem, but spaces in an argument is a
different matter.
When dealing with an argument containing spaces, surround it
with 3 double quotes:
nssm 'service name' do program 'C:\Program Files\Java\jdk1.7.0_67\bin\java.exe' args '-jar """C:/path/with spaces to/my-executable.jar"""' action :install end
When dealing with arguments requiring
interpolation and it contains one or
more arguments with spaces, then encapsulate the args
string using %()
notation and use """
around arguments
with spaces:
my_path_with_spaces = 'C:/path/with spaces to/my-executable.jar' nssm 'service name' do program 'C:\Program Files\Java\jdk1.7.0_67\bin\java.exe' args %(-jar """#{my_path_with_spaces}""") action :install end
Attributes
-
node['nssm']['src']
- This can either be a URI or a local path to nssm zip. -
node['nssm']['sha256']
- SHA-256 checksum of the file. Chef will not download it if the local file matches the checksum.
Resource/Provider
Actions
-
install
- Install a Windows service, and update it accoridngly. (Note: it will NOT automatically restart the service, make sure to notify the according service to restart) -
install_if_missing
- Install a Windows service, but do not update it if present (old behaviour) -
remove
- Remove Windows service.
Attribute Parameters
-
servicename
- Name attribute. The name of the Windows service. -
program
- The program to be run as a service. -
args
- String of arguments for the program. Optional -
parameters
- Hash of key value pairs where key represents associated registry entry. Optional -
start
- Start service after installing. Default` - true
ChefSpec Matchers
The NSSM cookbook includes custom ChefSpec matchers you can use to test your
own cookbooks that consume Windows cookbook LWRPs.
Example Matcher Usage
expect(chef_run).to install_nssm('service name').with( :program 'C:\Windows\System32\java.exe' :args '-jar C:/path/to/my-executable.jar' )
NSSM Cookbook Matchers
- install_nssm(servicename)
- remove_nssm(servicename)
Getting Help
- Ask specific questions on Stack Overflow.
- Report bugs and discuss potential features in Github issues.
Contributing
Please refer to CONTRIBUTING.
License
MIT - see the accompanying LICENSE file for details.
NSSM CHANGELOG
3.0.1 2017-07-07
- Chef 12.7 or higher is now required
- Fix parameters attribute
3.0.0 2017-03-24
- Rename params attribute to parameters to be Chef 13 compatible
2.0.0 2016-10-03
- Drop support for Chef 11
1.2.1 2016-04-12
- Include default recipe in provide only if required
1.2.0 2015-08-09
- Use new install_location attribute everywhere
- Don't try to install nssm if it's already there
1.1.0 2015-02-06
- Add an attribute for the install location of nssm.exe
1.0.0 2014-12-17
- Remove deprecated matchers
- Ensure nssm is being installed before service is installed
0.2.0 2014-10-08
- Chef cache path no longer hard coded
- Chefspec matchers comply with naming convention
0.1.0 2014-09-21
- Initial release using nssm v2.24
Collaborator Number Metric
3.0.1 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
3.0.1 passed this metric
License Metric
3.0.1 passed this metric
Testing File Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 passed this metric
3.0.1 failed this metric
3.0.1 passed this metric
License Metric
3.0.1 passed this metric
Testing File Metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 passed this metric
3.0.1 passed this metric
3.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.1 passed this metric
3.0.1 passed this metric