Improve configuration of Ironic and Ironic inspector
Reuse much of the Bifrost inspector configuration for the main inspector instance.
This commit is contained in:
parent
3f9935a680
commit
133511b466
@ -45,24 +45,14 @@ kolla_bifrost_enable_ipmitool_drivers: true
|
|||||||
# Ironic Inspector configuration.
|
# Ironic Inspector configuration.
|
||||||
|
|
||||||
# List of of inspector processing plugins.
|
# List of of inspector processing plugins.
|
||||||
kolla_bifrost_inspector_processing_hooks:
|
kolla_bifrost_inspector_processing_hooks: "{{ inspector_processing_hooks }}"
|
||||||
- root_disk_selection
|
|
||||||
- scheduler
|
|
||||||
- validate_interfaces
|
|
||||||
- ramdisk_error
|
|
||||||
- capabilities
|
|
||||||
- pci_devices
|
|
||||||
- raid_device
|
|
||||||
- local_link_connection
|
|
||||||
- lldp_basic
|
|
||||||
|
|
||||||
# Which MAC addresses to add as ports during introspection. One of 'all',
|
# Which MAC addresses to add as ports during introspection. One of 'all',
|
||||||
# 'active' or 'pxe'.
|
# 'active' or 'pxe'.
|
||||||
kolla_bifrost_inspector_port_addition: "all"
|
kolla_bifrost_inspector_port_addition: "{{ inspector_port_addition }}"
|
||||||
|
|
||||||
# List of extra kernel parameters for the inspector default PXE configuration.
|
# List of extra kernel parameters for the inspector default PXE configuration.
|
||||||
kolla_bifrost_inspector_extra_kernel_options:
|
kolla_bifrost_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"
|
||||||
- "ipa-collect-lldp=1"
|
|
||||||
|
|
||||||
# List of introspection rules for Bifrost's Ironic Inspector service.
|
# List of introspection rules for Bifrost's Ironic Inspector service.
|
||||||
kolla_bifrost_inspector_rules:
|
kolla_bifrost_inspector_rules:
|
||||||
@ -91,10 +81,10 @@ kolla_bifrost_inspector_deploy_ramdisk: "http://{{ provision_oc_net_name | net_i
|
|||||||
# Ironic Python Agent (IPA) configuration.
|
# Ironic Python Agent (IPA) configuration.
|
||||||
|
|
||||||
# URL of Ironic Python Agent (IPA) kernel image.
|
# URL of Ironic Python Agent (IPA) kernel image.
|
||||||
kolla_bifrost_ipa_kernel_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-stable-ocata.vmlinuz"
|
kolla_bifrost_ipa_kernel_upstream_url: "{{ inspector_ipa_kernel_upstream_url }}"
|
||||||
|
|
||||||
# URL of Ironic Python Agent (IPA) ramdisk image.
|
# URL of Ironic Python Agent (IPA) ramdisk image.
|
||||||
kolla_bifrost_ipa_ramdisk_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-stable-ocata.cpio.gz"
|
kolla_bifrost_ipa_ramdisk_upstream_url: "{{ inspector_ipa_ramdisk_upstream_url }}"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Inventory configuration.
|
# Inventory configuration.
|
||||||
|
@ -1,4 +1,45 @@
|
|||||||
---
|
---
|
||||||
|
###############################################################################
|
||||||
|
# Ironic inspector PXE configuration.
|
||||||
|
|
||||||
|
# List of extra kernel parameters for the inspector default PXE configuration.
|
||||||
|
inspector_extra_kernel_options:
|
||||||
|
- "ipa-collect-lldp=1"
|
||||||
|
|
||||||
|
# URL of Ironic Python Agent (IPA) kernel image.
|
||||||
|
inspector_ipa_kernel_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-stable-ocata.vmlinuz"
|
||||||
|
|
||||||
|
# URL of Ironic Python Agent (IPA) ramdisk image.
|
||||||
|
inspector_ipa_ramdisk_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-stable-ocata.cpio.gz"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic inspector processing configuration.
|
||||||
|
|
||||||
|
# Whether inspector should manage the firewall.
|
||||||
|
inspector_manage_firewall: False
|
||||||
|
|
||||||
|
# List of of inspector processing plugins.
|
||||||
|
inspector_processing_hooks:
|
||||||
|
- root_disk_selection
|
||||||
|
- scheduler
|
||||||
|
- validate_interfaces
|
||||||
|
- ramdisk_error
|
||||||
|
- capabilities
|
||||||
|
- pci_devices
|
||||||
|
- raid_device
|
||||||
|
- local_link_connection
|
||||||
|
- lldp_basic
|
||||||
|
|
||||||
|
# Which MAC addresses to add as ports during introspection. One of 'all',
|
||||||
|
# 'active' or 'pxe'.
|
||||||
|
inspector_port_addition: "all"
|
||||||
|
|
||||||
|
# Whether to enable discovery of nodes not managed by Ironic.
|
||||||
|
inspector_enable_discovery: True
|
||||||
|
|
||||||
|
# The Ironic driver with which to register newly discovered nodes.
|
||||||
|
inspector_discovery_enroll_node_driver: "agent_ipmitool"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic inspector configuration.
|
# Ironic inspector configuration.
|
||||||
|
|
||||||
|
@ -2,25 +2,40 @@
|
|||||||
- name: Ensure Kolla OpenStack components are configured
|
- name: Ensure Kolla OpenStack components are configured
|
||||||
hosts: config-mgmt
|
hosts: config-mgmt
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
- name: Check whether Kolla extra Glance configuration file exists
|
- name: Check whether Kolla extra configuration files exist
|
||||||
stat:
|
stat:
|
||||||
path: "{{ kayobe_config_path }}/kolla/config/glance.conf"
|
path: "{{ kayobe_config_path }}/kolla/config/{{ item.file }}"
|
||||||
register: glance_stat
|
register: stat_result
|
||||||
|
with_items:
|
||||||
|
- { name: glance, file: glance.conf }
|
||||||
|
- { name: inspector, file: ironic-inspector.conf }
|
||||||
|
- { name: ironic, file: ironic.conf }
|
||||||
|
|
||||||
- name: Read the Kolla extra Glance configuration file
|
- name: Initialise a fact containing extra configuration
|
||||||
set_fact:
|
set_fact:
|
||||||
kolla_extra_glance: "{{ lookup('template', '{{ kayobe_config_path }}/kolla/config/glance.conf') }}"
|
kolla_extra_config: {}
|
||||||
when: glance_stat.stat.exists
|
|
||||||
|
|
||||||
- name: Check whether Kolla extra Ironic configuration file exists
|
- name: Update a fact containing extra configuration
|
||||||
stat:
|
|
||||||
path: "{{ kayobe_config_path }}/kolla/config/ironic.conf"
|
|
||||||
register: ironic_stat
|
|
||||||
|
|
||||||
- name: Read the Kolla extra Ironic configuration file
|
|
||||||
set_fact:
|
set_fact:
|
||||||
kolla_extra_ironic: "{{ lookup('template', '{{ kayobe_config_path }}/kolla/config/ironic.conf') }}"
|
kolla_extra_config: "{{ kolla_extra_config | combine({item.item.name: lookup('template', '{{ item.stat.path }}')}) }}"
|
||||||
when: ironic_stat.stat.exists
|
with_items: "{{ stat_result.results }}"
|
||||||
|
when: "{{ item.stat.exists }}"
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- role: kolla-openstack
|
- role: kolla-openstack
|
||||||
|
# Ironic inspector configuration.
|
||||||
|
kolla_inspector_manage_firewall: "{{ inspector_manage_firewall }}"
|
||||||
|
kolla_inspector_processing_hooks: "{{ inspector_processing_hooks }}"
|
||||||
|
kolla_inspector_port_addition: "{{ inspector_port_addition }}"
|
||||||
|
kolla_inspector_enable_discovery: "{{ inspector_enable_discovery }}"
|
||||||
|
kolla_inspector_discovery_enroll_node_driver: "{{ inspector_discovery_enroll_node_driver }}"
|
||||||
|
kolla_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"
|
||||||
|
kolla_inspector_ipa_kernel_upstream_url: "{{ inspector_ipa_kernel_upstream_url }}"
|
||||||
|
kolla_inspector_ipa_ramdisk_upstream_url: "{{ inspector_ipa_ramdisk_upstream_url }}"
|
||||||
|
# Ironic inspector's dnsmasq configuration.
|
||||||
|
kolla_inspector_dhcp_pool_start: "{{ inspection_net_name | net_allocation_pool_start }}"
|
||||||
|
kolla_inspector_dhcp_pool_end: "{{ inspection_net_name | net_allocation_pool_end }}"
|
||||||
|
# Extra free-form user-provided configuration.
|
||||||
|
kolla_extra_glance: "{{ kolla_extra_config.glance | default }}"
|
||||||
|
kolla_extra_inspector: "{{ kolla_extra_config.inspector | default }}"
|
||||||
|
kolla_extra_ironic: "{{ kolla_extra_config.ironic | default }}"
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
# Directory where Kolla custom configuration files will be installed.
|
# Directory where Kolla custom configuration files will be installed.
|
||||||
kolla_node_custom_config_path:
|
kolla_node_custom_config_path:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic configuration.
|
||||||
|
|
||||||
# List of enabled Ironic drivers.
|
# List of enabled Ironic drivers.
|
||||||
ironic_drivers:
|
ironic_drivers:
|
||||||
- agent_ssh
|
- agent_ssh
|
||||||
@ -9,9 +12,52 @@ ironic_drivers:
|
|||||||
- pxe_ssh
|
- pxe_ssh
|
||||||
- pxe_ipmitool
|
- pxe_ipmitool
|
||||||
|
|
||||||
|
# Free form extra configuration to append to ironic.conf.
|
||||||
|
kolla_extra_ironic:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic inspector configuration.
|
||||||
|
|
||||||
|
# Whether inspector should manage the firewall.
|
||||||
|
kolla_inspector_manage_firewall:
|
||||||
|
|
||||||
|
# Comma-separated list of inspector processing plugins.
|
||||||
|
kolla_inspector_processing_hooks:
|
||||||
|
|
||||||
|
# Which MAC addresses to add as ports during introspection. One of 'all',
|
||||||
|
# 'active' or 'pxe'.
|
||||||
|
kolla_inspector_port_addition:
|
||||||
|
|
||||||
|
# Whether to enable discovery of nodes not managed by Ironic.
|
||||||
|
kolla_inspector_enable_discovery:
|
||||||
|
|
||||||
|
# The Ironic driver with which to register newly discovered nodes.
|
||||||
|
kolla_inspector_discovery_enroll_node_driver:
|
||||||
|
|
||||||
|
# List of extra kernel parameters for the inspector default PXE configuration.
|
||||||
|
kolla_inspector_extra_kernel_options:
|
||||||
|
|
||||||
|
# URL of Ironic Python Agent (IPA) kernel image for Ironic Inspector.
|
||||||
|
kolla_inspector_ipa_kernel_upstream_url:
|
||||||
|
|
||||||
|
# URL of Ironic Python Agent (IPA) ramdisk image for Ironic Inspector.
|
||||||
|
kolla_inspector_ipa_ramdisk_upstream_url:
|
||||||
|
|
||||||
|
# Free form extra configuration to append to ironic-inspector.conf.
|
||||||
|
kolla_extra_inspector:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic inspector dnsmasq configuration.
|
||||||
|
|
||||||
|
# Start of range of IP addresses for dnsmasq to allocate from.
|
||||||
|
kolla_inspector_dhcp_pool_start:
|
||||||
|
|
||||||
|
# End of range of IP addresses for dnsmasq to allocate from.
|
||||||
|
kolla_inspector_dhcp_pool_end:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Glance configuration.
|
||||||
|
|
||||||
# Free form extra configuration to append to glance-api.conf and
|
# Free form extra configuration to append to glance-api.conf and
|
||||||
# glance-registry.conf.
|
# glance-registry.conf.
|
||||||
kolla_extra_glance:
|
kolla_extra_glance:
|
||||||
|
|
||||||
# Free form extra configuration to append to ironic.conf.
|
|
||||||
kolla_extra_ironic:
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
mode: 0755
|
mode: 0755
|
||||||
become: True
|
become: True
|
||||||
with_items:
|
with_items:
|
||||||
|
- { name: ironic, enabled: "{{ kolla_enable_ironic }}" }
|
||||||
- { name: swift, enabled: "{{ kolla_enable_swift }}" }
|
- { name: swift, enabled: "{{ kolla_enable_swift }}" }
|
||||||
when: "{{ item.enabled | bool }}"
|
when: "{{ item.enabled | bool }}"
|
||||||
|
|
||||||
@ -18,3 +19,17 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" }
|
- { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" }
|
||||||
- { src: ironic.conf.j2, dest: ironic.conf, enabled: "{{ kolla_enable_ironic }}" }
|
- { src: ironic.conf.j2, dest: ironic.conf, enabled: "{{ kolla_enable_ironic }}" }
|
||||||
|
- { src: ironic-dnsmasq.conf.j2, dest: ironic/ironic-dnsmasq.conf, enabled: "{{ kolla_enable_ironic }}" }
|
||||||
|
- { src: ironic-inspector.conf.j2, dest: ironic-inspector.conf, enabled: "{{ kolla_enable_ironic }}" }
|
||||||
|
- { src: pxelinux.default.j2, dest: ironic/pxelinux.default, enabled: "{{ kolla_enable_ironic }}" }
|
||||||
|
when: "{{ item.enabled | bool }}"
|
||||||
|
|
||||||
|
- name: Ensure the ironic inspector kernel and ramdisk exist
|
||||||
|
get_url:
|
||||||
|
url: "{{ item.url }}"
|
||||||
|
dest: "{{ kolla_node_custom_config_path }}/ironic/{{ item.dest }}"
|
||||||
|
become: True
|
||||||
|
with_items:
|
||||||
|
- { url: "{{ kolla_inspector_ipa_kernel_upstream_url }}", dest: "ironic-agent.kernel" }
|
||||||
|
- { url: "{{ kolla_inspector_ipa_ramdisk_upstream_url }}", dest: "ironic-agent.initramfs" }
|
||||||
|
when: "{{ kolla_enable_ironic | bool }}"
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
port=0
|
||||||
|
interface={% raw %}{{ ironic_dnsmasq_interface }}{% endraw %}
|
||||||
|
|
||||||
|
bind-interfaces
|
||||||
|
dhcp-range={{ kolla_inspector_dhcp_pool_start }},{{ kolla_inspector_dhcp_pool_end }},12h
|
||||||
|
dhcp-sequential-ip
|
||||||
|
dhcp-option=option:tftp-server,{% raw %}{{ kolla_internal_vip_address }}{% endraw %}
|
||||||
|
|
||||||
|
dhcp-option=option:server-ip-address,{% raw %}{{ kolla_internal_vip_address }}{% endraw %}
|
||||||
|
|
||||||
|
dhcp-option=option:bootfile-name,pxelinux.0
|
||||||
|
dhcp-option=210,/tftpboot/
|
@ -0,0 +1,41 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
[firewall]
|
||||||
|
# Whether inspector should manage the firewall.
|
||||||
|
manage_firewall = {{ kolla_inspector_manage_firewall }}
|
||||||
|
|
||||||
|
[processing]
|
||||||
|
{% if kolla_inspector_processing_hooks %}
|
||||||
|
# Comma-separated list of inspector processing plugins.
|
||||||
|
processing_hooks = {{ kolla_inspector_processing_hooks | join(',') }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if kolla_inspector_port_addition %}
|
||||||
|
# Which MAC addresses to add as ports during introspection. One of 'all',
|
||||||
|
# 'active' or 'pxe'.
|
||||||
|
add_ports = {{ kolla_inspector_port_addition }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Keep only those ports that were found during inspection.
|
||||||
|
keep_ports = present
|
||||||
|
|
||||||
|
# Store logs returned by the inspection ramdisk.
|
||||||
|
ramdisk_logs_dir = /var/log/kolla/ironic
|
||||||
|
always_store_ramdisk_logs = True
|
||||||
|
|
||||||
|
{% if kolla_inspector_enable_discovery %}
|
||||||
|
# Enable discovery when nodes do not exist in Ironic.
|
||||||
|
node_not_found_hook = enroll
|
||||||
|
|
||||||
|
[discovery]
|
||||||
|
# The driver with which to enroll newly discovered nodes in Ironic.
|
||||||
|
enroll_node_driver = {{ kolla_inspector_discovery_enroll_node_driver }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if kolla_extra_inspector %}
|
||||||
|
#######################
|
||||||
|
# Extra configuration
|
||||||
|
#######################
|
||||||
|
|
||||||
|
{{ kolla_extra_inspector }}
|
||||||
|
{% endif %}
|
@ -8,6 +8,9 @@ enabled_drivers = {{ ironic_drivers | join(',') }}
|
|||||||
api_url = {{ internal_protocol }}://{{ hostvars[inventory_hostname]['ansible_' + provision_interface | replace('-', '_')]['ipv4']['address'] }}:{{ ironic_api_port }}
|
api_url = {{ internal_protocol }}://{{ hostvars[inventory_hostname]['ansible_' + provision_interface | replace('-', '_')]['ipv4']['address'] }}:{{ ironic_api_port }}
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
|
[agent]
|
||||||
|
deploy_logs_local_path = /var/log/kolla/ironic/deploy
|
||||||
|
|
||||||
[pxe]
|
[pxe]
|
||||||
{% raw %}
|
{% raw %}
|
||||||
tftp_server = {{ hostvars[inventory_hostname]['ansible_' + provision_interface | replace('-', '_')]['ipv4']['address'] }}
|
tftp_server = {{ hostvars[inventory_hostname]['ansible_' + provision_interface | replace('-', '_')]['ipv4']['address'] }}
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
default introspect
|
||||||
|
|
||||||
|
label introspect
|
||||||
|
kernel ironic-agent.kernel
|
||||||
|
append initrd=ironic-agent.initramfs ipa-inspection-callback-url={% raw %}http://{{ kolla_internal_vip_address }}:{{ ironic_inspector_port }}/v1/continue{% endraw %} systemd.journald.forward_to_console=yes {{ kolla_inspector_extra_kernel_options | join(' ') }}
|
||||||
|
|
||||||
|
ipappend 3
|
Loading…
Reference in New Issue
Block a user