私は、RabbitMQをWindowsシステムに習得してインストールし始めたばかりです。
Erlang VMとRabbitMQをデフォルトのフォルダーではなく、カスタムフォルダー(両方)にインストールします。
その後、コンピューターを再起動しました。
ところで、マイコンピュータ名は「NULL」
RabbitMQ/sbinフォルダーに移動して、コマンドを使用します:
rabbitmqctl status
ただし、返されるメッセージは次のとおりです。
ノードrabbit @ NULLのステータス...
エラー:ノード 'rabbit @ NULL'で操作を実行できません。以下の診断情報と提案を参照してください。
最も一般的な理由は次のとおりです。
- ターゲットノードに到達できません(ホスト名の解決のため、TCP接続またはファイアウォールの問題)
- CLIツールがサーバーとの認証に失敗する(たとえば、CLIツールのErlang CookieがサーバーのCookieと一致しないため)
- ターゲットノードが実行されていません
以下の診断情報に加えて:
- http://rabbitmq.com/documentation.html のCLI、クラスタリング、およびネットワーキングガイドを参照してください。
- ノードrabbit @ NULLのサーバーログを参照してください
診断
連絡を試みました:[rabbit @ NULL]
rabbit @ NULL:
- nULLでepmd(ポート4369)に接続
- epmdは、ノード「rabbit」がノード間およびCLIツールのトラフィックにポート25672を使用することを報告します
TCP接続は成功したが、Erlangの配布は失敗した
認証に失敗しました(リモートノードによって拒否されました)。ErlangCookieを確認してください
現在のノードの詳細:
- ノード名:rabbitmqcli70 @ NULL
- 有効なユーザーのホームディレクトリ:C:\ Users\Jerry Song
- Erlang Cookieハッシュ:51gvGHZpn0gIK86cfiS7vp ==
RabbitMQを再起動しようとしましたが、得られるものは次のとおりです。
エラー:「rabbit」という名前のノードはすでに「NULL」で実行されています
ところで、マイコンピュータ名は「NULL」そして、ファイアウォールのすべてのポートを有効にしました。
私はRabbitMQを再インストールによって私のコンピューターにデフォルトのセットアップフォラーを使用を持っています
次に、コマンドで確認します。
rabbitmqctl status
Erlang VM。の問題ではありません。Erは他のフォラーでインストールできます)
RabbitMQを使用していないと、今は見つけられない問題(このような問題)が発生しますデフォルトのセットアップにはfolerが必要です(C:\ Program Files\RabbitMQ Server)
誰かがそれを見つけた場合、私はあなたが私にその理由と修正方法を教えてくれることを願っています。
https://groups.google.com/forum/#!topic/rabbitmq-users/a6sqrAUX_Fg は、Rabbit MQの新規インストールでCookieの不一致がある問題を説明しています。 Windowsでの簡単な解決策は、Cookieを同期することです
ここにも説明があります: http://www.rabbitmq.com/clustering.html#erlang-cookie
Cookieが以下の1、2、およびオプションで3で同期されていることを確認してください
%HOMEDRIVE%%HOMEPATH%\.erlang.cookie
(通常はC:\Users\%USERNAME%\.erlang.cookie
ユーザー%USERNAME%の場合)HOMEDRIVEおよびHOMEPATH環境変数の両方が設定されている場合
%USERPROFILE%\.erlang.cookie
(通常はC:\Users\%USERNAME%\.erlang.cookie
)if[〜#〜] homedrive [〜#〜]および[〜#〜] homepath [ 〜#〜]は両方とも設定されていません
%USERPROFILE%\.erlang.cookie
(通常はC:\WINDOWS\system32\config\systemprofile
)WindowsサービスアカウントとCLIツールを実行しているユーザーが使用するCookieファイルは、C:\WINDOWS\system32\config\systemprofile
フォルダ。
Windows10の開発ツール/ソフトウェアに専用のドライブフォルダーの場所を使用している場合(Windowsのデフォルトの場所ではありません)、 https://www.rabbitmq.com/cli .html は、以下で説明するようにCookieをコピーすることによります。
私の場合、HOMEDRIVEおよびHOMEPATH環境変数は両方ともnot設定されていることに注意してください。
"C:\ Windows\system32\config\systemprofile\.erlang.cookie"をコピーした後to "C:\ Users \%USERNAME%\。erlang.cookie"、
エラー "tcp接続は成功したが、Erlang配布は失敗しました"は解決されました。
これで、「rabbitmqctl.bat status」コマンドを正常に使用できるようになりました。したがって、Cookieを同期するとエラーが解決されるため、このエラーを解決するためにデフォルトの場所にインストールする必要はありません。
Centosで。
ip nodenameペアを各ノードの/ etc/hostsに追加します。
各スレーブノードでrabbitmq-serverサービスを再起動します。
私のために働く。
それが他の人に役立つなら、私の経験を追加するだけです。
Powershell .ps1スクリプトを作成して、RabbitMQをインストールおよび構成します。これは、Packerでサーバーをプロビジョニングするためのステップの1つとして使用されます。
AWS W2016 Serverの新しいビルドでコードを作成しました。 (管理者として管理者PSコンソールから)ボックスで実行すると正常に機能しましたが、同じコードをPackerビルドサーバーに移動すると、packerを介してrabbitmqctl.bat構成ステップを実行すると、両方が使用されても(私が知る限り)スクリプトを実行する管理者。
したがって、これはコーディングボックスで機能しました:
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" add_user Username Password}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_user_tags User administrator}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_permissions -p "/" User "^User-.*" ".*" ".*"}
Invoke-Command -ScriptBlock $pathvargs
Write-Host "Did RabbitMQ"
しかし、私はこれを除外しなければなりませんでした...
copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin\.erlang.cookie"
copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" $env:userprofile\.erlang.cookie -force
...パッカーボックス。
私はいくつかのコンテキストの問題が起こっていると推測していますが、私は使用しています
"winrm_username": "Administrator",
packer Builderブロックで、これで十分だと思いました。
TL; DR-Cookieがなくても機能する場合でも、Cookieを使用します。