diff --git a/zuul/launcher/ansiblelaunchserver.py b/zuul/launcher/ansiblelaunchserver.py
index ffbdbf0..f7bf66f 100644
--- a/zuul/launcher/ansiblelaunchserver.py
+++ b/zuul/launcher/ansiblelaunchserver.py
@@ -114,10 +114,16 @@
         self.termination_queue = Queue.Queue()
         self.sites = {}
         self.static_nodes = {}
-        if config.has_option('launcher', 'accept-nodes'):
-            self.accept_nodes = config.get('launcher', 'accept-nodes')
+        if config.has_option('launcher', 'accept_nodes'):
+            self.accept_nodes = config.getboolean('launcher',
+                                                  'accept_nodes')
         else:
-            self.accept_nodes = True
+            # TODO(jeblair): remove deprecated form of option
+            if config.has_option('launcher', 'accept-nodes'):
+                self.accept_nodes = config.getboolean('launcher',
+                                                      'accept-nodes')
+            else:
+                self.accept_nodes = True
 
         if self.config.has_option('zuul', 'state_dir'):
             state_dir = os.path.expanduser(
@@ -235,6 +241,8 @@
     def register(self):
         new_functions = set()
         if self.accept_nodes:
+            new_functions.add("node_assign:zuul")
+            # TODO(jeblair): remove deprecated form
             new_functions.add("node-assign:zuul")
         new_functions.add("stop:%s" % self.hostname)
         new_functions.add("set_description:%s" % self.hostname)
@@ -360,7 +368,11 @@
             try:
                 job = self.worker.getJob()
                 try:
-                    if job.name.startswith('node-assign:'):
+                    if job.name.startswith('node_assign:'):
+                        self.log.debug("Got node_assign job: %s" % job.unique)
+                        self.assignNode(job)
+                    elif job.name.startswith('node-assign:'):
+                        # TODO(jeblair): remove deprecated form
                         self.log.debug("Got node-assign job: %s" % job.unique)
                         self.assignNode(job)
                     elif job.name.startswith('stop:'):
