GCE: как найти все диски, подключенные к экземпляру? - PullRequest
0 голосов
/ 27 ноября 2018

Я хотел бы найти все диски, подключенные к экземпляру.

Когда я делаю gcloud compute disks list, я получаю все из них.Возможно, есть --filter, который может помочь, но я не могу найти ничего полезного об этих фильтрах в документе.

Если я не сделаю предположения относительно имени диска, чтобы получить имя экземпляра (который я надеваюне хочу основывать какую-либо логику), я все еще ищу, как это получить.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Спасибо @ j-rojas, но этот кажется еще лучше:

gcloud compute instances describe --zone=<zone-name> <instance-name> --format=json \
 | python -c 'import sys, json; print "\n".join(disk["source"] for disk in json.load(sys.stdin)["disks"])' \
 | xargs -I {} sh -c 'gcloud compute disks describe {} --format=json \
                      | python -c "import sys, json; print(json.load(sys.stdin)[\"name\"])"'

Таким образом, он очищен и готов к отправке (по одному диску на строку).

Inодна строка:

gcloud compute instances describe --zone=<zone-name> <instance-name> --format=json | python -c 'import sys, json; print "\n".join(disk["source"] for disk in json.load(sys.stdin)["disks"])' | xargs -I {} sh -c 'gcloud compute disks describe {} --format=json | python -c "import sys, json; print(json.load(sys.stdin)[\"name\"])"'
0 голосов
/ 27 ноября 2018

Вы можете попробовать использовать следующую команду:

gcloud compute instances describe <instance-name> --zone=<your-zone> | sed -n -e '/disks/,/id:/ p'

Используя конвейер, вы можете фильтровать вывод, показывая только диски, подключенные к вашему экземпляру.Надеюсь, что это может быть полезно

...