Modify

Ticket #551 (closed defect: worksforme)

Opened 13 years ago

Last modified 12 years ago

Failed to bind service

Reported by: jstrunk@… Owned by: desai
Priority: critical Milestone: Bcfg2 0.9.6 Release
Component: bcfg2-server Version: 0.9.x
Keywords: Cc:

Description

I just upgraded to 0.9.6pre1 on a client and a server. I followed the Debian Package building instructions to create packages.

I ran bcfg2 on the client and was told that all of my services were incorrect. The server log shows a line like the following for every single service.

Failed to bind entry: Service hal

Here are all of my service definitions extracted from my Bundles. There is an error in the server log for each one of them. There are no Service entries that do not get the above error.

<Service name="bcfg2" status="off"/>
<Service name="rsync" status="off"/>
<Service name="gdm" status="off"/>
<Service name="laptop-mode" status="off"/>
<Service name="stop-readahead" status="on"/>
<Service name="xserver-xorg-input-wacom" status="on"/>
<Service name="kde-guidance" status="off"/>
<Service name="fetchmail" status="off"/>
<Service name="policykit" status="on"/>
<Service name="libnss-ldap" status="on"/>
<Service name="nscd" status="on"/>
<Service name="portmap" status="on" sequence="17"/>
<Service name="autofs" status="on" sequence="50"/>
<Service name="nfs-common" status="on" sequence="20"/>
<Service name="ntp" status="on" sequence="23"/>
<Service name="tables" status="on"/>
<Service name="ssh" status="on" sequence="16"/>
<Service name="exim4" status="on"/>
<Service name="wdm" status="off"/>
<Service name="kdm" status="on" sequence="90" reload="reload"/>
<Service name="cupsys" status="off" sequence="19"/>
<Service name="killprocs" status="on" reload="stop"/>
<Service name="rc.local" status="on" reload="stop"/>
<Service name="rmnologin" status="on" reload="stop"/>
<Service name="single" status="on" reload="stop"/>
<Service name="nvidia-kernel" status="on" reload="stop"/>
<Service name="anacron" status="off"/>
<Service name="cron" status="on" sequence="89"/>
<Service name="usplash" status="on" reload="start"/>
<Service name="ubiquity" status="off"/>
<Service name="acpi-support" status="on"/>
<Service name="vbesave" status="on"/>
<Service name="acpid" status="on"/>
<Service name="apmd" status="on"/>
<Service name="apport" status="on"/>
<Service name="atd" status="on"/>
<Service name="binfmt-support" status="on"/>
<Service name="bluetooth" status="on"/>
<Service name="hal" status="on"/>
<Service name="dbus" status="on"/>
<Service name="dhcdbd" status="on"/>
<Service name="avahi-daemon" status="on"/>
<Service name="hotkey-setup" status="on"/>
<Service name="klogd" status="on"/>
<Service name="sysklogd" status="on"/>
<Service name="powernowd" status="on"/>
<Service name="powernowd.early" status="on"/>
<Service name="pulseaudio" status="on"/>

Attachments

Change History

comment:1 Changed 13 years ago by desai

  • Status changed from new to closed
  • Resolution set to worksforme
  • Milestone set to Bcfg2 0.9.6 Release

I am pretty sure that this isn't a bug. Here is the issue. You can deal with service entries in two ways. The default mechanism (and the only one supported prior to 0.9.6pre) is to define the service entry (including name, but not type or status) in the bundle, with the rule definitions (including status and type) in the Rules plugin. This is needed if you want to have a service enabled on some hosts and disabled on others, while using the same bundle.

The other option (new in 0.9.6pre) is to use Bound entries. You can include Service entries inside of bundles with the name BoundService? (instead of Service). This causes the server to bypass the second stage binding (ie getting Service information from Rules) and instead just changes the name from Bound$x to $x. You can accomplish exactly what you're trying to do here by using that method.

I have two comments about that approach though. First, you probably need to add a type attribute on your services, so that the client knows how to handle them (if your clients are debian as well, type='debinit'). Second, Bound entries are (absolutely) needed in certain cases. In this case, it is more of a shortcut. It makes things easier for what you're doing here, but you may need to pull services out (and put them into Rules) if you need more differences between hosts.

The client probably also emitted a warning about being unable to verify your service entries as well (owing to the lack of a type attribute)

WARNING! You need to establish a session before you can create or edit tickets. Otherwise the ticket will get treated as spam.

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.