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.
|
||||
|
||||
# List of of inspector processing plugins.
|
||||
kolla_bifrost_inspector_processing_hooks:
|
||||
- root_disk_selection
|
||||
- scheduler
|
||||
- validate_interfaces
|
||||
- ramdisk_error
|
||||
- capabilities
|
||||
- pci_devices
|
||||
- raid_device
|
||||
- local_link_connection
|
||||
- lldp_basic
|
||||
kolla_bifrost_inspector_processing_hooks: "{{ inspector_processing_hooks }}"
|
||||
|
||||
# Which MAC addresses to add as ports during introspection. One of 'all',
|
||||
# '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.
|
||||
kolla_bifrost_inspector_extra_kernel_options:
|
||||
- "ipa-collect-lldp=1"
|
||||
kolla_bifrost_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"
|
||||
|
||||
# List of introspection rules for Bifrost's Ironic Inspector service.
|
||||
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.
|
||||
|
||||
# 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.
|
||||
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.
|
||||
|
@ -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.
|
||||
|
||||
|
@ -2,25 +2,40 @@
|
||||
- name: Ensure Kolla OpenStack components are configured
|
||||
hosts: config-mgmt
|
||||
pre_tasks:
|
||||
- name: Check whether Kolla extra Glance configuration file exists
|
||||
- name: Check whether Kolla extra configuration files exist
|
||||
stat:
|
||||
path: "{{ kayobe_config_path }}/kolla/config/glance.conf"
|
||||
register: glance_stat
|
||||
path: "{{ kayobe_config_path }}/kolla/config/{{ item.file }}"
|
||||
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:
|
||||
kolla_extra_glance: "{{ lookup('template', '{{ kayobe_config_path }}/kolla/config/glance.conf') }}"
|
||||
when: glance_stat.stat.exists
|
||||
kolla_extra_config: {}
|
||||
|
||||
- name: Check whether Kolla extra Ironic configuration file exists
|
||||
stat:
|
||||
path: "{{ kayobe_config_path }}/kolla/config/ironic.conf"
|
||||
register: ironic_stat
|
||||
|
||||
- name: Read the Kolla extra Ironic configuration file
|
||||
- name: Update a fact containing extra configuration
|
||||
set_fact:
|
||||
kolla_extra_ironic: "{{ lookup('template', '{{ kayobe_config_path }}/kolla/config/ironic.conf') }}"
|
||||
when: ironic_stat.stat.exists
|
||||
kolla_extra_config: "{{ kolla_extra_config | combine({item.item.name: lookup('template', '{{ item.stat.path }}')}) }}"
|
||||
with_items: "{{ stat_result.results }}"
|
||||
when: "{{ item.stat.exists }}"
|
||||
|
||||
roles:
|
||||
- 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.
|
||||
kolla_node_custom_config_path:
|
||||
|
||||
###############################################################################
|
||||
# Ironic configuration.
|
||||
|
||||
# List of enabled Ironic drivers.
|
||||
ironic_drivers:
|
||||
- agent_ssh
|
||||
@ -9,9 +12,52 @@ ironic_drivers:
|
||||
- pxe_ssh
|
||||
- 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
|
||||
# glance-registry.conf.
|
||||
kolla_extra_glance:
|
||||
|
||||
# Free form extra configuration to append to ironic.conf.
|
||||
kolla_extra_ironic:
|
||||
|
@ -6,6 +6,7 @@
|
||||
mode: 0755
|
||||
become: True
|
||||
with_items:
|
||||
- { name: ironic, enabled: "{{ kolla_enable_ironic }}" }
|
||||
- { name: swift, enabled: "{{ kolla_enable_swift }}" }
|
||||
when: "{{ item.enabled | bool }}"
|
||||
|
||||
@ -18,3 +19,17 @@
|
||||
with_items:
|
||||
- { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" }
|
||||
- { 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 }}
|
||||
{% endraw %}
|
||||
|
||||
[agent]
|
||||
deploy_logs_local_path = /var/log/kolla/ironic/deploy
|
||||
|
||||
[pxe]
|
||||
{% raw %}
|
||||
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