75 Commits

Author SHA1 Message Date
Will Miller
768af20e84 Move pip settings to group_vars/all
We need to use pip on localhost as well as on hypervisors, for Ironic
enrolment.
2018-09-07 13:22:06 +01:00
Will Miller
af98a20249 Fix upper constraints typo 2018-09-07 13:21:29 +01:00
Will Miller
8b44c718b4 Use round-robin scheduling instead of all-on-one 2018-09-07 13:18:42 +01:00
w-miller
5707fd3309
Merge pull request #1 from stackhpc/master
Sync with stackhpc/tenks
2018-09-06 10:25:47 +01:00
w-miller
ca72b08355
Merge pull request #5 from stackhpc/ironic-enrolment
Add Ironic enrolment
2018-09-06 10:19:50 +01:00
Will Miller
cfb7c05e30 Move node enrolment up a level
Call node enrolment from the top level deploy.yml playbook, to make it
easier to skip enrolment if necessary. Rename to fit the scheme of
second-level playbooks.

Also, fix variable scoping issues by giving a different name to the
temporary variable used when calling the scheduling module. This ensures
that all future tasks correctly reference the allocations from the file.
2018-09-06 09:08:11 +00:00
Will Miller
666f294c20 Merge remote-tracking branch 'origin/master' into ironic-enrolment
Conflicts:
	ansible/deploy.yml
2018-09-06 08:38:08 +00:00
Will Miller
84ef8cd8ee Fix PEP8 and ansible-lint warnings 2018-09-06 08:31:24 +00:00
Will Miller
e39d080dd9 Split deployment into stages 2018-09-06 08:19:41 +00:00
Will Miller
ed0f1bea06 Split deploy.yml
Split deploy.yml into host- and node-specific steps.

Conflicts:
	ansible/deploy.yml
2018-09-05 15:47:43 +00:00
Will Miller
b888c3cb3e Allow binary and decimal capacities in size string 2018-09-05 15:44:06 +00:00
Will Miller
b7334f4f7b Use dict query instead of iteritems 2018-09-05 15:38:39 +00:00
Will Miller
0b340a1bae Fix IPMI address typo 2018-09-05 14:05:26 +00:00
Will Miller
06bfdb0953 Fix PEP8 issues 2018-09-05 13:43:53 +00:00
Will Miller
81f1696263 Add Ironic enrolment Ansible role 2018-08-31 16:57:34 +00:00
Will Miller
8e9e91ac79 Ensure nodes are always sorted alphabetically 2018-08-31 16:54:57 +00:00
Will Miller
7a78f86f40 Add additional network naming filter plugins
These will be useful for determining details needed for Ironic ports.
2018-08-31 13:49:19 +00:00
Will Miller
c9ea94b4fc Consolidate interface/link naming
Create filter plugins to perform physnet/node to veth link and bridge
naming. This reduces the logic duplication present.
2018-08-30 13:51:48 +00:00
w-miller
d3bc79aac4
Merge pull request #4 from stackhpc/small-fixes
Small fixes
2018-08-30 14:36:17 +01:00
Mark Goddard
32fcca4a06
Use loop rather than with_items 2018-08-30 14:35:31 +01:00
Mark Goddard
e007012859 Install package dependencies for virtualbmc daemon
These are required for installation of the virtualbmc package on CentOS.

TODO: Support for other platforms.
2018-08-30 13:22:07 +00:00
Mark Goddard
8884d4e9d5 Use become=true for OVS bridge creation 2018-08-30 13:20:53 +00:00
Mark Goddard
64134eabcc Fix OVS detection
Although my shell returns 127 when a command is not found, Ansible's command
module seems to be getting 2. Assume non-zero means not installed.
2018-08-30 13:20:14 +00:00
Mark Goddard
e481b97437 Fix path to playbook in README 2018-08-30 13:16:39 +00:00
Will Miller
2d214adef3 Extract IPMI configuration out of role
This is required for Ironic enrolment as well as Virtual BMC
configuration.
2018-08-30 11:29:49 +00:00
w-miller
c12fe03a9c
Merge pull request #3 from stackhpc/s-vm-node
Refer to nodes, rather than VMs
2018-08-30 11:22:29 +01:00
Will Miller
b4dfab2557 Merge branch 'master' into s-vm-node
Conflicts:
	ansible/deploy.yml
2018-08-30 10:08:38 +00:00
w-miller
a86f092f2e
Merge pull request #2 from stackhpc/vbmc
Add Virtual BMC configuration
2018-08-30 11:03:41 +01:00
Will Miller
0d88c38c1b Move VBMCD service name into vars file 2018-08-30 09:15:13 +00:00
Will Miller
2cc0bb6da4 Set up VBMCD with Libvirt host setup 2018-08-30 08:12:24 +00:00
Will Miller
e31a313f3c Check IPMI port count before creating VMs 2018-08-30 08:09:54 +00:00
Will Miller
317bcf964c Merge branch 'vbmc' into s-vm-node
Conflicts:
	ansible/deploy.yml
	ansible/roles/virtualbmc/tasks/main.yml
2018-08-29 11:36:04 +00:00
Will Miller
855a2c2c7c Split Virtual BMC role into two
Create a role to configure a host for Virtual BMC, and another to add
domains to it.

Also add some checking to make the roles more robust.

Conflicts:
	ansible/deploy.yml
	ansible/libvirt_create_vms.yml
	ansible/roles/virtualbmc/tasks/main.yml
2018-08-29 10:45:52 +00:00
Will Miller
34ebd92cad Refer to nodes, rather than VMs
The fact that the Libvirt provider is using VMs is an implementation
detail, so we should word Tenks such that it deploys clusters of nodes.
2018-08-28 16:50:02 +00:00
Will Miller
7aeb2e971c Check existence of node types referenced in specs 2018-08-28 16:42:17 +00:00
Mark Goddard
bbb727dda8
Merge pull request #1 from stackhpc/proof-of-concept
[WIP] Proof of concept
2018-08-28 16:48:30 +01:00
Will Miller
7e0cc7e16b Fix typo in scheduling plugin 2018-08-28 15:21:47 +00:00
Will Miller
b36f95a04f Extract Virtual BMC tasks into a role
The role will:
* Install VBMC requirements in virtualenv
* Set up VBMC daemon
* Add domains to VBMC
2018-08-28 15:21:43 +00:00
Will Miller
fb0a948950 Move Python package vars together 2018-08-28 13:24:33 +00:00
Will Miller
32e828abfc Merge branch 'proof-of-concept' into vbmc
Conflicts:
	ansible/group_vars/hypervisors
2018-08-28 12:33:53 +00:00
Will Miller
1c2d1e5d9a Gather hypervisor facts in parallel pre-scheduling 2018-08-28 12:30:24 +00:00
Will Miller
3bd8e05732 Fix veth-pair role README typos 2018-08-28 12:30:23 +00:00
Will Miller
66f5f8edf1 Use a separate requirements file for venv packages 2018-08-28 12:30:18 +00:00
Will Miller
f9638bc28b Use Ansible variables for relative paths 2018-08-28 12:12:48 +00:00
Will Miller
e5fc211de3 Configure Virtual BMC
* Configure the Virtual BMC daemon in systemd
* Start the Virtual BMC daemon per hypervisor
* Add each hypervisor's VMs to Virtual BMC
2018-08-28 12:12:21 +00:00
Will Miller
c1cb7b9baf Use Ansible variables for relative paths 2018-08-28 12:11:11 +00:00
Will Miller
41c3d166cc Remove unused variable 2018-08-28 11:25:39 +00:00
Will Miller
ef7041501d Remove defaults for specs and vm_types
VM types and specifications can't really have sensible defaults since
they depend on the hypervisors' specs. Leave them empty and give format
examples in comments.
2018-08-28 11:24:33 +00:00
Will Miller
c538a825cc Remove unnecessary Pip dependency 2018-08-28 11:11:48 +00:00
Will Miller
87e4e5e8da Perform Libvirt host setup after Tenks host setup 2018-08-28 11:10:37 +00:00