Page MenuHomePhabricator

CloudVPS: create a wrapper script to ease virsh console to VMs
Open, Needs TriagePublic

Description

If trying to access the serial console of a VM in CloudVPS one must perform the following steps:

  • investigate in which hypervisor is the VM running
  • investigate the libvirt ID of the VM (something like i-000045b2)
  • jump by ssh to the hypervisor and run the command sudo virsh console --devname serial1 $ID

This is documented here: https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS/Admin/Troubleshooting#Root_console_access

The procedure is very time-consuming and can easily be automated (all the information is in keystone)
When developing new services or projects (example: T228500: Toolforge: evaluate ingress mechanism) this is a very common operation, so having a wmcs-root-console script that does all the above would save us a lot of time.

First step would be to develop some helper library to help us translate between the main identifiers for a given VM:

  • short name (like tools-worker-1003)
  • full hostname (like tools-worker-1003.tools.eqiad.wmflabs)
  • nova ID (like d268926f-32a4-4201-ad70-b6956a66d929)
  • libvirt ID (like i-000045b2)

(BTW this small helper library should be really helpful in a lot of other small scripts we have.)

Ideally, the script would be able run from anywhere with enough credentials to do all the steps (keystone creds + ssh creds for the cloudvirt).

Example usage:
$ wmcs-root-console tools-worker-1003

Mind: https://xkcd.com/1205/ https://xkcd.com/1319/

Event Timeline

aborrero created this task.Wed, Oct 9, 12:12 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptWed, Oct 9, 12:12 PM