134 Commits

Author SHA1 Message Date
Shannon Mitchell
4336dd8fbe Fix broken linuxbridge-agent config for the flat network in osa-ops mnaio
It looks like the host_bind_override isn't being set for the flat network.
This results in the neutron linuxbridge agent to error out when trying to
attach to br-flat instead of eth2.  If attaching a device to the GATEWAY_NET
network, they will be unable to communicate.

Change-Id: Ia8de61011677ec1a7d9683fdff3c3d5848e85c2e
Closes-Bug: 1754097
2018-03-07 11:12:19 -06:00
Zuul
2ebd3d789f Merge "Fixing an empty var val for the mnaio build.sh" 2018-02-28 16:50:21 +00:00
Shannon Mitchell
31d771835f Fixing an empty var val for the mnaio build.sh
It looks like bash was throwing single qoutes around the variable
  default if the var was empty causing ansible to think it is the
  play.  Thanks to Matt Thompson's help, we pulled that out into
  a separate export to remove the single quotes.

Change-Id: Id04f840871f3371cf8258a8135536d37738e4e12
Closes-Bug: 1752357
2018-02-28 16:36:25 +00:00
Shannon Mitchell
bf71e5d1fc Update the debian image link to something more stable.
It looks like the debian image link is currently dead after
  the latest build.  A link under the current-9 dir seesm to
  link to the latest debian 9 build in the current dir.

  new loc: http://cdimage.debian.org/cdimage/openstack/current-9/debian-9-openstack-amd64.qcow2
  looks to be the same image as: http://cdimage.debian.org/cdimage/openstack/current/debian-9.3.6-20180225-openstack-amd64.qcow2

Change-Id: I06f299097c5186369557be21101071de56128eef
Closes-Bug: 1752180
2018-02-27 15:58:24 -06:00
Zuul
41ca003868 Merge "Adds ability to modify vcpu count and add custom ansible params." 2018-02-27 10:08:06 +00:00
Weezer Su
c844c7296e Fix a typo in build.sh
change the default value assiagment for container_tech from - to :- in 
case the the parameter has been declared, but is null.

The extra : makes a difference only when parameter has been declared, 
but is null.


Change-Id: I9be9df155c1db5b390f6b664c0f3046efb4a4d1b
2018-02-19 21:12:58 +00:00
Shannon Mitchell
1ece2ac060 Adds ability to modify vcpu count and add custom ansible params.
This change allows someone to modify the vcpu count settings
  similar to how the ram is currently done.  It also allows for
  custom ansible parameters via an MNAIO_ANSIBLE_PARAMETERS var
  to add custom ansible parameters for the vpcu overrides as well
  as other settings.

Change-Id: I3c1fa7b55a87931eff586c0e983bb9b8c6f34fc3
Closes-Bug: 1750402
2018-02-19 10:20:44 -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
Zuul
007371b35c Merge "Replace pxelinux with iPXE support in MNAIO" 2018-02-08 21:07:15 +00: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
Antony Messerli
33c3fbdfe7 Stop any running VMs when re-deploying
Stops running VMs when doing a deploy to ensure
the VMs start fresh and can reload their config
during deploy.

Also removes LVs to force a redeploy of the VMs.

Change-Id: I7992e25f4e0e103ae66487f2e88a99ca962a9355
2018-02-07 13:19:04 -06:00
Zuul
cb77f7e3d2 Merge "Fixed Suse Image to use link without build information" 2018-02-05 15:34:01 +00:00
Zuul
d2b9369be5 Merge "Fix openstack-service-setup.yml GATEWAY_NETWORK to match the flat network." 2018-02-02 20:24:05 +00:00
Weezer Su
224275d716 Add lxc config into mnaio
the master branch is supporting multiple contianer techs now, use
lxc for mnaio's default container backend.

Change-Id: I587cb6041ad87d8901d84ab1d3d4f8763686751c
2018-02-02 13:32:31 -06:00
Shannon Mitchell
8c5b9d2782 Fix openstack-service-setup.yml GATEWAY_NETWORK to match the flat network.
This should allow the proper gateway ip to be used for connectivity to/from
  vms in the GATEWAY_NETWORK or with floating ips from it.

Change-Id: I0f4498baa2edbf24bbf2c407c6e5a2574454cfdc
Closes-Bug: 1746621
2018-01-31 17:31:56 -06:00
Shannon Mitchell
8aa9402d1f Fixed Suse Image to use link without build information
It looks like they update the builds pretty often.  This change
   is to make it use the more generic link to the latest build
   that isn't changed as often.

Change-Id: I31d3b76e2b26c0ef5bfe1ec4a3f2dcc5c34f8f41
Closes-Bug: 1746604
2018-01-31 15:52:29 -06:00
Shannon Mitchell
64acebe745 Fix tftpd-hpa configuration issues
This includes:
    - removing two bad /etc/default/tftpd-hpa tasks
    - relocating the good /etc/default/tftpd-hpa task
      to the pre-tasks area of the broken configs.
    - Removing OPTIONS from /etc/default/tftpd-hpa as they
      were causing duplicate -s config errors. The -l is
      taken care of in the init script as well.

Change-Id: Ie474fceb116c921a373f5711194e222594095e51
Closes-Bug: 1746354
2018-01-30 15:38:57 -06:00
Shannon Mitchell
df5f7e7154 Updated Fedora, OpenSuse and Debian cloud image links
A few of the links were outdated due to new builds or decommed versions.
  Changes to the latest versions or builds were needed.

Change-Id: I61d3c76fd649e745262deb496615a4399c56f5f4
Closes-Bug: 1745680
2018-01-26 16:30:30 -06:00
Kevin Carter
7fbc50c036
Add env vars to set the RAM for VMS in the mnaio
The MNAIO serves as a good way to play with a production like OSA
environment on minimal hardware. While this is a good way to test it
does leave some options hard to address and change when trying to build
in an automated way. This change makes it possible for a deployer to set
an environmental variable to change the ram allocation of all default vm
types which should help folks build a more capable and customizable test
cloud.

Change-Id: Idc2cff091701ecda80165a98fffa1db222600d27
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-01-03 17:14:56 -06:00
Antony Messerli
e3a1d1fcb9 Allows for the VMs preseed mirror to be overridden
In the case the upstream mirror might be down or there might be a
faster mirror available, this allows you to specify the desired
Ubuntu mirror and base directory.

Change-Id: I49c33b9e4e107990f2abb418b859fd280ba91107
2017-12-13 16:39:06 -06:00
Antony Messerli
4536c0a9ef Abort run if VMs aren't up before timeout
Occasionally the VM install will exceed the timeout
if it doesn't fire correctly.  Instead of treating
the host as down and continuing on with the others,
fail early.

Change-Id: I543d8e354a5357f7059fe82497edb9b7e3a22097
2017-11-02 11:49:20 -05:00
Antony Messerli
169b475168 Pin to latest supported Ansible version from osa-tests
Change-Id: I886a538059290fd80247e3705104a37f071378ea
2017-10-27 12:54:52 -05:00
Antony Messerli
419e44385c Lock Ansible to 2.4.0.0 in multi-node-aio
2.4.1.0 appears to have introduced some different behaviors
around vars and breaks.  Locking to 2.4.0.0 until we can
work through those issues.

Change-Id: I0f577e5e3cbeef082f2a870a7214116937e84351
2017-10-26 13:06:16 -05:00
Zuul
60b8cd7e18 Merge "Tune-up the MNAIO for physical and virtual hosts" 2017-10-19 20:36:58 +00:00
Antony Messerli
c92d4c5938 Update readme to use force flag instead
echo y seems to still prompt for each volume
when using -f will complete the action without
prompting.

Change-Id: Ic8231817656e2093e53e0bfcd1fd5e72bd8181b2
2017-10-16 15:59:40 -05: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
cc9294bb0d
use linux-image-generic by default
The package, linux-image-generic, should be used by the MNAIO to ensure
we're testing with the supported LTS kernel for the distro being
deployed.

Change-Id: I25b3318a02a3c8e79fb300e93b2fdb18a7cc3b20
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-10-10 01:03:16 -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
Jenkins
e50252a102 Merge "Remove duplicate Create Basic configs task" 2017-10-07 03:28:29 +00: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
Jenkins
89e45170fe Merge "populate the default user variables file" 2017-09-27 18:47:28 +00:00
Jenkins
1ec23fecb7 Merge "Convert the user config group build outs to be dynamic" 2017-09-27 18:45:26 +00:00
Jenkins
b406dc02eb Merge "Allow for the use of an external inventory" 2017-09-27 18:40:52 +00:00
Jenkins
1512e7dddc Merge "Add the option to configure VM server ram" 2017-09-27 18:38:27 +00:00
Matt Thompson
3129aa56d5 Remove duplicate Create Basic configs task
Change-Id: If9217a5b3b3b546a51f35be538861a43e9d9ea3a
2017-09-27 12:10:33 -04:00
Kevin Carter
55640fa286 Convert the user config group build outs to be dynamic
the previous group build outs for the osa user config were statically
defined. This change makes all of them dynamic which gives a user the
ability to add or remove hosts from the basic inventory as they need.

Change-Id: I1eae7de6d62435e8222ec80b05b6c0a060c5bb69
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-09-27 15:11:41 +00:00
Kevin Carter
3da22ca992 Allow for the use of an external inventory
It makes sense to allow a user to provide their own inventory as needed.
this change simply allows a user to explort the option "MNAIO_INVENTORY"
prior to running `build.sh` which will allow them to define their own
inventory using the general purpose build script.

Change-Id: Ib5233da1bf34620ec8bf3decc4ecd51823b50b79
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-09-27 10:08:07 -05:00
Kevin Carter
fb8ad75eea populate the default user variables file
The user_variables file may be empty. If it is, some older
versions of OSA will break. This new task simply ensures the variable
file is populated which will help us build and test more versions of OSA
as needed.

Change-Id: I38d204b41f781fe303d145878dfdbaa8172e16ba
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-09-27 14:57:28 +00:00
Kevin Carter
704e737187
Add the option to configure VM server ram
The VMs deployed are using a very conservative setting for RAM. If a
user has the memory to spare they should have the option to set this
based on their needs.

Change-Id: Ib0fcdada64f009ad5924db171831840120a3eaee
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-09-27 09:29:15 -05:00
Matt Thompson
ce29ea23d1 Updates for Trusty VMs
Currently, attempting to use Trusty (14.04) VMs causes VMs to not
provision correctly due to a grub-install error.  With respect to this
specific issue, this commit updates vm.preseed.j2 by removing some
grub-installer options which were not present before the ansible
rewrite.

Secondly, with that change in place, VMs do not come online on their
10.0.236 addresses as something is overwriting
/etc/networking/interfaces, which wipes out the source of the
/etc/network/interfaces.d directory.  Bug [1] seems to indicate this
is in fact an issue and has been resolved, however attempts at using
this preseed option (netcfg/target_network_config) were not successful.
As a workaround, we simply chattr +i the interfaces file in
vm-post-install-script.sh.j2, and then remove the attr in
deploy-vms.yml when the instance is up an accessible.

[1] https://bugs.launchpad.net/ubuntu/+source/netcfg/+bug/1361902

Change-Id: I12d0c5108d1df0ab02b69d1b8cdb271a02999602
2017-09-26 08:52:38 -04:00
Matt Thompson
a3cde38df0 Create inventory directory
This commit moves playbooks/inventory into a file
called playbooks/inventory/hosts.  This is being done so that users can
drop in additional inventory without having to necessarily modify the
existing static inventory.

Change-Id: Ia3f9436a460e48006cce27a17a00c5265c62b913
2017-09-14 12:04:22 -04: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
Jenkins
b31d3f7bb3 Merge "Add setup of OpenStack with flavors, images, etc" 2017-09-12 21:35:21 +00:00
Jenkins
731dfd09ac Merge "Install netaddr before running site.yml" 2017-09-06 20:40:00 +00:00
Matt Thompson
815ac51249 Wait for guest capabilities to appear
Deploying the multi-node-aio from master on a machine running Ubuntu
14.04 fails frequently as libvirt doesn't think it has the hvm
OS type.  I was able to manually run "virsh capabilities" shortly after
libvirt was installed and sure enough it didn't list any guest
capabilities.  Subsequent runs of "virsh capabilities" then returned
the <guest> XML element w/ <os_type>hvm</os_type> defined.

This commit simply adds a task that checks "virsh capabilities",
retrying up to 6 times if the <guest> element is not present.  From my
limit testing this seems sufficient to ensure that the domains are
defined and created successfully.

Lastly, we add a task to create /etc/libvirt/storage which is expected
to exist, but doesn't on a 14.04 deployment.

Change-Id: I158987270b71d3781e91d819fdcb02da736f3c1d
2017-09-06 15:42:51 -04:00
Matt Thompson
e5ba32d8fa Install netaddr before running site.yml
Currently, the execution of site.yml fails as site.yml installs
python-netaddr in the same run as it uses it, which fails since
ansible-playbook can't see the newly installed module.

This commit simply removes python-netaddr from
mnaio_host_distro_packages and adds a new task to build.sh to
install it before site.yml is kicked off.

NOTE: This commit also switches to installing netaddr via pip
      instead of system package since that does not require pre-loading
      vars files depending on OS, etc.

Change-Id: I324ba61a860f5942b40972903ae1c40caa7839e5
2017-09-06 10:35:04 -04:00
Jenkins
aca60fd187 Merge "Bump compute RAM to 8192MB" 2017-08-30 15:19:39 +00:00
Matt Thompson
33fb2d2ffa Use separate interfaces for lb traffic
Currently, deploying a multi-node AIO results in
internal_lb_vip_address and external_lb_vip_address being set to the
same IP (10.0.236.150), which results in services having issues
communicating with the lb.

This commit simply sets external_lb_vip_address to use the
load balancer's dhcp address, which is fixed to 10.0.2.150.

Change-Id: I6faabd641c0559a0381e559f364cc76c49293014
2017-08-29 19:46:25 +00:00
Matt Thompson
caf196f798 Bump compute RAM to 8192MB
Currently, instances will not boot as nova.conf is configured with
`reserved_host_memory_mb: 2048` while the compute VMs themselves only
have 2048MB of RAM assigned.

This commit bumps the compute VMs to have 8192MB of RAM so that
instances can be successfully booted.

NOTE: Prior to all the recent refactors that have taken place, we were
      giving the compute VMs 9216MB of RAM.  I'm not entirely sure why
      this number was chosen but can happily change 8192MB to 9216MB to
      match what was being used before.

Change-Id: Ie36fcb4fb3f3b5bce27f2851fba0afc6e0d1966a
2017-08-29 15:05:51 -04:00