Deployment of containerised OpenStack to bare metal using kolla and bifrost
7890914627
A common failure early on when using Kayobe is during discovery of SSH known hosts. This happens if a host does not have an IP address configured on the admin (SSH) network. The failure looks like this: PLAY [Ensure known hosts are configured] ********************************************************************** TASK [ssh-known-host : Scan for SSH keys] ********************************************************************** failed: [compute0 -> localhost] (item=) => {"ansible_loop_var": "item", "changed": false, "cmd": ["ssh-keyscan"], "delta": "0:00:00.013855", "end": "2020-04-17 10:51:01.857855", "item": "", "msg": "non-zero return code", "rc": 1, "start": "2020-04-17 10:51:01.844000", "stderr": "usage: ssh-keyscan [-46cDHv] [-f file] [-p port] [-T timeout] [-t type]\n\t\t [host | addrlist namelist]", "stderr_lines": ["u sage: ssh-keyscan [-46cDHv] [-f file] [-p port] [-T timeout] [-t type]", "\t\t [host | addrlist namelist]"], "stdout": "", "stdout_lines": []} This happens when ansible_host is an empty string, typically because the host has no IP address defined in for the admin network in network-allocation.yml. This is very confusing for a new user. We should provide a more informative message. It's not exactly clear how a user gets to this point, since the ip-allocation.yml playbook runs before ssh-known-host.yml, which should populate network-allocation.yml. This change detects this failure mode and provides a message with information about how to resolve it. Change-Id: I564b6e4509a30dec7c49a23bb2f75d490be775ed Story: 2007566 Task: 39456 |
||
---|---|---|
.github | ||
ansible | ||
dev | ||
doc | ||
etc/kayobe | ||
kayobe | ||
playbooks | ||
releasenotes | ||
roles | ||
tools | ||
zuul.d | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.stestr.conf | ||
.travis.yml | ||
.yamllint | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
README.rst | ||
requirements.txt | ||
requirements.yml | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini | ||
Vagrantfile |
Kayobe
Kayobe enables deployment of containerised OpenStack to bare metal.
Containers offer a compelling solution for isolating OpenStack services, but running the control plane on an orchestrator such as Kubernetes or Docker Swarm adds significant complexity and operational overheads.
The hosts in an OpenStack control plane must somehow be provisioned, but deploying a secondary OpenStack cloud to do this seems like overkill.
Kayobe stands on the shoulders of giants:
- OpenStack bifrost discovers and provisions the cloud
- OpenStack kolla builds container images for OpenStack services
- OpenStack kolla-ansible delivers painless deployment and upgrade of containerised OpenStack services
To this solid base, kayobe adds:
- Configuration of cloud host OS & flexible networking
- Management of physical network devices
- A friendly openstack-like CLI
All this and more, automated from top to bottom using Ansible.
- Free software: Apache license
- Documentation: https://docs.openstack.org/kayobe/latest/
- Source: https://opendev.org/openstack/kayobe
- Bugs: https://storyboard.openstack.org/#!/project/openstack/kayobe
- Release Notes: https://docs.openstack.org/releasenotes/kayobe/
- IRC: #openstack-kolla
Features
- Heavily automated using Ansible
- kayobe Command Line Interface (CLI) for cloud operators
- Deployment of a seed VM used to manage the OpenStack control plane
- Configuration of physical network infrastructure
- Discovery, introspection and provisioning of control plane hardware using OpenStack bifrost
- Deployment of an OpenStack control plane using OpenStack kolla-ansible
- Discovery, introspection and provisioning of bare metal compute hosts using OpenStack ironic and ironic inspector
- Virtualised compute using OpenStack nova
- Containerised workloads on bare metal using OpenStack magnum
- Big data on bare metal using OpenStack sahara
- Control plane and workload monitoring and log aggregation using OpenStack monasca