2016-02-11 27 views
0

我有一個在Vagrant(簡單的hashicorp/precise64)中創建的虛擬機。我需要與RabbitMQ的規定它,我會:Vagrant中的Chef Solo:如何創建RabbitMQ虛擬主機並將其綁定到給定的用戶名

  • testPass創建用戶名testUsr與管理角色密碼
  • 創建一個虛擬主機testVirtualHost
  • 綁定testVirtualHosttestUsr

這是我的嘗試:

Vagrant.configure(2) do |config| 
    config.vm.box = "hashicorp/precise64" 

    config.vm.provision "chef_solo" do |chef| 
     chef.add_recipe "rabbitmq" 

     chef.json = { 
      'rabbitmq' => { 
       'default_user' => 'testUsr', 
       'default_pass' => 'testPass', 
       'virtualhosts' => ['testVirtualHost'], 
       'enabled_users' => [ 
        { 
         'name' => 'testUsr', 
         'password' => 'testPass', 
         'rights' => [{ 'vhost' => 'testVirtualHost', 'conf' => '.*', 'write' => '.*', 'read' => '.*' }] 
        } 
       ] 
      } 
     } 

    end 
    config.vm.network "forwarded_port", guest: 15672, host: 15672, id: "rabbitmq" 
end 

用戶和密碼已創建,但虛擬主機不是。錯誤在哪裏?

回答

1

下面是根據您的要求的修改Vagrantfile:

Vagrant.configure(2) do |config| 
     config.vm.box = "hashicorp/precise64" 
     config.vm.provision "chef_solo" do |chef| 
     chef.add_recipe "rabbitmq::user_management" 
     chef.add_recipe "rabbitmq::mgmt_console" 
     chef.json = { 
      'rabbitmq' => { 
      'default_user' => 'testUsr', 
      'default_pass' => 'testPass', 
      'virtualhosts' => ['testVirtualHost'], 
      'enabled_users' => [ 
       { 
       'name' => 'testUsr', 
       'password' => 'testPass', 
       'rights' => [{ 'vhost' => 'testVirtualHost', 'conf' => '.*', 'write' => '.*', 'read' => '.*' }], 
       'tag' => 'administrator' 
       } 
      ] 
      } 
     } 
     end 
     config.vm.network "forwarded_port", guest: 15672, host: 15672, id: "rabbitmq" 
    end 

下面是修改和補充我做:

  • 與管理角色密碼與testPass創建用戶名testUsr

對於testUsr是管理員,該用戶需要用'administrator'標記permissions

 'enabled_users' => [ 
      { 
      'name' => 'testUsr', 
      'password' => 'testPass', 
      'rights' => [{ 'vhost' => 'testVirtualHost', 'conf' => '.*', 'write' => '.*', 'read' => '.*' }], 
      'tag' => 'administrator' 
      } 
  • 創建一個虛擬主機testVirtualHost

這裏的變化是不是叫RabbitMQ的配方,但調用的RabbitMQ :: user_management配方代替:

chef.add_recipe "rabbitmq::user_management" 

這個配方通話rabbitmq食譜。部分user_management代碼將創建testVirtualHost。

  • 綁定testVirtualHost到testUsr

您已經出臺的代碼這一點。更改如上(呼籲rabbitmq :: user_management配方)

我還注意到你是端口轉發到rabbitmq管理控制檯。要使控制檯正常工作,您需要按照management啓用rabbitmq_management插件。

我說:

chef.add_recipe "rabbitmq::mgmt_console" 

mgmt_console配方管理該插件。

現在,您將能夠通過http://localhost:15672

+0

完美的訪問管理控制檯。這樣做的工作......如果會添加新的隊列呢?我已經googlin沒有成功 –

相關問題