zypper ar http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_12.2 erlangNow before you start the rabbitmq-server you need to modify the /etc/init.d/rabbitmq-server file changing "LOCK_FILE=/var/lock/subsys/$NAME" to "LOCK_FILE=/var/run/rabbitmq/$NAME". The directory "/var/lock/subsys/$NAME" doesn't exist on openSUSE, so this change puts the lock file over under /var/run/rabbitmq along with the PID file. Otherwise you can create the /var/lock/subsys/$NAME directory with the appropriate permissions.
zypper in erlang
wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.6/rabbitmq-server-2.8.6-1.suse.noarch.rpm
rpm -Uvh rabbitmq-server-2.8.6-1.suse.noarch.rpm
Every time you modify a service script in /etc/init.d you need to then run systemctl --system daemon-reload so that systemd knows to anticipate the changed file.If you want to use Rabbit's management interface you now need to enable the appropriate plugins:
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_management_visualiser
By default RabbitMQ will listen on all your hosts interfaces for erlang kernel, AMQP, and HTTP (management interface) connections. Especially in the case of a developement host you may want to restrict the availability of one or all of these services to the local machine.
In order to keep the erlang kernel and Rabbit's AMQ listeners restricted to the local host you'll need to add two exported environment variables to the service script - just put them in following the definition of PID_FILE.
export RABBITMQ_NODENAME=rabbit@localhostFor the management inteface and other components you'll need to modify [and possibly create] the /etc/rabbitmq/rabbitmq.config configuration file. RabbitMQ violates the only-have-one-way-to-configure rule of system administration; this is in part due to its reliance on the Erlang runtime - controlling the behavior of the run-time is a [poorly documented] black art. Both the environment variables and the configuration file are required to restrict all the components to the local interface. The following configuration file restricts HTTP [management interface] and AMQP services to the localhost and informs the RabbitMQ application that it should find the Erlang kernel at the address 127.0.0.1.
export ERL_EPMD_ADDRESS=127.0.0.1
[Always modify the configuration file when the RabbitMQ service is shutdown. A botched configuration file can render the broker unable to shutdown properly leaving you to have to manually kill the processes old-school.
{mnesia, [{dump_log_write_threshold, 1000}]},
{kernel,[{inet_dist_use_interface,{127,0,0,1}}]},
{rabbit, [{tcp_listeners, [{"127.0.0.1", 5672}]}]},
{rabbitmq_management, [ {http_log_dir, "/tmp/rabbit-mgmt"} ] },
{rabbitmq_management_agent, [ {force_fine_statistics, true} ] },
{rabbitmq_mochiweb, [ {listeners, [{mgmt, [{port, 55672},
{ip, "127.0.0.1"}]}]},
{default_listener, [{port, 60000} ] } ] }
].
With the RABBITMQ_NODENAME defined in the services file you will either need to add that same variable to the administrator's and application's environment or specify the node name when attempting to connect to or manage the RabbitMQ broker service [your application probably already refers to a configured broker, but you'll certainly have to deal with this when using the rabbitmqclt command].
Now the service should start:
service rabbitmq-server startThe broker service should now be running and you can see the components' open TCP connections using the netstat command. The management interface should also be available on TCP/55672 [via your browser of choice] unless you specified an alternative port in the rabbitmq.config file.
linux-nysu:/etc/init.d # netstat --listen --tcp --numeric --programNow you probably want to do some configuration and provisioning using the rabbitmqctl command; but your RabbitMQ instance is up and running.
Active Internet connections (only servers)
Proto Local Address Foreign Address State PID/Program name
tcp 127.0.0.1:5672 0.0.0.0:* LISTEN 23180/beam.smp
tcp 127.0.0.1:60712 0.0.0.0:* LISTEN 23180/beam.smp
tcp 127.0.0.1:4369 0.0.0.0:* LISTEN 22681/epmd
tcp 127.0.0.1:55672 0.0.0.0:* LISTEN 23180/beam.smp
No comments:
Post a Comment