A cookbook for mosquitto, a MQTT server, client, etc.
Tested on:
- Centos 6
- Ubuntu 12.04
... but Centos 5, Mac OSX, Debian, various flavours of Ubuntu should work.
repo
- Adds the repository if needed for various packages
server
- Recipe to install service packages
client
- Recipe to install client and language bindings
default
- Installs everything
source
- Recipe to install from source - centos only
{
"run_list": ["recipe[mosquitto]", "recipe[mine]"],
"mosquitto": {
"listeners": [
{"port": 1883, "addr": "127.0.0.1"}
]
}
}
Don't forget to start the service
service 'mosquitto' do
action :start
end
Deploy to /etc/mosquitto and run on ports 1883 and 8883 with security.
{
"run_list": ["recipe[mosquitto]", "recipe[mine]"],
"mosquitto": {
"path": "/etc/mosquitto/",
"listeners": [
{"port": 1883, "addr": "127.0.0.1"},
{"port": 8883},
{"port": 9001, "protocol": "websockets"}
],
"tls_version": "tlsv1",
"cafile": "ca.crt"
"certfile": "server.crt"
"keyfile": "server.key"
}
}
Don't forget to start the service
service 'mosquitto' do
action :start
end
Don't forget to set up your keys.
%w{server.key ca.crt server.crt}.each do |file_name|
file "#{node['mosquitto']['path']}/#{node['mosquitto'][file]}" do
content content File.read(#{Chef::Config[:file_cache_path]}/site-cookbooks/your-app/files/default/#{file_name}")
action :create_if_missing
notifies :restart, "service[mosquitto]"
end
end
listeners[]
- An array of port/address hashes to listen on. Addr is optional. Defaults to 8883
and 1883
path
- Override the automatically guessed path
bridges
- An array of bridge connections to make.
{
"mosquitto": {
"bridges": [{
"connection": "test-mosquitto-org"
"address": "test.mosquitto.org",
"cleansession": "true",
"topics": ["clients/total in 0 test/mosquitto/org $SYS/broker/"]
}]
}
}
All of the standard configuration options are supported.
See http://mosquitto.org/man/mosquitto-conf-5.html for more.