Как собирать информацию об вашей среде
Введение
Этот раздел показывает, как использовать Ansible для сбора информации о вашей среде. Эта информация полезна для других учебных пособий.
Требования к сценарию
В этом сценарии у нас есть vCenter с хостом ESXi.
Наша среда предварительно инициализирована следующими элементами:
- Центр обработки данных с именем
my_dc - Кластер с именем
my_cluser - Кластер с именем
my_cluser - Хост ESXi с именем
esxi1входит в кластер - Два хранилища данных на ESXi:
rw_datastoreиro_datastore - Сеть гостя на основе dvswitch
Наконец, мы используем переменные среды для аутентификации, как описано в Как настроить сборку vmware_rest.
Как собирать информацию
В этих примерах мы используем модуль vcenter_*_info для сбора информации об связанных ресурсах.
Все эти модули возвращают ключ value. В зависимости от контекста, этот ключ value будет либо списком, либо словарем.
Центр обработки данных
Здесь мы используем модуль vcenter_datacenter_info для вывода списка всех центров обработки данных:
- name: collect a list of the datacenters vmware.vmware_rest.vcenter_datacenter_info: register: my_datacenters
Результат
Как ожидалось, ключ value вывода является списком.
{
"value": [
{
"name": "my_dc",
"datacenter": "datacenter-1630"
}
],
"changed": false
}
Кластер
Здесь мы делаем то же самое с vcenter_cluster_info.
- name: Build a list of all the clusters vmware.vmware_rest.vcenter_cluster_info: register: all_the_clusters
Результат
{
"value": [
{
"drs_enabled": false,
"cluster": "domain-c1636",
"name": "my_cluster",
"ha_enabled": false
}
],
"changed": false
}
И мы также можем получить подробности о конкретном кластере с параметром cluster.
- name: Retrieve details about the first cluster
vmware.vmware_rest.vcenter_cluster_info:
cluster: "{{ all_the_clusters.value[0].cluster }}"
register: my_cluster_info
Результат
И ключ value вывода на этот раз является словарем.
{
"value": {
"name": "my_cluster",
"resource_pool": "resgroup-1637"
},
"id": "domain-c1636",
"changed": false
}
Хранилище данных
Здесь мы используем vcenter_datastore_info для получения списка всех хранилищ данных:
- name: Retrieve a list of all the datastores vmware.vmware_rest.vcenter_datastore_info: register: my_datastores
Результат
{
"value": [
{
"datastore": "datastore-1644",
"name": "local",
"type": "VMFS",
"free_space": 13523484672,
"capacity": 15032385536
},
{
"datastore": "datastore-1645",
"name": "ro_datastore",
"type": "NFS",
"free_space": 24638349312,
"capacity": 26831990784
},
{
"datastore": "datastore-1646",
"name": "rw_datastore",
"type": "NFS",
"free_space": 24638349312,
"capacity": 26831990784
}
],
"changed": false
}
Папка
И здесь вы снова используете модуль vcenter_folder_info для извлечения списка всех папок.
- name: Build a list of all the folders vmware.vmware_rest.vcenter_folder_info: register: my_folders
Результат
{
"value": [
{
"folder": "group-d1",
"name": "Datacenters",
"type": "DATACENTER"
}
],
"changed": false
}
В большинстве случаев вам потребуется только один тип папки. В этом случае мы можем использовать фильтры, чтобы уменьшить количество собираемых данных. Большинство модулей _info поставляются с похожими фильтрами.
- name: Build a list of all the folders with the type VIRTUAL_MACHINE and called vm
vmware.vmware_rest.vcenter_folder_info:
filter_type: VIRTUAL_MACHINE
filter_names:
- vm
register: my_folders
Результат
{
"value": [
{
"folder": "group-v1631",
"name": "vm",
"type": "VIRTUAL_MACHINE"
}
],
"changed": false
}
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/scenario_guides/vmware_rest_scenarios/collect_information.html