Deployment of containerised OpenStack to bare metal using kolla and bifrost
Go to file
Mark Goddard 7890914627 Improve SSH known host error messages
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
2020-04-23 19:55:39 +00:00
.github Add an issue template. 2017-12-14 20:39:55 +00:00
ansible Improve SSH known host error messages 2020-04-23 19:55:39 +00:00
dev Install python-openstackclient using upper constraints 2020-04-02 16:58:50 +02:00
doc Merge "CentOS 8: seed VM & bifrost" 2020-04-15 16:28:47 +00:00
etc/kayobe CentOS 8: seed VM & bifrost 2020-04-09 14:04:22 +00:00
kayobe Use unittest.mock instead of PyPI mock 2020-04-03 10:22:39 +01:00
playbooks Merge "CentOS 8: Enable overcloud upgrade job" 2020-03-23 14:24:55 +00:00
releasenotes Improve SSH known host error messages 2020-04-23 19:55:39 +00:00
roles Stop gzipping logs in get-logs.sh 2020-02-11 13:04:37 +00:00
tools Use unittest.mock instead of PyPI mock 2020-04-03 10:22:39 +01:00
zuul.d CentOS 8: Enable seed upgrade job 2020-03-25 14:56:57 +00:00
.coveragerc Use stestr for running unit tests, add a coverage environment 2018-03-08 16:37:08 +00:00
.gitignore Add 'venvs' to list of things which we don't want git to track 2018-07-02 14:17:18 +01:00
.gitreview Fix after x/kayobe rename 2019-09-16 16:26:27 +02:00
.stestr.conf Use stestr for running unit tests, add a coverage environment 2018-03-08 16:37:08 +00:00
.travis.yml Add a tox environment & dependencies for running molecule tests 2018-02-20 18:48:28 +00:00
.yamllint Run yamllint on etc/kayobe during pep8 tox env 2019-02-14 12:17:19 +00:00
CONTRIBUTING.rst Sync Sphinx requirement 2019-06-25 02:24:45 +00:00
HACKING.rst Sync Sphinx requirement 2019-06-25 02:24:45 +00:00
LICENSE License kayobe project under Apache2 2017-04-06 10:15:29 +01:00
README.rst Update docs after repo rename x/ to openstack/ 2019-09-16 17:39:29 +01:00
requirements.txt Blacklist Ansible 2.8.9 2020-03-05 17:00:46 +00:00
requirements.yml CentOS 8: seed VM & bifrost 2020-04-09 14:04:22 +00:00
setup.cfg [ussuri][goal] Drop python 2.7 support and testing 2020-02-11 10:12:39 +00:00
setup.py Use pbr to build the project 2018-03-08 16:37:08 +00:00
test-requirements.txt Remove sphinx from test-requirements.txt 2019-10-21 11:10:13 +02:00
tox.ini [ussuri][goal] More cleanup for python 2.7 drop 2020-02-29 15:23:18 -06:00
Vagrantfile Support complete installation of Kayobe as a python package 2019-02-01 12:55:27 +00:00

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.

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