Ironic agent ramdisk fails to deploy the image when used with iscsi_ilo driver (and pxe_ipmitool driver) as well. The following is the error log:
2015-04-28 01:46:22.693 DEBUG ironic.drivers.modules.ilo.common [-] Cleaning up node 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2 after virtual media boot from (pid=27818) cleanup_vmedia_boot /opt/stack/ironic/ironic/drivers/modules/ilo/common.py:442
2015-04-28 01:46:23.032 DEBUG swiftclient [-] REQ: curl -i http://10.102.0.75:8080/v1/AUTH_742e2cf746264aaaaaf0c344062a7cd6/ironic_ilo_container/image-8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2 DELETE -H "X-Auth-Token: ce26d99992cc447dbaa0e042659129a9" from (pid=27818) http_log /usr/local/lib/python2.7/dist-packages/swiftclient/client.py:95
2015-04-28 01:46:23.033 DEBUG swiftclient [-] RESP STATUS: 204 No Content from (pid=27818) http_log /usr/local/lib/python2.7/dist-packages/swiftclient/client.py:96
2015-04-28 01:46:23.033 DEBUG swiftclient [-] RESP HEADERS: [('date', 'Tue, 28 Apr 2015 08:46:23 GMT'), ('content-length', '0'), ('content-type', 'text/html; charset=UTF-8'), ('connection', 'keep-alive'), ('x-trans-id', 'txe04aac32cd6f4483866f7-00553f48de')] from (pid=27818) http_log /usr/local/lib/python2.7/dist-packages/swiftclient/client.py:97
2015-04-28 01:46:26.397 DEBUG ironic.drivers.modules.deploy_utils [-] Deploy boot mode is uefi for 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2. from (pid=27818) get_boot_mode_for_deploy /opt/stack/ironic/ironic/drivers/modules/deploy_utils.py:1072
2015-04-28 01:46:26.423 ERROR ironic.drivers.modules.agent_client [-] Unable to decode response as JSON.
Request URL: http://10.102.0.124:9999/v1/commands
Request body: "{"params": {"iqn": "iqn-8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2"}, "name": "iscsi.start_iscsi_target"}"
Response: "A server error occurred. Please contact the administrator."
2015-04-28 01:46:26.424 ERROR ironic.drivers.modules.agent_base_vendor [-] Asynchronous exception for node 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2: Node failed to get image for deploy. exception: Unable to decode response as JSON.
Request URL: http://10.102.0.124:9999/v1/commands
Request body: "{"params": {"iqn": "iqn-8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2"}, "name": "iscsi.start_iscsi_target"}"
Response: "A server error occurred. Please contact the administrator."
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor Traceback (most recent call last):
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/drivers/modules/agent_base_vendor.py", line 233, in heartbeat
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor self.continue_deploy(task, **kwargs)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/conductor/task_manager.py", line 128, in wrapper
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor return f(*args, **kwargs)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/drivers/modules/ilo/deploy.py", line 861, in continue_deploy
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor uuid_dict = iscsi_deploy.do_agent_iscsi_deploy(task, self._client)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/drivers/modules/iscsi_deploy.py", line 369, in do_agent_iscsi_deploy
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor result = agent_client.start_iscsi_target(node, iqn)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/drivers/modules/agent_client.py", line 112, in start_iscsi_target
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor wait=True)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor File "/opt/stack/ironic/ironic/drivers/modules/agent_client.py", line 82, in _command
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor raise exception.IronicException(msg)
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor IronicException: Unable to decode response as JSON.
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor Request URL: http://10.102.0.124:9999/v1/commands
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor Request body: "{"params": {"iqn": "iqn-8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2"}, "name": "iscsi.start_iscsi_target"}"
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor Response: "A server error occurred. Please contact the administrator."
2015-04-28 01:46:26.424 TRACE ironic.drivers.modules.agent_base_vendor
2015-04-28 01:46:26.426 DEBUG ironic.common.states [-] Exiting old state 'deploying' in response to event 'fail' from (pid=27818) on_exit /opt/stack/ironic/ironic/common/states.py:177
2015-04-28 01:46:26.426 DEBUG ironic.common.states [-] Entering new state 'deploy failed' in response to event 'fail' from (pid=27818) on_enter /opt/stack/ironic/ironic/common/states.py:183
2015-04-28 01:46:34.214 INFO ironic.conductor.utils [-] Successfully set node 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2 power state to power off.
2015-04-28 01:46:34.391 DEBUG oslo_messaging._drivers.amqp [-] unpacked context: {u'read_only': False, u'show_deleted': False, u'roles': [u'admin'], u'auth_token': u'***', u'domain_name': u'Default', u'show_password': False, u'is_admin': True, u'user': u'ironic', u'request_id': u'req-48986e6e-4e3e-40b0-b72b-4c88d03beadb', u'is_public_api': False, u'domain_id': u'default', u'tenant': u'service'} from (pid=27818) unpack_context /usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqp.py:171
2015-04-28 01:46:34.393 DEBUG ironic.conductor.manager [-] RPC do_node_tear_down called for node 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2. from (pid=27818) do_node_tear_down /opt/stack/ironic/ironic/conductor/manager.py:767
2015-04-28 01:46:34.394 DEBUG ironic.conductor.task_manager [-] Attempting to reserve node 8ed62b48-f79e-46f0-a3a8-b1ac1c9ae4f2 from (pid=27818) reserve_node /opt/stack/ironic/ironic/conductor/task_manager.py:193
The failure is because it doesn't have tgtd and tgtadm installed which is required now for ironic-agent ramdisk.