読者です 読者をやめる 読者になる 読者になる

vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

RabbitMQ エクスポート/インポート

RabbitMQでクラスタ化せずに vhost,exchange等を移行できます。

f:id:htnosm:20151124004337j:plain

RabbitMQのAPIを介して行えます。
尚、administrator権限が必要になるので、接続ユーザに予め権限付与しておきます。

# ユーザ追加
rabbitmqctl add_user "ユーザ名" "パスワード"
# administrator付与
rabbitmqctl set_user_tags "ユーザ名" administrator

エクスポート

  • definitions.jsonに出力
_src_user=
_src_pass=
_src_ip=
_src_port=

# Export
curl -s -S -u ${_src_user}:${_src_pass} \
  http://${_src_ip}:${_src_port}/api/definitions > definitions.json

インポート

  • definitions.jsonから入力
_dst_user=
_dst_pass=
_dst_ip=
_dst_port=

# Import
curl -s -S -X POST -u ${_dst_user}:${_dst_pass} \
  -H "content-type:application/json" -d "@definitions.json" \
  http://${_dst_ip}:${_dst_port}/api/definitions

簡易バックアップにも使えそうです。