48 Commits

Author SHA1 Message Date
Antony Messerli
4d904e2b7c Use updated Ubuntu installer kernels on MNAIO
Appears we ran into this bug on 16.04:

https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1816876

and the fix is in xenial-updates.  Switching all the ubuntu installer
kernels to the updated ones so that we can make sure we're using
latest and greatest.

Change-Id: I68cccbb142c8b4c657a60929ad21e8164d07a1ef
2019-02-22 13:58:26 -06:00
Zuul
9bcd084542 Merge "Add ability to deploy Designate (DNSaaS)" 2019-02-13 03:01:29 +00:00
Zuul
079b179001 Merge "Add support for OVN in MNAIO deploy" 2019-02-03 17:34:58 +00:00
Jacob Wagner
98d66da191 Add ability to deploy Designate (DNSaaS)
This commit adds the ability for users to enable Designate (DNSaaS)
in a MNAIO build. This service is disabled by default.

Change-Id: I36e10922b6fe8e5cba3cc929e2b91b59507c210d
2019-02-01 13:43:08 -06:00
James Denton
e6f12e2069 Add support for OVN in MNAIO deploy
This patch adds support for deploying the ML2/Open Virtual Network (OVN)
plugin for Neutron to an MNAIO deployment. A new var,
osa_enable_networking_ovn, can be set to lay down the appropriate bits.

Change-Id: Ib5bd4e0c20be62ddbf0bff13c91d1918907bf230
2019-01-28 02:14:39 +00:00
James Denton
08edc0c696 Add mnaio_data_disk_suffix var to support NVMe partition naming
NVMe partitions generally show a `p` before the partition number,
causing the existing data disk partitioning script to fail. The
new var support changing the suffix to support alternative naming
schemes. The default remains '1' for backwards compatibility.

Change-Id: I7c0039ee13ba301c152424fc0b327195ec6a4367
2019-01-15 13:09:04 +00:00
Jacob Wagner
6b36fd8825 MNAIO: Add ability to deploy Ceph
This commit enables overriding the default storage options of
cinder/swift to a Ceph backed storage for the multinode all in one
deployments.

We also correct the README and build.sh script to show/use the
current defaults correctly for VM_DISK_SIZE and INFRA_VM_SERVER_RAM.

Change-Id: I9e1f1b09d1bcf224f4afa765c585baf28e6cafa8
2018-11-27 15:51:46 +00:00
Jesse Pretorius
1f54688f4c MNAIO: Add legacy os-infra_hosts group back
In https://review.openstack.org/611582 we removed
the legacy group as it has been deprecated since
Newton, however it appears to still be used by some
downstream tests, so we add it back, but make it
only get implemented if the associated services
are enabled.

Change-Id: I477a46d606d75d44a1ecd5bcfcb29c8308c65245
2018-10-23 16:27:52 +00:00
Zuul
e5ae777701 Merge "MNAIO: Increase default logging_vm_server_ram to 16384" 2018-10-18 21:20:41 +00:00
Dave Wilde
a38a19ee01 MNAIO: Increase default logging_vm_server_ram to 16384
The default of 1 GiB isn't sufficient to handle the logging load 
generated on a MNAIO.  This is a workable value and can be adjusted 
down.

Change-Id: I451af0babf9ae7bd8ae58eccef9c908bb7f91f52
2018-10-18 12:06:33 -05:00
Jesse Pretorius
d3d505b678 MNAIO: Make cinder/compute/swift hosts conditional
1. If osa_enable_block_storage=false, then there should
   be no cinder hosts deployed, nor any presence of the
   vars related to it in openstack_user_config.

2. If osa_enable_compute=false, then there should be no
   compute hosts deployed, nor any presence of the
   vars related to it in openstack_user_config..

3. If osa_enable_object_storage=false, then there should
   be no swift hosts deployed, nor any presence of the
   vars related to it in openstack_user_config..

Change-Id: Id6858d277c80095024af5d8e04dfc97cc3e3b253
2018-10-18 14:43:19 +01:00
Jesse Pretorius
7b893c3775 MNAIO: Increase default infra_vm_server_ram to 16384
The current default of 8GB simply does not work for a default
deployment of Rocky/Stein without doing a severe amount of
worker tuning.

While we do some work to improve the default number of workers,
we should rather increase the default value for these VM's.

Change-Id: Ic31bd9145e7feb67fa5eacc602c6152ecde1a47c
2018-10-18 13:11:21 +01:00
Zuul
55458b60f2 Merge "Add ability to deploy Octavia load balancer service" 2018-10-18 09:47:47 +00:00
Jacob Wagner
e1ce3432d0 Add ability to deploy Octavia load balancer service
This commit enables the openstack Octavia load balancing service
if the option is enabled. The Octavia service replaced the legacy
Neutron LBAAS service.

Change-Id: Ib820ec3c4a7f6c9116608140b59332d03cf4c451
2018-10-17 13:51:35 +01:00
Jesse Pretorius
aee8b6d910 MNAIO: Switch to using file-backed VM's only
The MNAIO tooling is a test system, and with that target
we can afford to be opinionated in the implementation
rather than try to cater to every possibility.

Now that the file-backed VM implementation has matured,
we can switch to using it exclusively. This cuts down on
code complexity and allows us to mature the implementation
further with more options without having to cater to two
options.

Change-Id: Ibe04b5676a392301cd79a5d290b77df4c7d9f79a
2018-10-17 12:09:43 +01:00
Dave Wilde
28cdc6e72e Update MNAIO to deploy systemd-networkd
With bionic we need to switch to systemd-networkd rather
than the legacy /e/n/i.  This makes the mnaio host networkd only,
since we will only be supprting xenial and beyond on the host we
can do this.  The VM's will detect the networking configuration
daemon and act appropriately.  This also brings up the IPs on
the bridges without having any interfaces attached.

Change-Id: I72283a2786316181f7ab7d8aad21ad456e9c9503
2018-10-11 16:35:48 -05:00
Jesse Pretorius
14567e0c3c MNAIO: Remove mnaio_hosts group and use vm_hosts only
The mnaio_hosts group is redundant. We switch to just using the
vm_hosts group instead.

Change-Id: I854befd283b62c98e956a5e677ca9d7dbd33416b
2018-09-26 14:00:57 +01:00
Zuul
49340c566d Merge "MNAIO: Disable metering services by default" 2018-09-25 16:37:17 +00:00
Zuul
10e0f2442f Merge "Make root partition size configurable" 2018-09-25 16:10:01 +00:00
Zuul
439b269525 Merge "Enable setting mnaio disk size by pxe server group" 2018-09-25 16:10:00 +00:00
Zuul
907a5ff7c7 Merge "Use group vars to reduce redundancy in host vars" 2018-09-25 16:10:00 +00:00
Jesse Pretorius
a7daa32b50 MNAIO: Disable metering services by default
The telemetry stack is not maintained well within the OSA community
as it's rarely used by the maintainers. As such, we rather disable
it by default. It's easy enough to opt in if it's required.

Change-Id: I498bad8549e926d48164069896b9116c3d5a33da
2018-09-20 11:37:02 +01:00
Wayne Warren
da19895f2a Make root partition size configurable
With the previous commits in this series, this can now be configured on
a per pxe server group basis; but default to all VMs with the same root
partition size works fine for me.

Change-Id: Idb82466ca887466d3babe2da6998b057e99f676c
2018-09-17 09:26:31 -05:00
Wayne Warren
2bcbb26215 Enable setting mnaio disk size by pxe server group
Also, halve the loadbalancer default disk size; this is the only group
I'm somewhat confident doesn't need 90 GB of disk.

Change-Id: I40b46c8d978cdefbed8c4cd5586c7ded0fe318dc
2018-09-17 09:26:31 -05:00
Wayne Warren
0f5555328d Use group vars to reduce redundancy in host vars
This is essentially a noop that establishes a healthy DRY pattern of
group var definitions in the pxe_server subgroups.

Change-Id: Ie458f0684f720879c21ca639320814ef12d5dc4e
2018-09-17 09:26:31 -05:00
Dave Wilde
525887872b Deploy ELK in MNAIO
This enables the deployment of the elk_metrics_6x stack inside of an
MNAIO.

Change-Id: Ie611baee79c33d7cbab9f0865127ac5966475838
2018-09-11 20:17:24 +00:00
Jesse Pretorius
934a3c2651 MNAIO: Default vm_use_snapshot is group_vars
Rather than have to default it in tasks all over the
place, we default it in group_vars. The default is to
enable the feature if file-backed VM's are used.

However, if there are no base images available, the
set_fact task disables it. If a user wishes to force
it not to be used, then an extra-var override is still
usable.

Change-Id: I5c916244a02a44da831d2a0fefd8e8aafae829b2
2018-08-29 13:23:40 +01:00
Zuul
26d0d53ea5 Merge "Adds iPXE UEFI support to Multi Node AIO" 2018-08-27 21:38:48 +00:00
Antony Messerli
c3e04a5106 Adds Support for MNAIO CentOS 7 Environment
* Adds support for provisioning a Multi Node AIO using
  CentOS 7.
* Cleans up older MNAIO/Compute/Infra image configs
* Increases LB/Logging/Swift VM ram to allow for CentOS rootfs
  to load into RAM. (1GB to 2GB)
* Uses systemd-network networking for configuring network/bridges
* Adds keymap to kvm configuration to alleviate keyboard issues in
  virt-manager
Change-Id: I54d903e7c1c70882e8b20a9cef4eafb42be46770
2018-07-24 09:31:11 -05:00
Antony Messerli
5ebb276ca3 Adds Ubuntu 18.04 Bionic image to MNAIO
Change-Id: I4d4d0a057c39db6c1472ef2ea1935320ac9702ec
2018-07-13 09:23:15 -05:00
Dave Wilde
482e845d92 Improve multi-node AIO robustness
In order to improve the readability and robustness of the mnaio feature
I have replaced the shell out to virsh tasks to use the virt module
where available.  I have also created a vm-status play that will
hopefully help resolve SSH failures into the VMs.  This play utilizes
the block/rescue/handler pattern to attempt to restart the VM once if
it fails the initial SSH check.  Hopefully this will reduce the SSH
failures due to a suck VM.  This adds a new variable called
vm_ssh_timeout which allows the deployer an easy place to override the
default timeout.  The python-lxml package is needed for the virt module.

Change-Id: I027556b71a8c26d08a56b4ffa56b2eeaf1cbabe9
2018-06-29 10:12:16 -05:00
d34dh0r53
358be0158e Adjust flat networking
This adjusts the VM networking to only create the additional veth pair for the
flat bridge.  Without this the other bridges can get IPs other than those
statically assigned by the DHCP server.  This also adjusts the range to exclude
the statically assigned ranges.

Change-Id: I289e808b5acb68b1c51e05cbe7d914077c20ba1a
2018-06-01 15:40:44 -05:00
d34dh0r53
9f2bde0728 Adjust DHCP range so that nodes can take static address from pool
The pool needs to contain the static addresses for the individual
VM nodes.

Change-Id: Ia1ec76917f4d2e13e86db7f8dabad3430afe8d86
2018-05-29 16:52:28 -05:00
d34dh0r53
f856f3bfaf Fix MNAIO Flat Networking
In order to get flat networking working correctly we need to create
a new veth pair that neutron can use on the host machines.  Neutron can
take the veth end of this pair for the brq bridge while the other end
remains in br-flat allowing communication back to the VM.  This also
expands the DHCP range for the veth pairs and changes the
host_bind_override to use the new veth.

Change-Id: I9cd161599ba659890142143d4718420d680d7dca
2018-05-17 14:21:21 -05:00
Antony Messerli
bc611698c8 Adds iPXE UEFI support to Multi Node AIO
Now expects a base URL that looks for iPXE files.  Uses
boot.ipxe.org by default but the base URL can be overridden to
point to custom compiled versions of ipxe.lkrn, ipxe.efi,
and undionly.kpxe.

Change-Id: Ib2c10c4817eaf9a78326f3de00aed0c16f8df776
2018-03-26 13:29:06 -05:00
Bjoern Teipel
d625057b7a Adding mnaio qemu file backends
mnaio uses LVM as default VM disk backend but that
requires a lot of available disk space.
A alternative option, the qcow2 file based backend
is added to take benefit of thin provisioning.
This backend can be triggered by setting the override
`default_vm_disk_mode` to `file`

Change-Id: Iaf97fef601f656901b6913eaafb9a6c28d4b7ba6
2018-03-23 21:28:38 -05:00
Shannon Mitchell
0435d26b54 Add ability to disable serial throttling for mnaio installs
This allows the setting of an ansible osa_disable_serial variable
  that drops in a config to set all of the serial settings to 100%
  to disable throttling.  The exception being keystone as it has a
  race condition that prevents it.  The default is 'false' and can
  be set in the MNAIO_ANSIBLE_PARAMETERS var before running the
  build.sh script.

Change-Id: I5850d882d465b7ef10b317076bb135934f1ceba2
Closes-Bug: 1752475
2018-03-01 08:56:57 -06:00
Kevin Carter
3f6ec2ffac
Update mnaio to allow deployers to use nspawn
This change updates the preseed files and the default
openstack-user-config file so that deployers can use and test nspawn
type containers using the in-built automation.

Change-Id: I2ec3bd284540fa9f79490a350f016ca594fb5f98
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-02-14 16:38:57 -06:00
Antony Messerli
f00c6bf215 Replace pxelinux with iPXE support in MNAIO
Adds support for iPXE scripting.  Allows for the
operator to specify a remote iPXE kernel to pull in
newer iPXE kernel features and specify a remote
default iPXE script for customizing the multi node
for other types of deployments.

Switches the installations to use netboot installer kernels
instead of ISO retrival and extraction.

Restructures directory to allow for future multi node configs
instead of just debian based installs.

Change-Id: Ie97f021dbd33ad3d852132b0b2850f54d4e13476
2018-02-07 18:20:00 -06:00
Kevin Carter
2f503c228e
Tune-up the MNAIO for physical and virtual hosts
This change makes it possible to deploy ACNG within a physical
host NOT automatically tied to an MNAIO installation. This also
adds an infra preseed file which can be used to provision physical
hosts.

By default the domain name is now passed into the server boot params
which is useful when setting up an environment in support of
RFC-1034/5.

Ubuntu 16.04 has an issue with the options "quiet splash" being passed
in which cause it to have no usable console. See [Related-Issue] for
more.

Related-Issue: #1656605
Change-Id: I731dfb70e4b5d676d8c22082da77c0d22d5afb58
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-10-16 00:42:32 -05:00
Kevin Carter
be1d365ef5
allow a default kernel to be set
Change-Id: I6cf0cf918df6c79757b283333f5a687ff20a46bd
2017-10-09 22:28:16 -05:00
Kevin Carter
d0cb21c139
create specific preseed for vm-compute
Change-Id: I8dc124265774fae6f754e75f5936210c222fc93d
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-10-09 18:46:19 -05:00
Kevin Carter
bc2e128143
make group membership blocks optional
Deployers sometime need the ability to opt out of specific deployment
groups. While a deployer can modify or extend the configuration
groups using conf.d files, until now they didn't have the ability
to remove groups when testing different scenarios. This change
simply adds conditionals to the openstack_user_config giving users
the ability to tailor the default user configuration options to
their needs.

Change-Id: I100ddf09faa072a999b72c4e46a1d3de6480d7e6
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-09-28 13:46:36 -05:00
Matt Thompson
28684e6c6e Add missing features to multi-node-aio
The multi-node-aio update that moved the provisioning from bash to
ansible dropped a few features that we use for gating purposes.  This
commit re-adds the following:

1. The ability to drop iptables rules to do port redirection from the
   host to private IPs.  This is controlled by CONFIG_PREROUTING and
   the ansible variable mnaio_host_iptables_prerouting_ports.
2. /etc/hosts on the physical node is now updated w/ the hostname and
   IP of each VM so we can access VMs by name.

NOTE: With #1, we redirect to the VM's DHCP address, and not it's
      management address.  The latter seemed to the desired address
      but didn't work, which is why we've resorted to DHCP.  If using
      this address is incorrect please note so we can investigate
      further.

Change-Id: Ib194c314280f2474a2e4dac6d0feba44b1ee696f
2017-09-13 11:47:25 -04:00
Kevin Carter
67161e5d81
General improvements
Adding even more dynamic user config options and a compute preseed.

Change-Id: Ieccbd61a45a77b7dff9e228fc6fdaf92df852abb
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-08-17 09:16:20 -05:00
Kevin Carter
c678e83275
General improvements
* added ip alias for interfaces

* Update settings and improve vm performance

* Change the VG name in VMs. The VG name was changed so that the volume
  which is being used by VMs can be mounted on a physical host, and not
  conflict, with standard volume group naming. This is usful when a VM
  is DOA and a deployer wants to disect the instance.

Change-Id: If4d10165fe08f82400772ca88f8490b01bad5cf8
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-08-14 10:35:12 -05:00
Kevin Carter
eb5debbdbb
move mnaio network group var because it's shared
Change-Id: I3c85564def49f3d0da76c55dc4356cbf16a25d63
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-08-10 19:13:14 -05:00
Kevin Carter
cfc76ded4a
Convert vars in files to host_vars
This change allows the MNAIO to really be used as a stand alone kick
system which has the potential to be developed into a stand alone
project. At the very least this change improves playbook performance
by scoping variables.

The inventory has been converted into a typical Ansible inventory and
the "servers" used in the MNAIO are now simply host_vars
which will trigger specific VM builds when instructed to do so. This
gives the MNAIO the ability to serve as a stand alone kick system which
could be used for physical hosts as well as MNAIO testing all through
the same basic set of playbooks. Should a deployer want to use this with
physical servers they'd need to do nothing more than define their basic
inventory and where the the required pieces of infrastructure needed to
PXE boot their machines.

Change-Id: I6c47e02ecfbe8ee7533e77b11041785db485a1a9
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-07-31 23:31:13 -05:00