diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 09360bc87a2be3384bd8e5971976578fe8f938ff..0f370feab0ab2510d4c1161ec0097d50da335374 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -230,6 +230,7 @@ octavia_network_interface: "{{ 'o-hm0' if octavia_network_type == 'tenant' else
 bifrost_network_interface: "{{ network_interface }}"
 dns_interface: "{{ network_interface }}"
 dpdk_tunnel_interface: "{{ neutron_external_interface }}"
+ironic_http_interface: "{{ api_interface }}"
 
 # Configure the address family (AF) per network.
 # Valid options are [ ipv4, ipv6 ]
@@ -244,11 +245,13 @@ octavia_network_address_family: "{{ api_address_family }}"
 bifrost_network_address_family: "{{ network_address_family }}"
 dns_address_family: "{{ network_address_family }}"
 dpdk_tunnel_address_family: "{{ network_address_family }}"
+ironic_http_address_family: "{{ api_address_family }}"
 
 migration_interface_address: "{{ 'migration' | kolla_address }}"
 tunnel_interface_address: "{{ 'tunnel' | kolla_address }}"
 octavia_network_interface_address: "{{ 'octavia_network' | kolla_address }}"
 dpdk_tunnel_interface_address: "{{ 'dpdk_tunnel' | kolla_address }}"
+ironic_http_interface_address: "{{ 'ironic_http' | kolla_address }}"
 
 # Valid options are [ openvswitch, ovn, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_nsxp, vmware_dvs ]
 neutron_plugin_agent: "openvswitch"
diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml
index c391ed358f35ff6623d570e16af947c7d4b0789f..d4af66ef5d9dc6ece4188a3a1e3fe4169215acc3 100644
--- a/ansible/roles/ironic/defaults/main.yml
+++ b/ansible/roles/ironic/defaults/main.yml
@@ -259,7 +259,7 @@ ironic_dnsmasq_boot_file: "{% if ironic_dnsmasq_serve_ipxe | bool %}undionly.kpx
 ironic_dnsmasq_uefi_ipxe_boot_file: "snponly.efi"
 ironic_cleaning_network:
 ironic_console_serial_speed: "115200n8"
-ironic_http_url: "http://{{ api_interface_address | put_address_in_context('url') }}:{{ ironic_http_port }}"
+ironic_http_url: "http://{{ ironic_http_interface_address | put_address_in_context('url') }}:{{ ironic_http_port }}"
 ironic_enable_rolling_upgrade: "yes"
 ironic_upgrade_skip_wait_check: false
 ironic_inspector_kernel_cmdline_extras: []
diff --git a/ansible/roles/ironic/templates/ironic-http-httpd.conf.j2 b/ansible/roles/ironic/templates/ironic-http-httpd.conf.j2
index 3c374f73cfb989a0a49cf43643169b8ec31091a1..bc3322397749df35e2c5f083013b015d92c9cd90 100644
--- a/ansible/roles/ironic/templates/ironic-http-httpd.conf.j2
+++ b/ansible/roles/ironic/templates/ironic-http-httpd.conf.j2
@@ -1,4 +1,4 @@
-Listen {{ api_interface_address | put_address_in_context('url') }}:{{ ironic_http_port }}
+Listen {{ ironic_http_interface_address | put_address_in_context('url') }}:{{ ironic_http_port }}
 
 TraceEnable off
 
diff --git a/releasenotes/notes/ironic-interface-afa7ffe9a341a892.yaml b/releasenotes/notes/ironic-interface-afa7ffe9a341a892.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3d9b5dffa0595c243e92d5c1b7e6a32816833781
--- /dev/null
+++ b/releasenotes/notes/ironic-interface-afa7ffe9a341a892.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    With the ``ironic_http_interface/ironic_http_interface_address``
+    parameters it is possible to set the addresses for the
+    ``ironic_http`` service.