puppet连载21:搭建rabbitmq

简介: rabbitmq 3.6.6cd /puppet/softwget http://www.rabbitmq.com/releases/erlang/erlang-19.

rabbitmq 3.6.6

cd /puppet/soft
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
mkdir -p /etc/puppet/modules/linuxrabbitmq/{manifests,files,templates}


写配置文件

vi /etc/puppet/modules/linuxrabbitmq/templates/rabbitmq-env-3.6.6.conf.erb

RABBITMQ_NODE_IP_ADDRESS=0.0.0.0

RABBITMQ_NODE_PORT=<%= real_rabbitmq_port %>

RABBITMQ_NODENAME=<%= real_rabbitmq_name %>

RABBITMQ_CONFIG_FILE="/etc/rabbitmq/rabbitmq.conf"

RABBITMQ_MNESIA_BASE="/var/lib/rabbitmq/mnesia"

RABBITMQ_LOG_BASE="/var/log"

RABBITMQ_PLUGINS_DIR="/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/plugins"


cp /usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example /etc/puppet/modules/linuxrabbitmq/templates/rabbitmq-3.6.6.conf.erb

vim /etc/puppet/modules/linuxrabbitmq/manifests/init.pp
class linuxrabbitmq::rabbitmq366 {

real_rabbitmq_port=rabbitmq_port ? { '' => '5672',default => rabbitmq_port }real_rabbitmq_mana_port=rabbitmq_mana_port ? { '' => '15672',default =>rabbitmq_mana_port }
real_rabbitmq_erl_port=rabbitmq_erl_port ? { '' => '25672',default => rabbitmq_erl_port }real_rabbitmq_name=rabbitmq_name ? { '' => 'rabbitmq@fqdn',default => $rabbitmq_name }

file {"/usr/local/src/erlang-19.0.4-1.el7.centos.x86_64.rpm":
source => "puppet:///soft/erlang-19.0.4-1.el7.centos.x86_64.rpm",
ensure => file,
mode => 755,owner => root,group => root,
notify => Exec["rpm erlang-19.0.4-1.el7.centos.x86_64.rpm"],
}
file {"/usr/local/src/rabbitmq-server-3.6.6-1.el7.noarch.rpm":
source => "puppet:///soft/rabbitmq-server-3.6.6-1.el7.noarch.rpm",
ensure => file,
mode => 755,owner => root,group => root,
notify => Exec["yum rabbitmq-server-3.6.6-1.el7.noarch.rpm"],
require => File["/usr/local/src/rabbitmq-signing-key-public.asc"],
}
file {"/usr/local/src/rabbitmq-signing-key-public.asc":
source => "puppet:///soft/rabbitmq-signing-key-public.asc",
ensure => file,
mode => 755,owner => root,group => root,
notify => Exec["rpm rabbitmq-signing-key-public.asc"],
require => File["/usr/local/src/erlang-19.0.4-1.el7.centos.x86_64.rpm"],
}
exec {"rpm erlang-19.0.4-1.el7.centos.x86_64.rpm":
command => "rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
cwd => "/usr/local/src",
refreshonly => true,
}
exec {"rpm rabbitmq-signing-key-public.asc":
command => "rpm --import rabbitmq-signing-key-public.asc",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
cwd => "/usr/local/src",
refreshonly => true,
}
exec {"yum rabbitmq-server-3.6.6-1.el7.noarch.rpm":
command => "yum -y install rabbitmq-server-3.6.6-1.el7.noarch.rpm",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
cwd => "/usr/local/src",
refreshonly => true,
before => Service["rabbitmq-server"],
}
exec {"firewallrabbitmqport":
command => "firewall-cmd --add-port real_rabbitmq_port/tcp --permanent && firewall-cmd --add-portreal_rabbitmq_mana_port/tcp --permanent && firewall-cmd --add-port real_rabbitmq_erl_port/tcp --permanent && firewall-cmd --reload", path => ["/usr/sbin","/usr/bin","/bin","/sbin"], provider => shell, unless => "firewall-cmd --list-port|tr ' ' '\n'|grep 'real_rabbitmq_port/tcp'",
}
service {"rabbitmq-server":
ensure => running,
enable => true,
}
exec {"rabbitmq_management":
command => "rabbitmq-plugins enable rabbitmq_management&&rabbitmqctl add_user root root&&rabbitmqctl set_user_tags root administrator&&rabbitmqctl set_permissions -p / root '.' '.' '.*'",
path => ["/usr/sbin","/usr/bin","/bin","/sbin"],
require => Service["rabbitmq-server"],
unless => "rabbitmqctl list_users|grep root",
}
file {'/etc/rabbitmq/rabbitmq-env.conf':
ensure => file,
mode => 755,owner => root,group => root,
content => template("/etc/puppet/modules/linuxrabbitmq/templates/rabbitmq-env-3.6.6.conf.erb"),
backup => '.bak',
notify => Service["rabbitmq-server"],
require => Exec["yum rabbitmq-server-3.6.6-1.el7.noarch.rpm"],
}
file {'/etc/rabbitmq/rabbitmq.conf':
ensure => file,
mode => 755,owner => root,group => root,
content => template("/etc/puppet/modules/linuxrabbitmq/templates/rabbitmq-3.6.6.conf.erb"),
backup => '.bak',
notify => Service["rabbitmq-server"],
require => Exec["yum rabbitmq-server-3.6.6-1.el7.noarch.rpm"],
}
}


调用

node 'huangat-test' {
rabbitmq_port = 5672rabbitmq_mana_port = 15672
$rabbitmq_erl_port = 25672
include linuxrabbitmq::rabbitmq366
}


相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
9月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
813 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
安全 Python
在Python中,什么是线程安全的数据结构?
在Python中,什么是线程安全的数据结构?
581 2
|
并行计算 Java API
【Java】Java18的新特性
【Java】Java18的新特性
216 3
|
安全 算法 调度
C++队列探秘:队列容器的使用技巧与实战案例解析
C++队列探秘:队列容器的使用技巧与实战案例解析
380 0
|
小程序 JavaScript 前端开发
4大主流小程序平台介绍及其优缺点对比
小程序是一种轻量级应用程序,能够在手机上直接运行,无需下载安装,适用于一些简单的功能场景,如点餐、预约、查看天气等。以下是目前主流的小程序平台及其优缺点对比
3367 0
|
分布式计算 Hadoop Java
PySpark数据分析基础:Spark本地环境部署搭建
PySpark数据分析基础:Spark本地环境部署搭建
1620 0
PySpark数据分析基础:Spark本地环境部署搭建
|
开发工具 Android开发
Android 11 替换Launcher后导致近期任务无效
Android 11 替换Launcher后导致近期任务无效
1261 0
Android 11 替换Launcher后导致近期任务无效
|
缓存 小程序 API
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
3287 0
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
|
Linux Android开发 索引
Linux--内核Uevent事件机制 与 Input子系统【转】
转自:http://blog.csdn.net/lxl584685501/article/details/46379453   [-] 一Uevent机制 Uevent在kernel中的位置 Uevent的内部逻辑解析 二Input子系统  从应用层的角度出发看input子系统 输入设备上报事件的处理过程 通过设备节点读取输入事件 通过设备节点写入输入事件 总结   一、Uevent机制 1.前提摘要 (1)Sysfs文件系统          内核设备模型主要的模块和用户之间能看到的相关部分就是sysfs文件系统了。
3388 0