[Dnsmasq-discuss] dnsmasq manifest for Solaris 10

David Connelly dconnelly at gmail.com
Mon Apr 7 13:27:35 BST 2008


Somehow gmail did not send this right so I am forwarding the original with
attachment inline...

I've found dnsmasq much easier to set up on my home server running Solaris
10 than the stock dhcp/dns server, which is probably overkill anyway for my
simple home network needs. Since Solaris now uses SMF (Service Management
Facility) to manage services I thought I'd create a simple service manifest
for the dnsmasq service. The manifest currently assumes that dnsmasq has
been installed in '/usr/local/sbin/dnsmasq' and the configuration file in
'/usr/local/etc/dnsmasq.conf', so you may have to adjust these paths for
your local installation. Here are the steps I followed to install and enable
the dnsmasq service:
  # svccfg import dnsmasq.xml
  # svcadm enable dnsmasq

To confirm that the service is enabled and online:

  # svcs -l dnsmasq

Finally, here is the service manifest. I've just started learning about SMF
so if anyone has any corrections/feedback they are more than welcome:

=================

<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM
"/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!-- Service manifest for dnsmasq -->

<service_bundle type='manifest' name='dnsmasq'>
  <service name='network/dnsmasq' type='service' version='1'>

    <create_default_instance enabled='false'/>
    <single_instance/>

    <dependency name='multi-user'
                grouping='require_all'
                restart_on='refresh'
                type='service'>
      <service_fmri value='svc:/milestone/multi-user'/>
    </dependency>

    <dependency name='config'
                grouping='require_all'
                restart_on='restart'
                type='path'>
      <service_fmri value='file:///usr/local/etc/dnsmasq.conf'/>
    </dependency>

    <dependent name='dnsmasq_multi-user-server'
               grouping='optional_all'
               restart_on='none'>
      <service_fmri value='svc:/milestone/multi-user-server' />
    </dependent>

    <exec_method type='method' name='start'
                 exec='/usr/local/sbin/dnsmasq -C
/usr/local/etc/dnsmasq.conf'
                 timeout_seconds='60' >
      <method_context>
        <method_credential user='root' group='root' privileges='all'/>
      </method_context>
    </exec_method>

    <exec_method type='method'
                 name='stop'
                 exec=':kill'
                 timeout_seconds='60'/>

    <exec_method type='method'
                 name='refresh'
                 exec=':kill -HUP'
                 timeout_seconds='60' />

    <template>
      <common_name>
        <loctext xml:lang='C'>dnsmasq server</loctext>
      </common_name>
      <description>
        <loctext xml:lang='C'>
dnsmasq - A lightweight DHCP and caching DNS server.
        </loctext>
      </description>
      <documentation>
        <manpage title='dnsmasq' section='8' manpath='/usr/local/man'/>
      </documentation>
    </template>

  </service>
</service_bundle>

==================

Thanks,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20080407/fe9aa840/attachment.htm


More information about the Dnsmasq-discuss mailing list