|
class rabbitmq {
include rabbitmq::exec1,rabbitmq::file1,rabbitmq::file2,rabbitmq::file3,rabbitmq::exec2,rabbitmq::exec3,rabbitmq::service,rabbitmq::exec4
}
class rabbitmq::file1 {
file{"otp":
name =>"/opt/rabbitmq/erlang-18.2-1.el6.x86_64.rpm", ///下载到本地/opt/rabbitmq目录下
mode =>0700, ///赋予权限
source =>"puppet:///modules/rabbitmq/erlang-18.2-1.el6.x86_64.rpm",
require => Class[rabbitmq::exec1], ///rabbitmq::exec1执行成功后执行
}
}
class rabbitmq::file2 {
file{"rabbitmq":
name =>"/opt/rabbitmq/rabbitmq-server-3.6.0-1.noarch.rpm",
mode =>0700,
source =>"puppet:///modules/rabbitmq/rabbitmq-server-3.6.0-1.noarch.rpm",
require => Class[rabbitmq::exec1],
}
}
class rabbitmq::file3 {
file{"rabbitmqsh":
name =>"/opt/rabbitmq/rabbitmquser.sh",
mode =>0700,
source =>"puppet:///modules/rabbitmq/rabbitmquser.sh",
require => Class[rabbitmq::exec1],
}
}
class rabbitmq::exec1{
exec{"create rabbit_mq":
command => "mkdir /opt/rabbitmq", ///创建/opt/rabbitmq目录
path => ["/usr/bin","/usr/sbin","/bin","/sbin"],
creates => "/opt/rabbitmq", /// /opt/rabbitmq目录不存在才会执行
}
}
class rabbitmq::exec2 {
exec {"install otp":
cwd =>"/opt/rabbitmq", ///目录存在的情况下执行command
command =>"rpm -ivh erlang-18.2-1.el6.x86_64.rpm", ///安装erlang
path => ["/usr/bin","/usr/sbin","/bin","/sbin"],
logoutput => on_failure, ///日志记录输出
require => Class[rabbitmq::file1],
}
}
class rabbitmq::exec3{
exec{"install rabbitmq":
cwd =>"/opt/rabbitmq",
command =>"rpm -ivh rabbitmq-server-3.6.0-1.noarch.rpm",
path => ["/usr/bin","/usr/sbin","/bin","/sbin"],
logoutput => on_failure,
require => Class[rabbitmq::exec2],
}
}
class rabbitmq::service{
service {"rabbitmq-server": ///启动rabbitmq-server
ensure => running,
enable => true,
require => Class[rabbitmq::exec3],
}
}
class rabbitmq::exec4{
exec{"add user":
command => "sh /opt/rabbitmq/rabbitmquser.sh", ///执行rabbitmq创建用户并且开启WEB界面
path => ["/usr/bin","/usr/sbin","/bin","/sbin"],
require => Class[rabbitmq::service],
}
}
rabbitmquser.sh 脚本
#!/bin/bash
rabbitmqctl add_user rabbitmq rabbitmq
rabbitmqctl set_user_tags rabbitmq administrator
rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"
rabbitmq-plugins enable rabbitmq_management
|
|