127 lines
5.2 KiB
Markdown
127 lines
5.2 KiB
Markdown
# memcached Cookbook
|
|
|
|
[](https://travis-ci.org/chef-cookbooks/memcached) [](https://supermarket.chef.io/cookbooks/memcached)
|
|
|
|
Provides a custom resource for installing instances of memcached. Also ships with a default recipe that uses attributes to configure a single memcached instance on a host.
|
|
|
|
## Requirements
|
|
|
|
### Platforms
|
|
|
|
- Debian / Ubuntu and derivatives
|
|
- RHEL and derivatives
|
|
- Fedora
|
|
- openSUSE/SLES
|
|
|
|
### Chef
|
|
|
|
- Chef 12.7+
|
|
|
|
### Cookbooks
|
|
|
|
- runit (not used by default)
|
|
|
|
## Attributes
|
|
|
|
The following are node attributes are used to configure the command line options of memcached if using the default.rb recipe. They are not used if using the memcached_instance custom resource.
|
|
|
|
- `memcached['memory']` - maximum memory for memcached instances.
|
|
- `memcached['user']` - user to run memcached as.
|
|
- `memcached['port']` - TCP port for memcached to listen on.
|
|
- `memcached['udp_port']` - UDP port for memcached to listen on.
|
|
- `memcached['listen']` - IP address for memcache to listen on, defaults to **0.0.0.0** (world accessible).
|
|
- `memcached['maxconn']` - maximum number of connections to accept (defaults to 1024)
|
|
- `memcached['max_object_size']` - maximum size of an object to cache (defaults to 1MB)
|
|
- `memcached['logfilepath']` - path to directory where log file will be written.
|
|
- `memcached['logfilename']` - logfile to which memcached output will be redirected in $logfilepath/$logfilename.
|
|
- `memcached['threads']` - Number of threads to use to process incoming requests. The default is 4.
|
|
- `memcached['experimental_options']` - Comma separated list of extended or experimental options. (array)
|
|
- `memcached['extra_cli_options']` - Array of single item options suchas -L for large pages.
|
|
- `memcached['ulimit']` - maxfile limit to set (needs to be at least maxconn)
|
|
|
|
## Usage
|
|
|
|
This cookbook can be used to to setup a single memcached instance running under the system's init provider by including `memcached::default` on your runlist. The above documented attributes can be used to control the configuration of that service.
|
|
|
|
The cookbook can also within other cookbooks in your infrastructure with the `memcached_instance` custom resource. See the documentation below for the usage and examples of that custom resource.
|
|
|
|
## Custom Resources
|
|
|
|
### instance
|
|
|
|
Adds or removes an instance of memcached running under the system's native init system (sys-v, upstart, or systemd). For backwards compatibility there is also a runit provider that can be used if desired.
|
|
|
|
#### Actions
|
|
|
|
- :start: Starts (and installs) an instance of memcached
|
|
- :stop: Stops an instance of memcached
|
|
- :enable: Enabled (and installs) an instance of memcached to run at boot
|
|
- :restart: Restarts an instance of memcached
|
|
|
|
#### Properties
|
|
|
|
- :memory - the amount of memory allocated for the cache. default: 64
|
|
- :port - the TCP port to listen on. default: 11,211
|
|
- :udp_port - the UDP port to listen on. default: 11,211
|
|
- :listen - the IP to listen on. default: '0.0.0.0'
|
|
- :maxconn - the maximum number of connections to accept. default: 1024
|
|
- :user - the user to run as
|
|
- :binary_path - path of memcached binary, when set we assume memcached is already installed
|
|
- :threads - the number of threads to use
|
|
- :max_object_size - the largest object size to store
|
|
- :experimental_options - an array of experimental config options, such as: ['maxconns_fast', 'hashpower']
|
|
- :extra_cli_options - an array of additional config options, such as: ['-L']
|
|
- :ulimit - the ulimit setting to use for the service
|
|
- :template_cookbook - the cookbook containing the runit service template. default: memcached
|
|
- :disable_default_instance - disable the default 'memcached' service installed by the package. default: true
|
|
- :no_restart - disable the service restart on configuration change. default: false
|
|
- :log_level - The level at which we log, default to 'info'. Choose from: 'info', 'debug', 'trace' which map to '-v', '-vv' or '-vvv' arguments.
|
|
|
|
#### Examples
|
|
|
|
Create a new memcached instance named super_custom_memcached:
|
|
|
|
```ruby
|
|
memcached_instance 'super_custom_memcached' do
|
|
port 11_212
|
|
memory 128
|
|
end
|
|
```
|
|
|
|
Stop and disable the super_custom_memcached instance:
|
|
|
|
```ruby
|
|
memcached_instance 'super_custom_memcached' do
|
|
action :remove
|
|
end
|
|
```
|
|
|
|
Specify the runit provider to maintain legacy behavior (including optional usage of legacy actions)
|
|
|
|
```ruby
|
|
memcached_instance_runit 'super_custom_memcached' do
|
|
action :create
|
|
end
|
|
```
|
|
|
|
## License & Authors
|
|
|
|
- Author:: Cookbook Engineering Team ([cookbooks@chef.io](mailto:cookbooks@chef.io))
|
|
|
|
```text
|
|
Copyright:: 2009-2016, Chef Software, Inc
|
|
Copyright:: 2009, 37signals
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
```
|