blob: 43e7797371134a57dd09585018b49e7e3307107c [file] [log] [blame]
Sean Daguee263c822014-12-05 14:25:28 -05001#!/bin/bash
2#
Alexander Gordeev06fb29c2014-01-31 18:02:07 +04003# lib/nova_plugins/hypervisor-ironic
4# Configure the ironic hypervisor
5
6# Enable with:
7# VIRT_DRIVER=ironic
8
9# Dependencies:
10# ``functions`` file
11# ``nova`` configuration
12
13# install_nova_hypervisor - install any external requirements
14# configure_nova_hypervisor - make configuration changes, including those to other services
15# start_nova_hypervisor - start any external services
16# stop_nova_hypervisor - stop any external services
17# cleanup_nova_hypervisor - remove transient data and cache
18
19# Save trace setting
Ian Wienand523f4882015-10-13 11:03:03 +110020_XTRACE_HYP_IRONIC=$(set +o | grep xtrace)
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040021set +o xtrace
22
Adam Gandelmanea861742014-03-17 16:23:01 -070023source $TOP_DIR/lib/nova_plugins/functions-libvirt
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040024
25# Defaults
26# --------
27
28# Entry Points
29# ------------
30
31# clean_nova_hypervisor - Clean up an installation
32function cleanup_nova_hypervisor {
33 # This function intentionally left blank
34 :
35}
36
37# configure_nova_hypervisor - Set config files, create data dirs, etc
38function configure_nova_hypervisor {
Adam Gandelmanea861742014-03-17 16:23:01 -070039 configure_libvirt
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040040 LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.firewall.NoopFirewallDriver"}
Davide Guerri08448e32014-03-21 18:14:18 +000041
Devananda van der Veend0023fd2014-09-08 10:41:04 -070042 iniset $NOVA_CONF DEFAULT compute_driver nova.virt.ironic.IronicDriver
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040043 iniset $NOVA_CONF DEFAULT firewall_driver $LIBVIRT_FIREWALL_DRIVER
Yingxinb298e572016-01-29 05:11:27 +000044 iniset $NOVA_CONF DEFAULT scheduler_host_manager ironic_host_manager
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040045 iniset $NOVA_CONF DEFAULT ram_allocation_ratio 1.0
46 iniset $NOVA_CONF DEFAULT reserved_host_memory_mb 0
47 # ironic section
48 iniset $NOVA_CONF ironic admin_username admin
49 iniset $NOVA_CONF ironic admin_password $ADMIN_PASSWORD
Jamie Lennox3561d7f2014-05-21 17:18:43 +100050 iniset $NOVA_CONF ironic admin_url $KEYSTONE_AUTH_URI/v2.0
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040051 iniset $NOVA_CONF ironic admin_tenant_name demo
Adam Gandelman4b45fca2014-11-17 09:59:23 -080052 iniset $NOVA_CONF ironic api_endpoint $IRONIC_SERVICE_PROTOCOL://$IRONIC_HOSTPORT/v1
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040053}
54
55# install_nova_hypervisor() - Install external components
56function install_nova_hypervisor {
Adam Gandelmande77c472015-03-11 17:15:42 -070057 if is_ironic_hardware; then
Zhongyue Luo37026f52014-12-16 10:56:54 +080058 return
Adam Gandelman6d271482014-08-05 18:12:29 -070059 fi
Adam Gandelmanea861742014-03-17 16:23:01 -070060 install_libvirt
Adam Gandelman9eb81772014-11-21 09:41:45 -080061 if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] && is_ubuntu; then
62 # Ubuntu packaging+apparmor issue prevents libvirt from loading
63 # the ROM from /usr/share/misc. Workaround by installing it directly
64 # to a directory that it can read from. (LP: #1393548)
65 sudo rm -rf /usr/share/qemu/sgabios.bin
66 sudo cp /usr/share/misc/sgabios.bin /usr/share/qemu/sgabios.bin
67 fi
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040068}
69
70# start_nova_hypervisor - Start any required external services
71function start_nova_hypervisor {
72 # This function intentionally left blank
73 :
74}
75
76# stop_nova_hypervisor - Stop any external services
77function stop_nova_hypervisor {
78 # This function intentionally left blank
79 :
80}
81
82
83# Restore xtrace
Ian Wienand523f4882015-10-13 11:03:03 +110084$_XTRACE_HYP_IRONIC
Alexander Gordeev06fb29c2014-01-31 18:02:07 +040085
86# Local variables:
87# mode: shell-script
88# End: