Skip to content
Snippets Groups Projects
  • Mark Goddard's avatar
    78909146
    Improve SSH known host error messages · 78909146
    Mark Goddard authored
    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
    78909146
    History
    Improve SSH known host error messages
    Mark Goddard authored
    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