gpt4 book ai didi

google-cloud-platform - 如何获取 GCP 中所有项目的所有 VM 信息

转载 作者:行者123 更新时间:2023-12-05 05:12:15 25 4
gpt4 key购买 nike

如何获取 GCP 中所有项目的所有 VM 信息。

我的 GCP 帐户中有多个项目,我需要 GCP 中所有项目的操作系统、系统操作系统版本和操作系统构建版本。

最佳答案

我没有找到相应的工具,所以我编写了一些您可以使用的代码。此代码必须改进,但在这里您可以找到一种扫描所有项目并获取有关操作系统信息的方法。

如果对您有帮助,请告诉我。

Pip 安装:

!pip install google-cloud
!pip install google-api-python-client
!pip install oauth2client

代码:

import subprocess
import sys
import logging
import threading
import pprint

logger = logging.Logger('catch_all')

def execute_bash(parameters):
try:
return subprocess.check_output(parameters)
except Exception as e:
logger.error(e)
logger.error('ERROR: Looking in jupyter console for more information')

def scan_gce(project, results_scan):
print('Scanning project: "{}"'.format(project))
ex = execute_bash(['gcloud','compute', 'instances', 'list', '--project', project, '--format=value(name,zone, status)'])
list_result_vms = []
if ex:
list_vms = ex.decode("utf-8").split('\n')
for vm in list_vms:
if vm:
vm_info = vm.split('\t')
print('Scanning Instance: "{}" in project "{}"'.format(vm_info[0], project))
results_bytes = execute_bash(['gcloud', 'compute', '--project',project,
'ssh', '--zone', vm_info[1], vm_info[0],
'--command', 'cat /etc/*-release' ])
if results_bytes:
results = results_bytes.decode("utf-8").split('\n')
list_result_vms.append({'instance_name': vm_info[0],'result':results})


results_scan.append({'project':project, 'vms':list_result_vms})


list_projects = execute_bash(['gcloud','projects', 'list', '--format=value(projectId)']).decode("utf-8").split('\n')
threads_project = []
results_scan = []
for project in list_projects :
t = threading.Thread(target=scan_gce, args=(project, results_scan))
threads_project.append(t)
t.start()

for t in threads_project:
t.join()

for result in results_scan:
pprint.pprint(result)

您可以找到完整代码 here :

关于google-cloud-platform - 如何获取 GCP 中所有项目的所有 VM 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com