vm/chef/cookbooks/rabbitmq/recipes/default.rb (64 lines of code) (raw):
# Copyright 2024 Google LLC
#
# 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.
#
# Reference: https://www.rabbitmq.com/install-debian.html#apt-cloudsmith
include_recipe 'rabbitmq::ospo'
# Update sources
apt_update 'update' do
action :update
retries 5
retry_delay 30
end
# Install Deps Packages
package 'Install Deps Packages' do
action :install
package_name node['rabbitmq']['deps_packages']
end
# Configure erlang repository
apt_repository 'erlang_repo' do
uri node['rabbitmq']['erlang']['apt']['uri']
key node['rabbitmq']['erlang']['apt']['key']
components node['rabbitmq']['apt']['components']
keyserver node['rabbitmq']['apt']['keyserver']
distribution node['rabbitmq']['apt']['lsb_codename']
trusted true
end
# Configure RabbitMQ repository
apt_repository 'rabbitmq_repo' do
uri node['rabbitmq']['apt']['uri']
key node['rabbitmq']['apt']['key']
components node['rabbitmq']['apt']['components']
keyserver node['rabbitmq']['apt']['keyserver']
distribution node['rabbitmq']['apt']['lsb_codename']
trusted true
end
# Update sources
apt_update 'update' do
action :update
retries 5
retry_delay 30
end
package 'install_rabbitmq' do
action :install
package_name node['rabbitmq']['packages']
end
# 1. Set the share cookie such that the erlang nodes can communicate
# See https://www.rabbitmq.com/clustering.html#setup
# 2. Increase the maximum number of open file descriptors for rabbitmq-server
bash 'configure_rabbitmq' do
code <<-EOH
service rabbitmq-server stop
echo 'developer-console-rabbitmq' > /var/lib/rabbitmq/.erlang.cookie
echo 'ulimit -n 262144' >> /etc/default/rabbitmq-server
service rabbitmq-server start
EOH
end
c2d_startup_script 'rabbitmq'
# Download the software license
directory '/usr/src/license' do
action :create
end
remote_file '/usr/src/license/RabbitMQ_LICENSE_and_COPYRIGHT' do
source node['rabbitmq']['license_url']
mode '0640'
action :create
end
# Download source code for RabbitMQ
package 'dpkg-dev' do
action :install
end
bash 'download_rabbitmq_sources' do
cwd '/usr/src'
code <<-EOH
apt-get source rabbitmq-server
EOH
end
package 'dpkg-dev' do
action :remove
end