Created
July 13, 2015 20:33
-
-
Save gpduck/74593bc39752d3ec3c98 to your computer and use it in GitHub Desktop.
Startup a temporary RabbitMQ Server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$TempPath = [IO.Path]::GetTempPath() | |
$SBin = "C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.3.60710\sbin" | |
$NodeNameBase = [IO.Path]::GetFileNameWithoutExtension([IO.Path]::GetRandomFileName()) | |
$NodeName = "$NodeNameBase@$Env:COMPUTERNAME" | |
$RabbitBase = Join-Path $TempPath $NodeNameBase | |
$ErlangHome = "c:\Program Files\erl7.0" | |
$RabbitPort = 5672 | |
$MgmtPort = 15672 | |
[Environment]::SetEnvironmentVariable("RABBITMQ_BASE", $RabbitBase, "Process") | |
[Environment]::SetEnvironmentVariable("ERLANG_HOME", $ErlangHome, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODE_PORT", $RabbitPort, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODENAME", $NodeName, "Process") | |
mkdir $RabbitBase > $null | |
pushd $SBin | |
try { | |
&$SBin\rabbitmq-plugins.bat -n $NodeName enable --offline rabbitmq_management | |
Set-Content (Join-Path $RabbitBase rabbitmq.config) -Value @" | |
[{rabbitmq_management, | |
[{listener, [{port, $MgmtPort}]}] | |
}]. | |
"@ | |
Write-Host @" | |
### Starting RabbitMQ Server with the following environment ### | |
`$NodeNameBase = "$NodeNameBase" | |
`$NodeName = "$NodeNameBase@$Env:Computername" | |
`$RabbitPort = $RabbitPort | |
`$MgmtPort = $MgmtPort | |
`$SBin = "$SBin" | |
`$RabbitBase = "$RabbitBase" | |
`$ErlangHome = "$ErlangHome" | |
[Environment]::SetEnvironmentVariable("RABBITMQ_BASE", `$RabbitBase, "Process") | |
[Environment]::SetEnvironmentVariable("ERLANG_HOME", `$ErlangHome, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODE_PORT", `$RabbitPort, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODENAME", `$NodeName, "Process") | |
### Stop command (with environment above) | |
&`$Sbin\rabbitmqctl.bat stop | |
### | |
"@ | |
$RabbitJob = Start-Job -Name rabbit_$NodeNameBase -ScriptBlock { | |
[Environment]::SetEnvironmentVariable("RABBITMQ_BASE", $Using:RabbitBase, "Process") | |
[Environment]::SetEnvironmentVariable("ERLANG_HOME", $Using:ErlangHome, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODE_PORT", $Using:RabbitPort, "Process") | |
[Environment]::SetEnvironmentVariable("RABBITMQ_NODENAME", $Using:NodeName, "Process") | |
&$Using:SBin\rabbitmq-server.bat -n $NodeName start | |
if(Test-Path $Using:RabbitBase) { | |
del $Using:RabbitBase -Recurse | |
} | |
} | |
Start-Sleep -Seconds 10 | |
&$SBin\rabbitmqctl.bat add_user administrator "AdminPassword123!" | |
&$SBin\rabbitmqctl.bat set_permissions administrator ".*" ".*" ".*" | |
&$SBin\rabbitmqctl.bat set_user_tags administrator "administrator" | |
#&$SBin\rabbitmqctl.bat delete_user guest | |
&$SBin\rabbitmqctl.bat change_password guest "guest" | |
Write-Host "Waiting for RabbitMQ server to stop" | |
Wait-Job $RabbitJob | |
} finally { | |
popd | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment