Remove Hyper-V integration
Change-Id: I2e22ec47f644de2f1509a0111c9e1fffe8da0a1a
This commit is contained in:
parent
61e32bb131
commit
6eb02245d6
@ -601,7 +601,6 @@ enable_horizon_trove: "{{ enable_trove | bool }}"
|
|||||||
enable_horizon_vitrage: "{{ enable_vitrage | bool }}"
|
enable_horizon_vitrage: "{{ enable_vitrage | bool }}"
|
||||||
enable_horizon_watcher: "{{ enable_watcher | bool }}"
|
enable_horizon_watcher: "{{ enable_watcher | bool }}"
|
||||||
enable_horizon_zun: "{{ enable_zun | bool }}"
|
enable_horizon_zun: "{{ enable_zun | bool }}"
|
||||||
enable_hyperv: "no"
|
|
||||||
enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}"
|
enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}"
|
||||||
enable_ironic: "no"
|
enable_ironic: "no"
|
||||||
enable_ironic_ipxe: "no"
|
enable_ironic_ipxe: "no"
|
||||||
|
@ -75,16 +75,6 @@ control
|
|||||||
[haproxy:children]
|
[haproxy:children]
|
||||||
network
|
network
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
#hyperv_host
|
|
||||||
|
|
||||||
[hyperv:vars]
|
|
||||||
#ansible_user=user
|
|
||||||
#ansible_password=password
|
|
||||||
#ansible_port=5986
|
|
||||||
#ansible_connection=winrm
|
|
||||||
#ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[mariadb:children]
|
[mariadb:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
@ -99,16 +99,6 @@ control
|
|||||||
[haproxy:children]
|
[haproxy:children]
|
||||||
network
|
network
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
#hyperv_host
|
|
||||||
|
|
||||||
[hyperv:vars]
|
|
||||||
#ansible_user=user
|
|
||||||
#ansible_password=password
|
|
||||||
#ansible_port=5986
|
|
||||||
#ansible_connection=winrm
|
|
||||||
#ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[mariadb:children]
|
[mariadb:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
@ -357,12 +357,10 @@ mechanism_drivers:
|
|||||||
enabled: "{{ neutron_plugin_agent == 'linuxbridge' }}"
|
enabled: "{{ neutron_plugin_agent == 'linuxbridge' }}"
|
||||||
- name: "openvswitch"
|
- name: "openvswitch"
|
||||||
enabled: "{{ neutron_plugin_agent == 'openvswitch' }}"
|
enabled: "{{ neutron_plugin_agent == 'openvswitch' }}"
|
||||||
- name: "hyperv"
|
|
||||||
enabled: "{{ enable_hyperv | bool }}"
|
|
||||||
- name: "baremetal"
|
- name: "baremetal"
|
||||||
enabled: "{{ enable_ironic_neutron_agent | bool }}"
|
enabled: "{{ enable_ironic_neutron_agent | bool }}"
|
||||||
- name: "l2population"
|
- name: "l2population"
|
||||||
enabled: "{{ not enable_hyperv | bool and neutron_plugin_agent != 'ovn' }}"
|
enabled: "{{ neutron_plugin_agent != 'ovn' }}"
|
||||||
- name: "ovn"
|
- name: "ovn"
|
||||||
enabled: "{{ neutron_plugin_agent == 'ovn' }}"
|
enabled: "{{ neutron_plugin_agent == 'ovn' }}"
|
||||||
|
|
||||||
@ -373,13 +371,13 @@ neutron_mechanism_drivers: "{{ mechanism_drivers | selectattr('enabled', 'equalt
|
|||||||
####################
|
####################
|
||||||
extension_drivers:
|
extension_drivers:
|
||||||
- name: "qos"
|
- name: "qos"
|
||||||
enabled: "{{ enable_neutron_qos | bool and not enable_hyperv | bool }}"
|
enabled: "{{ enable_neutron_qos | bool }}"
|
||||||
- name: "port_security"
|
- name: "port_security"
|
||||||
enabled: true
|
enabled: true
|
||||||
- name: "dns"
|
- name: "dns"
|
||||||
enabled: "{{ enable_designate | bool and not enable_hyperv | bool }}"
|
enabled: "{{ enable_designate | bool }}"
|
||||||
- name: "sfc"
|
- name: "sfc"
|
||||||
enabled: "{{ enable_neutron_sfc | bool and not enable_hyperv | bool }}"
|
enabled: "{{ enable_neutron_sfc | bool }}"
|
||||||
|
|
||||||
neutron_extension_drivers: "{{ extension_drivers | selectattr('enabled', 'equalto', true) | list }}"
|
neutron_extension_drivers: "{{ extension_drivers | selectattr('enabled', 'equalto', true) | list }}"
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
project_name: "nova-hyperv"
|
|
||||||
|
|
||||||
msi_dir: "%SYSTEMDRIVE%\\OpenStack\\MSIs"
|
|
||||||
log_dir: "%SYSTEMDRIVE%\\OpenStack\\Log"
|
|
||||||
freerdp_msi_url: "https://cloudbase.it/downloads/FreeRDPWebConnect.msi"
|
|
||||||
hyperv_compute_msi: "HyperVNovaCompute.msi"
|
|
||||||
freerdp_webconnect_msi: "FreeRDPWebConnect.msi"
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Notification
|
|
||||||
####################
|
|
||||||
nova_notification_topics:
|
|
||||||
- name: notifications
|
|
||||||
enabled: "{{ enable_ceilometer | bool or enable_searchlight | bool or enable_neutron_infoblox_ipam_agent | bool }}"
|
|
||||||
- name: notifications_designate
|
|
||||||
enabled: "{{ enable_designate | bool }}"
|
|
||||||
- name: vitrage_notifications
|
|
||||||
enabled: "{{ enable_vitrage | bool }}"
|
|
||||||
|
|
||||||
nova_enabled_notification_topics: "{{ nova_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
|
@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Restart nova-compute
|
|
||||||
win_service:
|
|
||||||
name: nova-compute
|
|
||||||
state: restarted
|
|
||||||
|
|
||||||
- name: Restart neutron-hyperv-agent
|
|
||||||
win_service:
|
|
||||||
name: neutron-hyperv-agent
|
|
||||||
state: restarted
|
|
||||||
|
|
||||||
- name: Restart FreeRDP-WebConnect
|
|
||||||
win_service:
|
|
||||||
name: wsgate
|
|
||||||
state: restarted
|
|
@ -1 +0,0 @@
|
|||||||
---
|
|
@ -1,39 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Create log directory
|
|
||||||
win_command: "cmd /c mkdir {{ log_dir }}"
|
|
||||||
args:
|
|
||||||
creates: "{{ log_dir }}"
|
|
||||||
|
|
||||||
- name: Configure nova-compute
|
|
||||||
win_template:
|
|
||||||
src: "{{ item }}"
|
|
||||||
dest: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\etc\\nova.conf"
|
|
||||||
with_first_found:
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/nova_hyperv.conf"
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/nova_hyperv.conf"
|
|
||||||
- "nova_hyperv.conf.j2"
|
|
||||||
notify: Restart nova-compute
|
|
||||||
|
|
||||||
- name: Configure neutron-hyperv-agent
|
|
||||||
win_template:
|
|
||||||
src: "{{ item }}"
|
|
||||||
dest: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\etc\\neutron_hyperv_agent.conf"
|
|
||||||
with_first_found:
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/neutron_hyperv_agent.conf"
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/neutron_hyperv_agent.conf"
|
|
||||||
- "neutron_hyperv_agent.conf.j2"
|
|
||||||
notify: Restart neutron-hyperv-agent
|
|
||||||
|
|
||||||
- name: Configure FreeRDP-WebConnect
|
|
||||||
win_template:
|
|
||||||
src: "{{ item }}"
|
|
||||||
dest: "%PROGRAMFILES%\\Cloudbase Solutions\\FreeRDP-WebConnect\\etc\\wsgate.ini"
|
|
||||||
with_first_found:
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/{{ inventory_hostname }}/wsgate.ini"
|
|
||||||
- "{{ node_custom_config }}/nova-hyperv/wsgate.ini"
|
|
||||||
- "wsgate.ini.j2"
|
|
||||||
notify: Restart FreeRDP-WebConnect
|
|
||||||
|
|
||||||
- include_tasks: copy-certs.yml
|
|
||||||
when:
|
|
||||||
- kolla_copy_ca_into_containers | bool
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
- name: "Copy certificates and keys for {{ project_name }}"
|
|
||||||
import_role:
|
|
||||||
role: service-cert-copy
|
|
||||||
vars:
|
|
||||||
project_services: "{{ nova_hyperv_services }}"
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
- include_tasks: install.yml
|
|
||||||
when: inventory_hostname in groups['hyperv']
|
|
||||||
|
|
||||||
- include_tasks: config.yml
|
|
||||||
when: inventory_hostname in groups['hyperv']
|
|
@ -1,26 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Create MSIs download directory
|
|
||||||
win_command: "cmd /c mkdir {{ msi_dir }}"
|
|
||||||
args:
|
|
||||||
creates: "{{ msi_dir }}"
|
|
||||||
|
|
||||||
- name: Download Nova and FreeRDP-WebConnect MSIs
|
|
||||||
win_get_url:
|
|
||||||
url: "{{ item.name }}"
|
|
||||||
dest: "{{ item.destination }}"
|
|
||||||
force: no
|
|
||||||
with_items:
|
|
||||||
- { name: "{{ nova_msi_url }}", destination: "{{ msi_dir }}\\{{ hyperv_compute_msi }}" }
|
|
||||||
- { name: "{{ freerdp_msi_url }}", destination: "{{ msi_dir }}\\{{ freerdp_webconnect_msi }}" }
|
|
||||||
|
|
||||||
- name: Install the Compute MSI
|
|
||||||
win_command: "msiexec /i {{ hyperv_compute_msi }} SKIPNOVACONF=0"
|
|
||||||
args:
|
|
||||||
chdir: "{{ msi_dir }}"
|
|
||||||
creates: "%PROGRAMFILES%\\Cloudbase Solutions\\OpenStack\\Nova\\bin"
|
|
||||||
|
|
||||||
- name: Install the FreeRDP-WebConnect MSI
|
|
||||||
win_command: "msiexec.exe /i {{ freerdp_webconnect_msi }}"
|
|
||||||
args:
|
|
||||||
chdir: "{{ msi_dir }}"
|
|
||||||
creates: "%PROGRAMFILES%\\Cloudbase Solutions\\FreeRDP-WebConnect\\Binaries"
|
|
@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Warn about deprecation
|
|
||||||
debug:
|
|
||||||
msg: >
|
|
||||||
Nova Hyper-V deployment role is deprecated in Ussuri and will be removed
|
|
||||||
in Victoria. Please read release notes for more background.
|
|
||||||
|
|
||||||
- include_tasks: "{{ kolla_action }}.yml"
|
|
@ -1 +0,0 @@
|
|||||||
---
|
|
@ -1 +0,0 @@
|
|||||||
---
|
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
- include_tasks: deploy.yml
|
|
@ -1 +0,0 @@
|
|||||||
---
|
|
@ -1,26 +0,0 @@
|
|||||||
[DEFAULT]
|
|
||||||
debug = {{ openstack_logging_debug }}
|
|
||||||
control_exchange = neutron
|
|
||||||
rpc_backend = rabbit
|
|
||||||
log_dir = C:\OpenStack\Log
|
|
||||||
log_file = neutron-hyperv-agent.log
|
|
||||||
transport_url = {{ rpc_transport_url }}
|
|
||||||
|
|
||||||
[AGENT]
|
|
||||||
polling_interval = 2
|
|
||||||
physical_network_vswitch_mappings = *:{{ vswitch_name }}
|
|
||||||
enable_metrics_collection = false
|
|
||||||
enable_qos_extension = false
|
|
||||||
|
|
||||||
[SECURITYGROUP]
|
|
||||||
firewall_driver = hyperv
|
|
||||||
enable_security_group = true
|
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
|
||||||
transport_url = {{ notify_transport_url }}
|
|
||||||
{% if nova_enabled_notification_topics %}
|
|
||||||
driver = messagingv2
|
|
||||||
topics = {{ nova_enabled_notification_topics | map(attribute='name') | join(',') }}
|
|
||||||
{% else %}
|
|
||||||
driver = noop
|
|
||||||
{% endif %}
|
|
@ -1,78 +0,0 @@
|
|||||||
[DEFAULT]
|
|
||||||
compute_driver = compute_hyperv.driver.HyperVDriver
|
|
||||||
instances_path = C:\OpenStack\Instances
|
|
||||||
use_cow_images = true
|
|
||||||
flat_injected = true
|
|
||||||
mkisofs_cmd = C:\Program Files\Cloudbase Solutions\OpenStack\Nova\bin\mkisofs.exe
|
|
||||||
debug = {{ openstack_logging_debug }}
|
|
||||||
allow_resize_to_same_host = true
|
|
||||||
running_deleted_instance_action = reap
|
|
||||||
running_deleted_instance_poll_interval = 120
|
|
||||||
resize_confirm_window = 5
|
|
||||||
resume_guests_state_on_host_boot = true
|
|
||||||
rpc_response_timeout = 1800
|
|
||||||
lock_path = C:\OpenStack\Log
|
|
||||||
vif_plugging_is_fatal = false
|
|
||||||
vif_plugging_timeout = 60
|
|
||||||
rpc_backend = rabbit
|
|
||||||
log_dir = C:\OpenStack\Log
|
|
||||||
log_file = nova-compute.log
|
|
||||||
force_config_drive = True
|
|
||||||
transport_url = {{ rpc_transport_url }}
|
|
||||||
|
|
||||||
[placement]
|
|
||||||
auth_type = password
|
|
||||||
auth_url = {{ keystone_admin_url }}/v3
|
|
||||||
project_name = service
|
|
||||||
username = {{ placement_keystone_user }}
|
|
||||||
password = {{ placement_keystone_password }}
|
|
||||||
project_domain_name = {{ default_project_domain_name }}
|
|
||||||
user_domain_name = {{ default_user_domain_name }}
|
|
||||||
os_region_name = {{ openstack_region_name }}
|
|
||||||
cafile = {{ openstack_cacert }}
|
|
||||||
|
|
||||||
[glance]
|
|
||||||
api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}
|
|
||||||
cafile = {{ openstack_cacert }}
|
|
||||||
|
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
vswitch_name = {{ vswitch_name }}
|
|
||||||
limit_cpu_features = false
|
|
||||||
config_drive_inject_password = true
|
|
||||||
qemu_img_cmd = C:\Program Files\Cloudbase Solutions\OpenStack\Nova\bin\qemu-img.exe
|
|
||||||
config_drive_cdrom = true
|
|
||||||
dynamic_memory_ratio = 1
|
|
||||||
enable_instance_metrics_collection = false
|
|
||||||
|
|
||||||
[rdp]
|
|
||||||
enabled = true
|
|
||||||
html5_proxy_base_url = {{ public_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ rdp_port }}
|
|
||||||
|
|
||||||
[neutron]
|
|
||||||
url = {{ internal_protocol }}://{{ neutron_internal_fqdn | put_address_in_context('url') }}:{{ neutron_server_port }}
|
|
||||||
auth_strategy = keystone
|
|
||||||
project_domain_name = default
|
|
||||||
project_name = service
|
|
||||||
user_domain_name = default
|
|
||||||
username = {{ neutron_keystone_user }}
|
|
||||||
password = {{ neutron_keystone_password }}
|
|
||||||
auth_url = {{ keystone_admin_url }}/v3
|
|
||||||
auth_type = v3password
|
|
||||||
cafile = {{ openstack_cacert }}
|
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
|
||||||
transport_url = {{ notify_transport_url }}
|
|
||||||
{% if nova_enabled_notification_topics %}
|
|
||||||
driver = messagingv2
|
|
||||||
topics = {{ nova_enabled_notification_topics | map(attribute='name') | join(',') }}
|
|
||||||
{% else %}
|
|
||||||
driver = noop
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[notifications]
|
|
||||||
{% if not enable_searchlight | bool %}
|
|
||||||
notification_format = unversioned
|
|
||||||
{% else %}
|
|
||||||
notification_format = both
|
|
||||||
{% endif %}
|
|
@ -1,28 +0,0 @@
|
|||||||
[global]
|
|
||||||
debug = {{ openstack_logging_debug }}
|
|
||||||
redirect = false
|
|
||||||
port = {{ rdp_port }}
|
|
||||||
bindaddr = {% for host in groups['hyperv'] %}{% for ip in hostvars[inventory_hostname]['ansible_ip_addresses'] %}{% if host == ip %}{{ ip }}{% endif %}{% endfor %}{% endfor %}
|
|
||||||
|
|
||||||
|
|
||||||
[http]
|
|
||||||
documentroot = C:\Program Files\Cloudbase Solutions\FreeRDP-WebConnect\WebRoot\
|
|
||||||
|
|
||||||
[ssl]
|
|
||||||
port=4430
|
|
||||||
bindaddr = {% for host in groups['hyperv'] %}{% for ip in hostvars[inventory_hostname]['ansible_ip_addresses'] %}{% if host == ip %}{{ ip }}{% endif %}{% endfor %}{% endfor %}
|
|
||||||
|
|
||||||
certfile = C:\Program Files\Cloudbase Solutions\FreeRDP-WebConnect\etc\server.cer
|
|
||||||
|
|
||||||
[rdpoverride]
|
|
||||||
nofullwindowdrag = true
|
|
||||||
|
|
||||||
[openstack]
|
|
||||||
authurl = {{ keystone_admin_url }}/v2.0
|
|
||||||
tenantname = service
|
|
||||||
username = {{ nova_keystone_user }}
|
|
||||||
password = {{ nova_keystone_password }}
|
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
hostusername = {{ hyperv_username }}
|
|
||||||
hostpassword = {{ hyperv_password }}
|
|
@ -35,12 +35,6 @@ nova_services:
|
|||||||
external: true
|
external: true
|
||||||
port: "{{ nova_metadata_port }}"
|
port: "{{ nova_metadata_port }}"
|
||||||
listen_port: "{{ nova_metadata_listen_port }}"
|
listen_port: "{{ nova_metadata_listen_port }}"
|
||||||
nova_rdp:
|
|
||||||
enabled: "{{ enable_nova|bool and nova_console == 'rdp' }}"
|
|
||||||
mode: "http"
|
|
||||||
external: false
|
|
||||||
port: "{{ rdp_port }}"
|
|
||||||
host_group: "hyperv"
|
|
||||||
nova-scheduler:
|
nova-scheduler:
|
||||||
container_name: "nova_scheduler"
|
container_name: "nova_scheduler"
|
||||||
group: "nova-scheduler"
|
group: "nova-scheduler"
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
- enable_haproxy_{{ enable_haproxy | bool }}
|
- enable_haproxy_{{ enable_haproxy | bool }}
|
||||||
- enable_heat_{{ enable_heat | bool }}
|
- enable_heat_{{ enable_heat | bool }}
|
||||||
- enable_horizon_{{ enable_horizon | bool }}
|
- enable_horizon_{{ enable_horizon | bool }}
|
||||||
- enable_hyperv_{{ enable_hyperv | bool }}
|
|
||||||
- enable_influxdb_{{ enable_influxdb | bool }}
|
- enable_influxdb_{{ enable_influxdb | bool }}
|
||||||
- enable_ironic_{{ enable_ironic | bool }}
|
- enable_ironic_{{ enable_ironic | bool }}
|
||||||
- enable_iscsid_{{ enable_iscsid | bool }}
|
- enable_iscsid_{{ enable_iscsid | bool }}
|
||||||
@ -728,17 +727,6 @@
|
|||||||
tags: ovn,
|
tags: ovn,
|
||||||
when: enable_ovn | bool }
|
when: enable_ovn | bool }
|
||||||
|
|
||||||
- name: Apply role nova-hyperv
|
|
||||||
gather_facts: false
|
|
||||||
hosts:
|
|
||||||
- hyperv
|
|
||||||
- '&enable_hyperv_True'
|
|
||||||
serial: '{{ kolla_serial|default("0") }}'
|
|
||||||
roles:
|
|
||||||
- { role: nova-hyperv,
|
|
||||||
tags: nova-hyperv,
|
|
||||||
when: enable_hyperv | bool }
|
|
||||||
|
|
||||||
# NOTE(gmmaha): Please do not change the order listed here. The current order is a
|
# NOTE(gmmaha): Please do not change the order listed here. The current order is a
|
||||||
# workaround to fix the bug https://bugs.launchpad.net/kolla/+bug/1546789
|
# workaround to fix the bug https://bugs.launchpad.net/kolla/+bug/1546789
|
||||||
- name: Apply role neutron
|
- name: Apply role neutron
|
||||||
|
@ -1,173 +0,0 @@
|
|||||||
.. _hyperv-guide:
|
|
||||||
|
|
||||||
===========
|
|
||||||
Nova HyperV
|
|
||||||
===========
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Hyper-V support has been deprecated and will be removed in the Victoria cycle.
|
|
||||||
|
|
||||||
Overview
|
|
||||||
~~~~~~~~
|
|
||||||
Currently, Kolla can deploy the following OpenStack services for Hyper-V:
|
|
||||||
|
|
||||||
* nova-compute
|
|
||||||
* neutron-hyperv-agent
|
|
||||||
* wsgate
|
|
||||||
|
|
||||||
It is possible to use Hyper-V as a compute node within an OpenStack Deployment.
|
|
||||||
The nova-compute service runs as openstack-compute, a 64-bit service directly
|
|
||||||
upon the Windows platform with the Hyper-V role enabled. The necessary Python
|
|
||||||
components as well as the nova-compute service are installed directly onto
|
|
||||||
the Windows platform. Windows Clustering Services are not needed for
|
|
||||||
functionality within the OpenStack infrastructure.
|
|
||||||
|
|
||||||
The wsgate is the FreeRDP-WebConnect service that is used for accessing
|
|
||||||
virtual machines from Horizon web interface.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
HyperV services are not currently deployed as containers. This functionality
|
|
||||||
is in development. The current implementation installs OpenStack services
|
|
||||||
via MSIs.
|
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
HyperV services do not currently support outside the box upgrades. Manual
|
|
||||||
upgrades are required for this process. MSI release versions can be found
|
|
||||||
`here <https://cloudbase.it/openstack-hyperv-driver/>`__.
|
|
||||||
To upgrade an existing MSI to a newer version, simply uninstall the current
|
|
||||||
MSI and install the newer one. This will not delete the configuration files.
|
|
||||||
To preserve the configuration files, check the Skip configuration checkbox
|
|
||||||
during installation.
|
|
||||||
|
|
||||||
|
|
||||||
Preparation for Hyper-V node
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Ansible communicates with Hyper-V host via WinRM protocol. An HTTPS WinRM
|
|
||||||
listener needs to be configured on the Hyper-V host, which can be easily
|
|
||||||
created with `this PowerShell script
|
|
||||||
<https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1>`__.
|
|
||||||
|
|
||||||
|
|
||||||
A virtual switch has to be created with which Hyper-V virtual machines
|
|
||||||
communicate with OpenStack. To quickly enable an interface to be used as a
|
|
||||||
Virtual Interface the following PowerShell may be used:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
PS C:\> $if = Get-NetIPAddress -IPAddress 192* | Get-NetIPInterface
|
|
||||||
PS C:\> New-VMSwitch -NetAdapterName $if.ifAlias -Name YOUR_BRIDGE_NAME -AllowManagementOS $false
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
It is very important to make sure that when you are using a Hyper-V node
|
|
||||||
with only 1 NIC the ``-AllowManagementOS`` option is set on ``True``,
|
|
||||||
otherwise you will lose connectivity to the Hyper-V node.
|
|
||||||
|
|
||||||
|
|
||||||
To prepare the Hyper-V node to be able to attach to volumes provided by
|
|
||||||
cinder you must first make sure the Windows iSCSI initiator service is
|
|
||||||
running and started automatically.
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
PS C:\> Set-Service -Name MSiSCSI -StartupType Automatic
|
|
||||||
PS C:\> Start-Service MSiSCSI
|
|
||||||
|
|
||||||
Preparation for Kolla deployer node
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Hyper-V role is required, enable it in ``/etc/kolla/globals.yml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
enable_hyperv: "yes"
|
|
||||||
|
|
||||||
Hyper-V options are also required in ``/etc/kolla/globals.yml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
hyperv_username: <HyperV username>
|
|
||||||
hyperv_password: <HyperV password>
|
|
||||||
vswitch_name: <HyperV virtual switch name>
|
|
||||||
nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi"
|
|
||||||
|
|
||||||
If tenant networks are to be built using VLAN add corresponding type in
|
|
||||||
``/etc/kolla/globals.yml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
neutron_tenant_network_types: 'flat,vlan'
|
|
||||||
|
|
||||||
The virtual switch is the same one created on the HyperV setup part.
|
|
||||||
For nova_msi_url, different Nova MSI (Mitaka/Newton/Ocata) versions can
|
|
||||||
be found on `Cloudbase website
|
|
||||||
<https://cloudbase.it/openstack-hyperv-driver/>`__.
|
|
||||||
|
|
||||||
Add the Hyper-V node in ``ansible/inventory`` file:
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
<HyperV IP>
|
|
||||||
|
|
||||||
[hyperv:vars]
|
|
||||||
ansible_user=<HyperV user>
|
|
||||||
ansible_password=<HyperV password>
|
|
||||||
ansible_port=5986
|
|
||||||
ansible_connection=winrm
|
|
||||||
ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
``pywinrm`` package needs to be installed in order for Ansible to work
|
|
||||||
on the HyperV node:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
pip install "pywinrm>=0.2.2"
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
In case of a test deployment with controller and compute nodes as
|
|
||||||
virtual machines on Hyper-V, if VLAN tenant networking is used,
|
|
||||||
trunk mode has to be enabled on the VMs:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList <VLAN ID> -NativeVlanId 0 <VM name>
|
|
||||||
|
|
||||||
networking-hyperv mechanism driver is needed for neutron-server to
|
|
||||||
communicate with HyperV nova-compute. This can be built with source
|
|
||||||
images by default. Manually it can be intalled in neutron-server
|
|
||||||
container with pip:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
pip install "networking-hyperv>=4.0.0"
|
|
||||||
|
|
||||||
For neutron_extension_drivers, ``port_security`` and ``qos`` are
|
|
||||||
currently supported by the networking-hyperv mechanism driver.
|
|
||||||
By default only ``port_security`` is set.
|
|
||||||
|
|
||||||
|
|
||||||
Verify Operations
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
OpenStack HyperV services can be inspected and managed from PowerShell:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
PS C:\> Get-Service nova-compute
|
|
||||||
PS C:\> Get-Service neutron-hyperv-agent
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
PS C:\> Restart-Service nova-compute
|
|
||||||
PS C:\> Restart-Service neutron-hyperv-agent
|
|
||||||
|
|
||||||
For more information on OpenStack HyperV, see
|
|
||||||
:nova-doc:`Hyper-V virtualization platform
|
|
||||||
<admin/configuration/hypervisor-hyper-v.html>`.
|
|
@ -3,17 +3,16 @@ Compute
|
|||||||
=======
|
=======
|
||||||
|
|
||||||
This section describes configuring nova hypervisors and
|
This section describes configuring nova hypervisors and
|
||||||
compute services like HyperV and so on.
|
compute services.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Hyper-V and VMware support have been deprecated and will
|
VMware support has been deprecated and will
|
||||||
be removed in the Victoria cycle.
|
be removed in the Victoria cycle.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
hyperv-guide
|
|
||||||
libvirt-guide
|
libvirt-guide
|
||||||
masakari-guide
|
masakari-guide
|
||||||
nova-cells-guide
|
nova-cells-guide
|
||||||
|
@ -16,15 +16,6 @@ The virtualisation driver may be selected via ``nova_compute_virt_type`` in
|
|||||||
``globals.yml``. Supported options are ``qemu``, ``kvm``, and ``vmware``.
|
``globals.yml``. Supported options are ``qemu``, ``kvm``, and ``vmware``.
|
||||||
The default is ``kvm``.
|
The default is ``kvm``.
|
||||||
|
|
||||||
HyperV
|
|
||||||
------
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Hyper-V support has been deprecated and will be removed in the Victoria cycle.
|
|
||||||
|
|
||||||
Information on using Nova with HyperV can be found in :doc:`hyperv-guide`.
|
|
||||||
|
|
||||||
Libvirt
|
Libvirt
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -289,7 +289,6 @@
|
|||||||
#enable_horizon_vitrage: "{{ enable_vitrage | bool }}"
|
#enable_horizon_vitrage: "{{ enable_vitrage | bool }}"
|
||||||
#enable_horizon_watcher: "{{ enable_watcher | bool }}"
|
#enable_horizon_watcher: "{{ enable_watcher | bool }}"
|
||||||
#enable_horizon_zun: "{{ enable_zun | bool }}"
|
#enable_horizon_zun: "{{ enable_zun | bool }}"
|
||||||
#enable_hyperv: "no"
|
|
||||||
#enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}"
|
#enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}"
|
||||||
#enable_ironic: "no"
|
#enable_ironic: "no"
|
||||||
#enable_ironic_ipxe: "no"
|
#enable_ironic_ipxe: "no"
|
||||||
@ -523,19 +522,6 @@
|
|||||||
# Enable distributed floating ip for OVN deployments
|
# Enable distributed floating ip for OVN deployments
|
||||||
#neutron_ovn_distributed_fip: "no"
|
#neutron_ovn_distributed_fip: "no"
|
||||||
|
|
||||||
#################
|
|
||||||
# Hyper-V options
|
|
||||||
#################
|
|
||||||
|
|
||||||
# NOTE: Hyper-V support has been deprecated and will be removed in the Victoria cycle.
|
|
||||||
|
|
||||||
# Hyper-V can be used as hypervisor
|
|
||||||
#hyperv_username: "user"
|
|
||||||
#hyperv_password: "password"
|
|
||||||
#vswitch_name: "vswitch"
|
|
||||||
# URL from which Nova Hyper-V MSI is downloaded
|
|
||||||
#nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi"
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Horizon - Dashboard Options
|
# Horizon - Dashboard Options
|
||||||
#############################
|
#############################
|
||||||
|
4
releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml
Normal file
4
releasenotes/notes/remove-hyperv-fbffba997e1abb61.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Support for deploying with Hyper-V integrations has been removed.
|
@ -113,16 +113,6 @@ control
|
|||||||
[haproxy:children]
|
[haproxy:children]
|
||||||
network
|
network
|
||||||
|
|
||||||
[hyperv]
|
|
||||||
#hyperv_host
|
|
||||||
|
|
||||||
[hyperv:vars]
|
|
||||||
#ansible_user=user
|
|
||||||
#ansible_password=password
|
|
||||||
#ansible_port=5986
|
|
||||||
#ansible_connection=winrm
|
|
||||||
#ansible_winrm_server_cert_validation=ignore
|
|
||||||
|
|
||||||
[mariadb:children]
|
[mariadb:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user