[Debian-ha-maintainers] Bug#883527: Heartbeat / Debian 9: Missing directory "/var/run/resource-agents"

Michael Hofmann mh at ubhofmann.de
Mon Dec 4 18:37:02 UTC 2017


Package: heartbeat
Version: 1:3.0.6-5 on Debian 9

Although it is recommended to install Heartbeat together with
Pacemaker and Corosync, it is possible to install Heartbeat
without Pacemaker and Corosync. In the latter case, heartbeat
is not able to activcate a service IP address using IPaddr
(IPaddr is part of Heartbeat) because the directory

    /var/run/resource-agents

is missing.

Since /run is a tmpfs, this directory must be created after each
system startup. Currently, this directory is created by the
start script of Corosync (/etc/init.d/corosync). But if Corosync
is not installed, nobody creates this directory and IPaddr
doesn't work.

How to reproduce this problem:

1) Install heartbeat without Corosync or Pacemaker

2) Delete directory "/var/run/resource-agents" if it
exists

3) Manually start IPaddr to activate eth0:1 with a service
IP address:

 OCF_FUNCTIONS_DIR="/usr/lib/ocf/lib/heartbeat" \
        OCF_RESKEY_ip="10.0.0.184" \
        OCF_RESKEY_cidr_netmask="24" \
        OCF_RESKEY_nic="eth0" \
        OCF_RESKEY_lvs_support="0" \
        /usr/lib/ocf/resource.d//heartbeat/IPaddr \
        start

Output:
  INFO: Using calculated netmask for 10.0.0.184: 255.255.255.0
  DEBUG: Using calculated broadcast for 10.0.0.184: 10.0.0.255
  ouch: cannot touch '/var/run/resource-agents/IPaddr-eth0': No such file or directory

How to solve this problem:

1) The best solution would be: create the directory
"/var/run/resource-agents" in the heartbeat init script if
the directory doesn't exist

2) Another solution would be: make Corosync a hard dependency
of Heartbeat.

I would prefer the first solution, because Heartebat runs
well without Corosync and Pacemeaker.



More information about the Debian-ha-maintainers mailing list