Merge "remove oneview support from ironic"
This commit is contained in:
commit
f83b8b921a
@ -82,11 +82,6 @@ ironic_services:
|
|||||||
group: ironic_conductor
|
group: ironic_conductor
|
||||||
service_name: ironic-conductor
|
service_name: ironic-conductor
|
||||||
init_config_overrides: "{{ ironic_conductor_init_config_overrides }}"
|
init_config_overrides: "{{ ironic_conductor_init_config_overrides }}"
|
||||||
ironic-oneviewd:
|
|
||||||
group: ironic_conductor
|
|
||||||
service_name: ironic-oneviewd
|
|
||||||
service_en: "{{ 'oneview' in (filtered_ironic_drivers | json_query('[*].hardware_type') | unique) }}"
|
|
||||||
init_config_overrides: "{{ ironic_oneviewd_init_config_overrides }}"
|
|
||||||
|
|
||||||
|
|
||||||
ironic_service_name: ironic
|
ironic_service_name: ironic
|
||||||
@ -148,38 +143,6 @@ ironic_automated_clean: false
|
|||||||
# Set to 0 to disable erase devices on cleaning
|
# Set to 0 to disable erase devices on cleaning
|
||||||
ironic_erase_devices_priority: 10
|
ironic_erase_devices_priority: 10
|
||||||
|
|
||||||
## ironic-oneview
|
|
||||||
ironic_oneview_manager_url: ""
|
|
||||||
ironic_oneview_username: ""
|
|
||||||
ironic_oneview_password: ""
|
|
||||||
ironic_oneview_allow_insecure_connections: False
|
|
||||||
ironic_oneview_tls_cacert_file: "None"
|
|
||||||
ironic_oneview_max_polling_attempts: 12
|
|
||||||
|
|
||||||
# ironic-oneviewd
|
|
||||||
# Polling interval in seconds for daemon to manage the nodes
|
|
||||||
ironic_oneviewd_retry_interval: 15
|
|
||||||
# Size the of the RPC thread pool
|
|
||||||
ironic_oneviewd_rpc_thread_pool_size: 20
|
|
||||||
# (Optional) Whether to enable the periodic tasks for OneView
|
|
||||||
# driver be aware when OneView hardware resources are taken
|
|
||||||
# and released by Ironic or OneView users and proactively
|
|
||||||
# manage nodes in clean fail state according to Dynamic
|
|
||||||
# Allocation model of hardware resources allocation in
|
|
||||||
# OneView
|
|
||||||
ironic_oneviewd_enable_periodic_tasks: True
|
|
||||||
# Period (in seconds) for periodic tasks to be executed when
|
|
||||||
# enable_periodic_tasks is True
|
|
||||||
ironic_oneviewd_periodic_check_interval: "{{ ironic_oneviewd_retry_interval }}"
|
|
||||||
# (Optional) Enable auditing of OneView API requests
|
|
||||||
ironic_oneviewd_audit_enabled: False
|
|
||||||
# Path to map file for OneView audit cases. Used only when
|
|
||||||
# OneView API audit is enabled
|
|
||||||
ironic_oneviewd_audit_map_file: "None"
|
|
||||||
# Path to OneView audit log file. Created only when Oneview
|
|
||||||
# API audit is enabled.
|
|
||||||
ironic_oneviewd_audit_output_file: "None"
|
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
ironic_db_setup_host: "{{ ('galera_all' in groups) | ternary(groups['galera_all'][0], 'localhost') }}"
|
ironic_db_setup_host: "{{ ('galera_all' in groups) | ternary(groups['galera_all'][0], 'localhost') }}"
|
||||||
ironic_galera_address: "{{ galera_address | default('127.0.0.1') }}"
|
ironic_galera_address: "{{ galera_address | default('127.0.0.1') }}"
|
||||||
@ -228,12 +191,6 @@ ironic_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/ironic.tgz
|
|||||||
|
|
||||||
ironic_tftp_server_address: "{{ ansible_host }}"
|
ironic_tftp_server_address: "{{ ansible_host }}"
|
||||||
|
|
||||||
ironic_oneview_optional_pip_packages:
|
|
||||||
- ironic-oneview-cli
|
|
||||||
- ironic-oneviewd
|
|
||||||
- python-oneviewclient
|
|
||||||
- hpOneView
|
|
||||||
|
|
||||||
ironic_pip_packages:
|
ironic_pip_packages:
|
||||||
- cryptography
|
- cryptography
|
||||||
- ImcSdk
|
- ImcSdk
|
||||||
@ -315,7 +272,6 @@ ironic_role_project_group: ironic_all
|
|||||||
|
|
||||||
### Config Overrides
|
### Config Overrides
|
||||||
ironic_ironic_conf_overrides: {}
|
ironic_ironic_conf_overrides: {}
|
||||||
ironic_ironic_oneviewd_conf_overrides: {}
|
|
||||||
ironic_rootwrap_conf_overrides: {}
|
ironic_rootwrap_conf_overrides: {}
|
||||||
ironic_policy_overrides: {}
|
ironic_policy_overrides: {}
|
||||||
ironic_api_uwsgi_ini_overrides: {}
|
ironic_api_uwsgi_ini_overrides: {}
|
||||||
@ -325,7 +281,6 @@ ironic_pxe_append_params: "ipa-debug=1 systemd.journald.forward_to_console=yes"
|
|||||||
|
|
||||||
ironic_api_init_config_overrides: {}
|
ironic_api_init_config_overrides: {}
|
||||||
ironic_conductor_init_config_overrides: {}
|
ironic_conductor_init_config_overrides: {}
|
||||||
ironic_oneviewd_init_config_overrides: {}
|
|
||||||
|
|
||||||
# driver definitions
|
# driver definitions
|
||||||
ironic_drivers_enabled:
|
ironic_drivers_enabled:
|
||||||
|
@ -217,185 +217,3 @@ Now boot a node:
|
|||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
nova boot --flavor ${FLAVOR_NAME} --image ${IMAGE_NAME} --key-name admin ${NODE_NAME}
|
nova boot --flavor ${FLAVOR_NAME} --image ${IMAGE_NAME} --key-name admin ${NODE_NAME}
|
||||||
|
|
||||||
Setup OpenStack-Ansible with ironic-OneView drivers
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
HP OneView is a single integrated platform, packaged as an appliance that
|
|
||||||
implements a software-defined approach to managing physical infrastructure.
|
|
||||||
The appliance supports scenarios such as deploying bare metal servers with
|
|
||||||
ironic (Bare Metal service). In this context, the HP OneView driver enables
|
|
||||||
the users of OneView to use ironic as a bare metal provider to their managed
|
|
||||||
physical hardware.
|
|
||||||
|
|
||||||
Currently there are two ironic-OneView drivers:
|
|
||||||
|
|
||||||
#. ``iscsi_pxe_oneview``
|
|
||||||
#. ``agent_pxe_oneview``
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
|
|
||||||
When using the ``iscsi_pxe_oneview`` drivers, install ironic-conductor
|
|
||||||
on metal. Add ``is_metal: true`` to the properties of the
|
|
||||||
``ironic_conductor_container`` section in ``/opt/openstack-ansible/
|
|
||||||
playbooks/inventory/env.d/ironic.yml`` before running the
|
|
||||||
ironic installation playbook.
|
|
||||||
|
|
||||||
|
|
||||||
Considering that the ironic images and network are already in place.
|
|
||||||
Configuring OpenStack-Ansible to set up ironic with the OneView drivers
|
|
||||||
requires the following variables to be defined in
|
|
||||||
``/etc/openstack_deploy/user_variables``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
## Ironic
|
|
||||||
ironic_openstack_driver_list:
|
|
||||||
- pxe_ipmitool
|
|
||||||
- agent_ipmitool
|
|
||||||
- agent_pxe_oneview
|
|
||||||
- iscsi_pxe_oneview
|
|
||||||
ironic_automated_clean: True
|
|
||||||
|
|
||||||
## Nova
|
|
||||||
nova_reserved_host_disk_mb: 0
|
|
||||||
nova_reserved_host_memory_mb: 0
|
|
||||||
nova_scheduler_host_subset_size: 99999999
|
|
||||||
|
|
||||||
## ironic-oneviewd
|
|
||||||
ironic_oneview_manager_url: "<oneview_url>"
|
|
||||||
ironic_oneview_username: "<oneview_username>"
|
|
||||||
ironic_oneview_password: "<oneview_password>"
|
|
||||||
|
|
||||||
Replace ``<oneview_*>`` with the respective OneView resources.
|
|
||||||
|
|
||||||
Run the os-ironic-install.yml playbook:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
cd /opt/openstack-ansible/playbooks
|
|
||||||
openstack-ansible os-ironic-install.yml
|
|
||||||
|
|
||||||
Adding bare metal nodes
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Ironic-OneView CLI is a command line interface tool for the OneView Drivers
|
|
||||||
for ironic. It allows the user to easily create and configure ironic nodes,
|
|
||||||
compatible with OneView Server Hardware objects, and create nova flavors to
|
|
||||||
match available Ironic nodes that use OneView drivers. It also offers the
|
|
||||||
option to migrate Ironic nodes using pre-allocation model to the dynamic
|
|
||||||
allocation model.
|
|
||||||
|
|
||||||
#. Install ``ironic-oneview-cli`` on the utility container:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
pip install ironic-oneview-cli
|
|
||||||
|
|
||||||
#. Add the following variables to the openrc file:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
export OV_AUTH_URL=<oneview_url>
|
|
||||||
export OV_USERNAME=<oneview_username>
|
|
||||||
export OV_PASSWORD=<oneview_password>
|
|
||||||
export OS_IRONIC_NODE_DRIVER=<ironic_driver>
|
|
||||||
export OS_IRONIC_DEPLOY_KERNEL_UUID=<kernel_deploy_image_id>
|
|
||||||
export OS_IRONIC_DEPLOY_RAMDISK_UUID=<ramdisk_deploy_image_id>
|
|
||||||
|
|
||||||
Replace ``<*_id>`` with the ID of the respective resource. Also replace
|
|
||||||
``<oneview_*>`` with the respective OneView resources and
|
|
||||||
``<ironic_driver>`` with the driver being used to manage the node.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Optionally we can use ``ironic-oneview-cli`` to generate a configuration
|
|
||||||
file by running the following command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
ironic-oneview genrc
|
|
||||||
|
|
||||||
#. Create Ironic nodes, based on available HPE OneView Server Hardware objects,
|
|
||||||
by running the following command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
. openrc
|
|
||||||
ironic-oneview node-create
|
|
||||||
|
|
||||||
The tool will ask you to choose a valid Server Profile Template from those retrieved
|
|
||||||
from HPE OneView appliance:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
Retrieving Server Profile Templates from OneView...
|
|
||||||
+----+------------------------+----------------------+---------------------------+
|
|
||||||
| Id | Name | Enclosure Group Name | Server Hardware Type Name |
|
|
||||||
+----+------------------------+----------------------+---------------------------+
|
|
||||||
| 1 | template-dcs-virt-enc3 | virt-enclosure-group | BL460c Gen8 3 |
|
|
||||||
| 2 | template-dcs-virt-enc4 | virt-enclosure-group | BL660c Gen9 1 |
|
|
||||||
+----+------------------------+----------------------+---------------------------+
|
|
||||||
|
|
||||||
Once a valid Server Profile Template has been chosen, the tool lists the available Server
|
|
||||||
Hardware that match the chosen Server Profile Template. Choose a Server Hardware to be
|
|
||||||
used as base to the Ironic node:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
Listing compatible Server Hardware objects...
|
|
||||||
+----+-----------------+------+-----------+----------+----------------------+---------------------------+
|
|
||||||
| Id | Name | CPUs | Memory MB | Local GB | Enclosure Group Name | Server Hardware Type Name |
|
|
||||||
+----+-----------------+------+-----------+----------+----------------------+---------------------------+
|
|
||||||
| 1 | VIRT-enl, bay 5 | 8 | 32768 | 120 | virt-enclosure-group | BL460c Gen8 3 |
|
|
||||||
| 2 | VIRT-enl, bay 8 | 8 | 32768 | 120 | virt-enclosure-group | BL460c Gen8 3 |
|
|
||||||
+----+-----------------+------+-----------+----------+----------------------+---------------------------+
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Multiple Ironic nodes can be created at once by typing multiple Server Hardware IDs
|
|
||||||
separated by blank spaces.
|
|
||||||
|
|
||||||
The created Ironic nodes will be in the *enroll* provisioning state, going to the
|
|
||||||
*manageable* state then *cleaning*. After a susccesfull cleaning the node
|
|
||||||
should be on the *available* state. This means that the node is ready to be
|
|
||||||
provisioned.
|
|
||||||
|
|
||||||
Creating flavors
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Run the following command to create Nova flavors compatible with available
|
|
||||||
Ironic nodes:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
. openrc
|
|
||||||
ironic-oneview flavor-create
|
|
||||||
|
|
||||||
The tool will now prompt you to choose a valid flavor configuration, according
|
|
||||||
to available Ironic nodes:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
+----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
|
|
||||||
| Id | CPUs | Disk GB | Memory MB | Server Profile Template | Server Hardware Type | Enclosure Group Name |
|
|
||||||
+----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
|
|
||||||
| 1 | 8 | 120 | 8192 | second-virt-server-profile-template | BL460c Gen8 3 | virt-enclosure-group |
|
|
||||||
+----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
|
|
||||||
|
|
||||||
After choosing a valid configuration ID, you will be prompted to name the new
|
|
||||||
flavor. Leaving the field blank, a default name will be used.
|
|
||||||
|
|
||||||
Deploying a bare metal node
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Boot the node with the previously created flavor:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
nova boot --flavor <flavor_name> --image <image_name> --key-name <key>
|
|
||||||
|
|
||||||
Replace ``<flavor_name>`` with the name of the flavor created using
|
|
||||||
ironic-oneview, also replace ``<image_name>`` with the name of the
|
|
||||||
image to be used to provision the node (user image) and ``<key_name>``
|
|
||||||
with the key.
|
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
# Copyright 2016 Hewlett Packard Enterprise Development LP.
|
|
||||||
# Copyright 2016 Universidade Federal de Campina Grande
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
|
|
||||||
- name: Create ironic-oneviewd dir
|
|
||||||
file:
|
|
||||||
path: "/etc/ironic-oneviewd"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ ironic_system_user_name }}"
|
|
||||||
group: "{{ ironic_system_group_name }}"
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- name: Install ironic-oneview pip packages (venv)
|
|
||||||
pip:
|
|
||||||
name: "{{ ironic_oneview_optional_pip_packages }}"
|
|
||||||
state: "{{ ironic_pip_package_state }}"
|
|
||||||
virtualenv: "{{ ironic_bin | dirname }}"
|
|
||||||
virtualenv_site_packages: "no"
|
|
||||||
extra_args: >-
|
|
||||||
{{ ironic_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }}
|
|
||||||
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }}
|
|
||||||
{{ pip_install_options | default('') }}
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages is success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
|
|
||||||
- name: Generate ironic-oneviewd config
|
|
||||||
config_template:
|
|
||||||
src: "ironic-oneviewd.conf.j2"
|
|
||||||
dest: "/etc/ironic-oneviewd/ironic-oneviewd.conf"
|
|
||||||
owner: "{{ ironic_system_user_name }}"
|
|
||||||
group: "{{ ironic_system_group_name }}"
|
|
||||||
mode: "0644"
|
|
||||||
config_overrides: "{{ ironic_ironic_oneviewd_conf_overrides }}"
|
|
||||||
config_type: "ini"
|
|
||||||
notify: Restart ironic services
|
|
@ -32,9 +32,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- ironic-install
|
- ironic-install
|
||||||
|
|
||||||
- include_tasks: ironic_oneview_setup.yml
|
|
||||||
when: "'ironic-oneviewd' in (filtered_ironic_services | map(attribute='service_key') | list)"
|
|
||||||
|
|
||||||
- include_tasks: ironic_post_install.yml
|
- include_tasks: ironic_post_install.yml
|
||||||
tags:
|
tags:
|
||||||
- ironic-config
|
- ironic-config
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
[DEFAULT]
|
|
||||||
retry_interval = {{ ironic_oneviewd_retry_interval }}
|
|
||||||
rpc_thread_pool_size = {{ ironic_oneviewd_rpc_thread_pool_size }}
|
|
||||||
|
|
||||||
[oneview]
|
|
||||||
manager_url = {{ ironic_oneview_manager_url }}
|
|
||||||
username = {{ ironic_oneview_username }}
|
|
||||||
password = {{ ironic_oneview_password }}
|
|
||||||
allow_insecure_connections = {{ ironic_oneview_allow_insecure_connections }}
|
|
||||||
tls_cacert_file = {{ ironic_oneview_tls_cacert_file }}
|
|
||||||
max_polling_attempts = {{ ironic_oneview_max_polling_attempts }}
|
|
||||||
enable_periodic_tasks = {{ ironic_oneviewd_enable_periodic_tasks }}
|
|
||||||
periodic_check_interval = {{ ironic_oneviewd_periodic_check_interval }}
|
|
||||||
audit_enabled = {{ ironic_oneviewd_audit_enabled }}
|
|
||||||
audit_map_file = {{ ironic_oneviewd_audit_map_file }}
|
|
||||||
audit_output_file = {{ ironic_oneviewd_audit_output_file }}
|
|
||||||
|
|
||||||
[openstack]
|
|
||||||
auth_url = {{ keystone_service_adminuri }}
|
|
||||||
username = {{ ironic_service_user_name }}
|
|
||||||
password = {{ ironic_service_password }}
|
|
||||||
region_name = {{ keystone_service_region }}
|
|
||||||
insecure = {{ keystone_service_internaluri_insecure | bool }}
|
|
||||||
endpoint_type = internalURL
|
|
||||||
project_name = {{ ironic_service_project_name }}
|
|
||||||
user_domain_id = {{ ironic_service_user_domain_id }}
|
|
||||||
project_domain_id = {{ ironic_service_project_domain_id }}
|
|
@ -161,16 +161,6 @@ provisioning_network = {{ ironic_neutron_provisioning_network_uuid | default(iro
|
|||||||
cleaning_network = {{ ironic_neutron_cleaning_network_uuid | default(ironic_neutron_cleaning_network_name) | default(ironic_neutron_provisioning_network_uuid) | default(ironic_neutron_provisioning_network_name) | default('') }}
|
cleaning_network = {{ ironic_neutron_cleaning_network_uuid | default(ironic_neutron_cleaning_network_name) | default(ironic_neutron_provisioning_network_uuid) | default(ironic_neutron_provisioning_network_name) | default('') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[oneview]
|
|
||||||
{%- if 'oneview' in (filtered_ironic_drivers | json_query('[*].hardware_type') | unique) -%}
|
|
||||||
manager_url = {{ ironic_oneview_manager_url }}
|
|
||||||
username = {{ ironic_oneview_username }}
|
|
||||||
password = {{ ironic_oneview_password }}
|
|
||||||
allow_insecure_connections = {{ ironic_oneview_allow_insecure_connections }}
|
|
||||||
tls_cacert_file = {{ ironic_oneview_tls_cacert_file }}
|
|
||||||
max_polling_attempts = {{ ironic_oneview_max_polling_attempts }}
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
[oslo_concurrency]
|
[oslo_concurrency]
|
||||||
lock_path = {{ ironic_lock_path }}
|
lock_path = {{ ironic_lock_path }}
|
||||||
|
|
||||||
|
@ -45,13 +45,6 @@ ironic_driver_types:
|
|||||||
inspect: irmc
|
inspect: irmc
|
||||||
management: irmc
|
management: irmc
|
||||||
power: irmc
|
power: irmc
|
||||||
agent_pxe_oneview:
|
|
||||||
hardware_type: oneview
|
|
||||||
boot: pxe
|
|
||||||
deploy: oneview-direct
|
|
||||||
inspect: oneview
|
|
||||||
management: oneview
|
|
||||||
power: oneview
|
|
||||||
agent_ucs:
|
agent_ucs:
|
||||||
hardware_type: cisco-ucs-managed
|
hardware_type: cisco-ucs-managed
|
||||||
boot: pxe
|
boot: pxe
|
||||||
@ -73,13 +66,6 @@ ironic_driver_types:
|
|||||||
inspect: irmc
|
inspect: irmc
|
||||||
management: irmc
|
management: irmc
|
||||||
power: irmc
|
power: irmc
|
||||||
iscsi_pxe_oneview:
|
|
||||||
hardware_type: oneview
|
|
||||||
boot: pxe
|
|
||||||
deploy: oneview-iscsi
|
|
||||||
inspect: oneview
|
|
||||||
management: oneview
|
|
||||||
power: oneview
|
|
||||||
pxe_agent_cimc:
|
pxe_agent_cimc:
|
||||||
hardware_type: cisco-ucs-standalone
|
hardware_type: cisco-ucs-standalone
|
||||||
boot: pxe
|
boot: pxe
|
||||||
|
Loading…
x
Reference in New Issue
Block a user