Created
December 16, 2014 20:31
-
-
Save cloudnull/e586ef61f0edc8684cf6 to your computer and use it in GitHub Desktop.
/etc/opc_deploy/opc_inventory.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"_meta": { | |
"hostvars": { | |
"infra1": { | |
"ansible_ssh_host": "172.29.236.100", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_compute", | |
"container_address": "172.29.236.100", | |
"container_name": "infra1", | |
"container_networks": { | |
"None_address": { | |
"bridge": "br-vlan", | |
"netmask": null, | |
"type": "veth" | |
}, | |
"management_address": { | |
"address": "172.29.236.100", | |
"bridge": "br-mgmt", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"snet_address": { | |
"bridge": "br-snet", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"storage_address": { | |
"bridge": "br-storage", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"tunnel_address": { | |
"bridge": "br-vxlan", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"container_types": "infra1_containers", | |
"is_metal": true, | |
"physical_host": "infra1", | |
"physical_host_group": "compute_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"is_metal": true, | |
"service_name": "nova" | |
} | |
}, | |
"infra1_cinder_api_container-5e70f6a3": { | |
"ansible_ssh_host": "172.29.239.202", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "cinder_api", | |
"container_address": "172.29.239.202", | |
"container_name": "infra1_cinder_api_container-5e70f6a3", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.202", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"storage_address": { | |
"address": "172.29.247.60", | |
"bridge": "br-storage", | |
"interface": "eth2", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "storage-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "cinder" | |
} | |
}, | |
"infra1_elasticsearch_container-2fa0f4c8": { | |
"ansible_ssh_host": "172.29.239.42", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "elasticsearch", | |
"container_address": "172.29.239.42", | |
"container_name": "infra1_elasticsearch_container-2fa0f4c8", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.42", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "log_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "elasticsearch" | |
} | |
}, | |
"infra1_galera_container-01d84ce7": { | |
"ansible_ssh_host": "172.29.236.18", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "galera", | |
"container_address": "172.29.236.18", | |
"container_name": "infra1_galera_container-01d84ce7", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.18", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "galera" | |
} | |
}, | |
"infra1_galera_container-94250a0e": { | |
"ansible_ssh_host": "172.29.236.38", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "galera", | |
"container_address": "172.29.236.38", | |
"container_name": "infra1_galera_container-94250a0e", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.38", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "galera" | |
} | |
}, | |
"infra1_galera_container-a5758b43": { | |
"ansible_ssh_host": "172.29.238.201", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "galera", | |
"container_address": "172.29.238.201", | |
"container_name": "infra1_galera_container-a5758b43", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.238.201", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "galera" | |
} | |
}, | |
"infra1_glance_container-96f49a2f": { | |
"ansible_ssh_host": "172.29.239.73", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "glance_api", | |
"container_address": "172.29.239.73", | |
"container_name": "infra1_glance_container-96f49a2f", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.73", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"snet_address": { | |
"address": "172.29.249.25", | |
"bridge": "br-snet", | |
"interface": "eth3", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"storage_address": { | |
"address": "172.29.245.89", | |
"bridge": "br-storage", | |
"interface": "eth2", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "glance" | |
} | |
}, | |
"infra1_heat_apis_container-7c70ee2b": { | |
"ansible_ssh_host": "172.29.236.101", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "heat_api_cloudwatch", | |
"container_address": "172.29.236.101", | |
"container_name": "infra1_heat_apis_container-7c70ee2b", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.101", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "heat" | |
} | |
}, | |
"infra1_heat_engine_container-a35147a6": { | |
"ansible_ssh_host": "172.29.238.27", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "heat_engine", | |
"container_address": "172.29.238.27", | |
"container_name": "infra1_heat_engine_container-a35147a6", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.238.27", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "heat" | |
} | |
}, | |
"infra1_horizon_container-3925ca44": { | |
"ansible_ssh_host": "172.29.237.145", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "horizon", | |
"container_address": "172.29.237.145", | |
"container_name": "infra1_horizon_container-3925ca44", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.145", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "horizon" | |
} | |
}, | |
"infra1_keystone_container-fb9c9049": { | |
"ansible_ssh_host": "172.29.236.224", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "keystone", | |
"container_address": "172.29.236.224", | |
"container_name": "infra1_keystone_container-fb9c9049", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.224", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "identity_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "keystone" | |
} | |
}, | |
"infra1_kibana_container-e6ac42c9": { | |
"ansible_ssh_host": "172.29.236.12", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "kibana", | |
"container_address": "172.29.236.12", | |
"container_name": "infra1_kibana_container-e6ac42c9", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.12", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "log_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "kibana" | |
} | |
}, | |
"infra1_logstash_container-419e3471": { | |
"ansible_ssh_host": "172.29.237.190", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "logstash", | |
"container_address": "172.29.237.190", | |
"container_name": "infra1_logstash_container-419e3471", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.190", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "log_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "logstash" | |
} | |
}, | |
"infra1_memcached_container-b7894bec": { | |
"ansible_ssh_host": "172.29.237.118", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "memcached", | |
"container_address": "172.29.237.118", | |
"container_name": "infra1_memcached_container-b7894bec", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.118", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "memcached" | |
} | |
}, | |
"infra1_neutron_agents_container-2a3bcc1d": { | |
"ansible_ssh_host": "172.29.237.101", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "neutron_agent", | |
"container_address": "172.29.237.101", | |
"container_name": "infra1_neutron_agents_container-2a3bcc1d", | |
"container_networks": { | |
"None_address": { | |
"bridge": "br-vlan", | |
"interface": "eth11", | |
"netmask": null, | |
"type": "veth" | |
}, | |
"management_address": { | |
"address": "172.29.237.101", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"snet_address": { | |
"address": "172.29.250.37", | |
"bridge": "br-snet", | |
"interface": "eth3", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
}, | |
"tunnel_address": { | |
"address": "172.29.241.36", | |
"bridge": "br-vxlan", | |
"interface": "eth10", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "network_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "neutron" | |
} | |
}, | |
"infra1_neutron_server_container-7197ed5b": { | |
"ansible_ssh_host": "172.29.237.227", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "neutron_server", | |
"container_address": "172.29.237.227", | |
"container_name": "infra1_neutron_server_container-7197ed5b", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.227", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "network_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "neutron" | |
} | |
}, | |
"infra1_nova_api_ec2_container-2c537e4f": { | |
"ansible_ssh_host": "172.29.239.183", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_api_ec2", | |
"container_address": "172.29.239.183", | |
"container_name": "infra1_nova_api_ec2_container-2c537e4f", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.183", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_api_metadata_container-38392a2e": { | |
"ansible_ssh_host": "172.29.238.235", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_api_metadata", | |
"container_address": "172.29.238.235", | |
"container_name": "infra1_nova_api_metadata_container-38392a2e", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.238.235", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_api_os_compute_container-93adfbec": { | |
"ansible_ssh_host": "172.29.237.38", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_api_os_compute", | |
"container_address": "172.29.237.38", | |
"container_name": "infra1_nova_api_os_compute_container-93adfbec", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.38", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_cert_container-c5c9e0f7": { | |
"ansible_ssh_host": "172.29.236.241", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_cert", | |
"container_address": "172.29.236.241", | |
"container_name": "infra1_nova_cert_container-c5c9e0f7", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.241", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_conductor_container-e9a90c93": { | |
"ansible_ssh_host": "172.29.238.161", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_conductor", | |
"container_address": "172.29.238.161", | |
"container_name": "infra1_nova_conductor_container-e9a90c93", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.238.161", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_scheduler_container-87a9dd18": { | |
"ansible_ssh_host": "172.29.236.15", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_scheduler", | |
"container_address": "172.29.236.15", | |
"container_name": "infra1_nova_scheduler_container-87a9dd18", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.15", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_nova_spice_console_container-c6fc0395": { | |
"ansible_ssh_host": "172.29.237.202", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "nova_spice_console", | |
"container_address": "172.29.237.202", | |
"container_name": "infra1_nova_spice_console_container-c6fc0395", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.202", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "nova" | |
} | |
}, | |
"infra1_rabbitmq_container-351f1c10": { | |
"ansible_ssh_host": "172.29.236.24", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "rabbitmq", | |
"container_address": "172.29.236.24", | |
"container_name": "infra1_rabbitmq_container-351f1c10", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.24", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "rabbitmq" | |
} | |
}, | |
"infra1_rabbitmq_container-92d1cf1c": { | |
"ansible_ssh_host": "172.29.236.153", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "rabbitmq", | |
"container_address": "172.29.236.153", | |
"container_name": "infra1_rabbitmq_container-92d1cf1c", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.153", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "rabbitmq" | |
} | |
}, | |
"infra1_rabbitmq_container-dd99f673": { | |
"ansible_ssh_host": "172.29.239.37", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "rabbitmq", | |
"container_address": "172.29.239.37", | |
"container_name": "infra1_rabbitmq_container-dd99f673", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.37", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "rabbitmq" | |
} | |
}, | |
"infra1_repo_container-3137578f": { | |
"ansible_ssh_host": "172.29.236.60", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "pkg_repo", | |
"container_address": "172.29.236.60", | |
"container_name": "infra1_repo_container-3137578f", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.60", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "repo-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "repo" | |
} | |
}, | |
"infra1_repo_container-5e457e0d": { | |
"ansible_ssh_host": "172.29.237.100", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "pkg_repo", | |
"container_address": "172.29.237.100", | |
"container_name": "infra1_repo_container-5e457e0d", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.237.100", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "repo-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "repo" | |
} | |
}, | |
"infra1_repo_container-65cdb6af": { | |
"ansible_ssh_host": "172.29.236.110", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "pkg_repo", | |
"container_address": "172.29.236.110", | |
"container_name": "infra1_repo_container-65cdb6af", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.236.110", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "repo-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "repo" | |
} | |
}, | |
"infra1_rsyslog_container-8ab040c5": { | |
"ansible_ssh_host": "172.29.239.189", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "rsyslog", | |
"container_address": "172.29.239.189", | |
"container_name": "infra1_rsyslog_container-8ab040c5", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.239.189", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "os-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "rsyslog" | |
} | |
}, | |
"infra1_utility_container-cc57b53b": { | |
"ansible_ssh_host": "172.29.238.163", | |
"cinder_default_availability_zone": "cinderAZ_1", | |
"cinder_storage_availability_zone": "cinderAZ_1", | |
"component": "utility", | |
"container_address": "172.29.238.163", | |
"container_name": "infra1_utility_container-cc57b53b", | |
"container_networks": { | |
"management_address": { | |
"address": "172.29.238.163", | |
"bridge": "br-mgmt", | |
"interface": "eth1", | |
"netmask": "255.255.252.0", | |
"type": "veth" | |
} | |
}, | |
"physical_host": "infra1", | |
"physical_host_group": "shared-infra_hosts", | |
"properties": { | |
"container_release": "trusty", | |
"service_name": "utility" | |
} | |
} | |
} | |
}, | |
"all": { | |
"vars": { | |
"container_cidr": "172.29.236.0/22", | |
"external_lb_vip_address": "172.29.236.100", | |
"internal_lb_vip_address": "172.29.236.100", | |
"lb_name": "lb_name_in_core", | |
"management_bridge": "br-mgmt", | |
"provider_networks": [ | |
{ | |
"network": { | |
"container_bridge": "br-mgmt", | |
"container_interface": "eth1", | |
"container_type": "veth", | |
"group_binds": [ | |
"all_containers", | |
"hosts" | |
], | |
"ip_from_q": "management", | |
"is_container_address": true, | |
"is_ssh_address": true, | |
"type": "raw" | |
} | |
}, | |
{ | |
"network": { | |
"container_bridge": "br-storage", | |
"container_interface": "eth2", | |
"container_type": "veth", | |
"group_binds": [ | |
"glance_api", | |
"cinder_api", | |
"cinder_volume", | |
"nova_compute" | |
], | |
"ip_from_q": "storage", | |
"type": "raw" | |
} | |
}, | |
{ | |
"network": { | |
"container_bridge": "br-snet", | |
"container_interface": "eth3", | |
"container_type": "veth", | |
"group_binds": [ | |
"glance_api", | |
"nova_compute", | |
"neutron_linuxbridge_agent" | |
], | |
"ip_from_q": "snet", | |
"type": "raw" | |
} | |
}, | |
{ | |
"network": { | |
"container_bridge": "br-vxlan", | |
"container_interface": "eth10", | |
"container_type": "veth", | |
"group_binds": [ | |
"neutron_linuxbridge_agent" | |
], | |
"ip_from_q": "tunnel", | |
"net_name": "vxlan", | |
"range": "1:1000", | |
"type": "vxlan" | |
} | |
}, | |
{ | |
"network": { | |
"container_bridge": "br-vlan", | |
"container_interface": "eth11", | |
"container_type": "veth", | |
"group_binds": [ | |
"neutron_linuxbridge_agent" | |
], | |
"net_name": "vlan", | |
"range": "1:1", | |
"type": "vlan" | |
} | |
} | |
], | |
"tunnel_bridge": "br-vxlan" | |
} | |
}, | |
"all_containers": { | |
"children": [ | |
"compute_containers", | |
"storage-infra_containers", | |
"storage_containers", | |
"swift-proxy_containers", | |
"os-infra_containers", | |
"log_containers", | |
"infra_containers", | |
"swift_containers", | |
"identity_containers", | |
"network_containers", | |
"repo-infra_containers", | |
"shared-infra_containers" | |
], | |
"hosts": [] | |
}, | |
"cinder_all": { | |
"children": [ | |
"cinder_api", | |
"cinder_volume", | |
"cinder_scheduler" | |
], | |
"hosts": [] | |
}, | |
"cinder_api": { | |
"children": [], | |
"hosts": [ | |
"infra1_cinder_api_container-5e70f6a3" | |
] | |
}, | |
"cinder_api_container": { | |
"hosts": [ | |
"infra1_cinder_api_container-5e70f6a3" | |
] | |
}, | |
"cinder_scheduler": { | |
"children": [], | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"cinder_volume": { | |
"children": [], | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"cinder_volumes_container": { | |
"hosts": [] | |
}, | |
"compute_all": { | |
"hosts": [ | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1" | |
] | |
}, | |
"compute_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"compute_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"elasticsearch": { | |
"children": [], | |
"hosts": [ | |
"infra1_elasticsearch_container-2fa0f4c8" | |
] | |
}, | |
"elasticsearch_all": { | |
"children": [ | |
"elasticsearch" | |
], | |
"hosts": [] | |
}, | |
"elasticsearch_container": { | |
"hosts": [ | |
"infra1_elasticsearch_container-2fa0f4c8" | |
] | |
}, | |
"galera": { | |
"children": [], | |
"hosts": [ | |
"infra1_galera_container-94250a0e", | |
"infra1_galera_container-01d84ce7", | |
"infra1_galera_container-a5758b43" | |
] | |
}, | |
"galera_all": { | |
"children": [ | |
"galera" | |
], | |
"hosts": [] | |
}, | |
"galera_container": { | |
"hosts": [ | |
"infra1_galera_container-a5758b43", | |
"infra1_galera_container-01d84ce7", | |
"infra1_galera_container-94250a0e" | |
] | |
}, | |
"glance_all": { | |
"children": [ | |
"glance_registry", | |
"glance_api" | |
], | |
"hosts": [] | |
}, | |
"glance_api": { | |
"children": [], | |
"hosts": [ | |
"infra1_glance_container-96f49a2f" | |
] | |
}, | |
"glance_container": { | |
"hosts": [ | |
"infra1_glance_container-96f49a2f" | |
] | |
}, | |
"glance_registry": { | |
"children": [], | |
"hosts": [ | |
"infra1_glance_container-96f49a2f" | |
] | |
}, | |
"haproxy_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"heat_all": { | |
"children": [ | |
"heat_api", | |
"heat_engine", | |
"heat_api_cloudwatch", | |
"heat_api_cfn" | |
], | |
"hosts": [] | |
}, | |
"heat_api": { | |
"children": [], | |
"hosts": [ | |
"infra1_heat_apis_container-7c70ee2b" | |
] | |
}, | |
"heat_api_cfn": { | |
"children": [], | |
"hosts": [ | |
"infra1_heat_apis_container-7c70ee2b" | |
] | |
}, | |
"heat_api_cloudwatch": { | |
"children": [], | |
"hosts": [ | |
"infra1_heat_apis_container-7c70ee2b" | |
] | |
}, | |
"heat_apis_container": { | |
"hosts": [ | |
"infra1_heat_apis_container-7c70ee2b" | |
] | |
}, | |
"heat_engine": { | |
"children": [], | |
"hosts": [ | |
"infra1_heat_engine_container-a35147a6" | |
] | |
}, | |
"heat_engine_container": { | |
"hosts": [ | |
"infra1_heat_engine_container-a35147a6" | |
] | |
}, | |
"horizon": { | |
"children": [], | |
"hosts": [ | |
"infra1_horizon_container-3925ca44" | |
] | |
}, | |
"horizon_all": { | |
"children": [ | |
"horizon" | |
], | |
"hosts": [] | |
}, | |
"horizon_container": { | |
"hosts": [ | |
"infra1_horizon_container-3925ca44" | |
] | |
}, | |
"hosts": { | |
"children": [ | |
"compute_hosts", | |
"swift_hosts", | |
"storage_hosts", | |
"identity_hosts", | |
"os-infra_hosts", | |
"network_hosts", | |
"log_hosts", | |
"infra_hosts", | |
"shared-infra_hosts", | |
"swift-proxy_hosts", | |
"storage-infra_hosts", | |
"repo-infra_hosts" | |
], | |
"hosts": [] | |
}, | |
"identity_all": { | |
"hosts": [ | |
"infra1_keystone_container-fb9c9049", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1" | |
] | |
}, | |
"identity_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"identity_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"infra1_containers": { | |
"hosts": [ | |
"infra1_nova_scheduler_container-87a9dd18", | |
"infra1_cinder_api_container-5e70f6a3", | |
"infra1_elasticsearch_container-2fa0f4c8", | |
"infra1_horizon_container-3925ca44", | |
"infra1_utility_container-cc57b53b", | |
"infra1_keystone_container-fb9c9049", | |
"infra1_nova_cert_container-c5c9e0f7", | |
"infra1_rabbitmq_container-351f1c10", | |
"infra1_rabbitmq_container-92d1cf1c", | |
"infra1_rabbitmq_container-dd99f673", | |
"infra1_galera_container-a5758b43", | |
"infra1_galera_container-01d84ce7", | |
"infra1_galera_container-94250a0e", | |
"infra1_nova_api_ec2_container-2c537e4f", | |
"infra1_nova_conductor_container-e9a90c93", | |
"infra1_nova_spice_console_container-c6fc0395", | |
"infra1_neutron_server_container-7197ed5b", | |
"infra1_repo_container-5e457e0d", | |
"infra1_repo_container-3137578f", | |
"infra1_repo_container-65cdb6af", | |
"infra1_glance_container-96f49a2f", | |
"infra1_neutron_agents_container-2a3bcc1d", | |
"infra1_nova_api_os_compute_container-93adfbec", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1_heat_engine_container-a35147a6", | |
"infra1_nova_api_metadata_container-38392a2e", | |
"infra1_kibana_container-e6ac42c9", | |
"infra1_logstash_container-419e3471", | |
"infra1_heat_apis_container-7c70ee2b", | |
"infra1_memcached_container-b7894bec" | |
] | |
}, | |
"infra_containers": { | |
"children": [], | |
"hosts": [] | |
}, | |
"infra_hosts": { | |
"children": [], | |
"hosts": [] | |
}, | |
"keystone": { | |
"children": [], | |
"hosts": [ | |
"infra1_keystone_container-fb9c9049" | |
] | |
}, | |
"keystone_all": { | |
"children": [ | |
"keystone" | |
], | |
"hosts": [] | |
}, | |
"keystone_container": { | |
"hosts": [ | |
"infra1_keystone_container-fb9c9049" | |
] | |
}, | |
"kibana": { | |
"children": [], | |
"hosts": [ | |
"infra1_kibana_container-e6ac42c9" | |
] | |
}, | |
"kibana_all": { | |
"children": [ | |
"kibana" | |
], | |
"hosts": [] | |
}, | |
"kibana_container": { | |
"hosts": [ | |
"infra1_kibana_container-e6ac42c9" | |
] | |
}, | |
"log_all": { | |
"hosts": [ | |
"infra1_elasticsearch_container-2fa0f4c8", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1", | |
"infra1_kibana_container-e6ac42c9", | |
"infra1_logstash_container-419e3471" | |
] | |
}, | |
"log_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"log_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"logstash": { | |
"children": [], | |
"hosts": [ | |
"infra1_logstash_container-419e3471" | |
] | |
}, | |
"logstash_all": { | |
"children": [ | |
"logstash" | |
], | |
"hosts": [] | |
}, | |
"logstash_container": { | |
"hosts": [ | |
"infra1_logstash_container-419e3471" | |
] | |
}, | |
"memcached": { | |
"children": [], | |
"hosts": [ | |
"infra1_memcached_container-b7894bec" | |
] | |
}, | |
"memcached_all": { | |
"children": [ | |
"memcached" | |
], | |
"hosts": [] | |
}, | |
"memcached_container": { | |
"hosts": [ | |
"infra1_memcached_container-b7894bec" | |
] | |
}, | |
"network_all": { | |
"hosts": [ | |
"infra1_neutron_server_container-7197ed5b", | |
"infra1_neutron_agents_container-2a3bcc1d", | |
"infra1", | |
"infra1_rsyslog_container-8ab040c5" | |
] | |
}, | |
"network_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"network_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"neutron_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_agents_container": { | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_all": { | |
"children": [ | |
"neutron_agent", | |
"neutron_metadata_agent", | |
"neutron_linuxbridge_agent", | |
"neutron_dhcp_agent", | |
"neutron_l3_agent", | |
"neutron_metering_agent", | |
"neutron_server" | |
], | |
"hosts": [] | |
}, | |
"neutron_dhcp_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_l3_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_linuxbridge_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d", | |
"infra1" | |
] | |
}, | |
"neutron_metadata_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_metering_agent": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_agents_container-2a3bcc1d" | |
] | |
}, | |
"neutron_server": { | |
"children": [], | |
"hosts": [ | |
"infra1_neutron_server_container-7197ed5b" | |
] | |
}, | |
"neutron_server_container": { | |
"hosts": [ | |
"infra1_neutron_server_container-7197ed5b" | |
] | |
}, | |
"nova_all": { | |
"children": [ | |
"nova_api_metadata", | |
"nova_cert", | |
"nova_conductor", | |
"nova_api_os_compute", | |
"nova_api_ec2", | |
"nova_scheduler", | |
"nova_compute", | |
"nova_spice_console" | |
], | |
"hosts": [] | |
}, | |
"nova_api_ec2": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_api_ec2_container-2c537e4f" | |
] | |
}, | |
"nova_api_ec2_container": { | |
"hosts": [ | |
"infra1_nova_api_ec2_container-2c537e4f" | |
] | |
}, | |
"nova_api_metadata": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_api_metadata_container-38392a2e" | |
] | |
}, | |
"nova_api_metadata_container": { | |
"hosts": [ | |
"infra1_nova_api_metadata_container-38392a2e" | |
] | |
}, | |
"nova_api_os_compute": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_api_os_compute_container-93adfbec" | |
] | |
}, | |
"nova_api_os_compute_container": { | |
"hosts": [ | |
"infra1_nova_api_os_compute_container-93adfbec" | |
] | |
}, | |
"nova_cert": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_cert_container-c5c9e0f7" | |
] | |
}, | |
"nova_cert_container": { | |
"hosts": [ | |
"infra1_nova_cert_container-c5c9e0f7" | |
] | |
}, | |
"nova_compute": { | |
"children": [], | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"nova_compute_container": { | |
"hosts": [] | |
}, | |
"nova_conductor": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_conductor_container-e9a90c93" | |
] | |
}, | |
"nova_conductor_container": { | |
"hosts": [ | |
"infra1_nova_conductor_container-e9a90c93" | |
] | |
}, | |
"nova_scheduler": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_scheduler_container-87a9dd18" | |
] | |
}, | |
"nova_scheduler_container": { | |
"hosts": [ | |
"infra1_nova_scheduler_container-87a9dd18" | |
] | |
}, | |
"nova_spice_console": { | |
"children": [], | |
"hosts": [ | |
"infra1_nova_spice_console_container-c6fc0395" | |
] | |
}, | |
"nova_spice_console_container": { | |
"hosts": [ | |
"infra1_nova_spice_console_container-c6fc0395" | |
] | |
}, | |
"os-infra_all": { | |
"hosts": [ | |
"infra1_nova_scheduler_container-87a9dd18", | |
"infra1_horizon_container-3925ca44", | |
"infra1_nova_cert_container-c5c9e0f7", | |
"infra1_nova_api_ec2_container-2c537e4f", | |
"infra1_nova_conductor_container-e9a90c93", | |
"infra1_nova_spice_console_container-c6fc0395", | |
"infra1_glance_container-96f49a2f", | |
"infra1", | |
"infra1_nova_api_os_compute_container-93adfbec", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1_heat_engine_container-a35147a6", | |
"infra1_nova_api_metadata_container-38392a2e", | |
"infra1_heat_apis_container-7c70ee2b" | |
] | |
}, | |
"os-infra_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"os-infra_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"pkg_repo": { | |
"children": [], | |
"hosts": [ | |
"infra1_repo_container-65cdb6af", | |
"infra1_repo_container-3137578f", | |
"infra1_repo_container-5e457e0d" | |
] | |
}, | |
"rabbitmq": { | |
"children": [], | |
"hosts": [ | |
"infra1_rabbitmq_container-92d1cf1c", | |
"infra1_rabbitmq_container-351f1c10", | |
"infra1_rabbitmq_container-dd99f673" | |
] | |
}, | |
"rabbitmq_all": { | |
"children": [ | |
"rabbitmq" | |
], | |
"hosts": [] | |
}, | |
"rabbitmq_container": { | |
"hosts": [ | |
"infra1_rabbitmq_container-351f1c10", | |
"infra1_rabbitmq_container-92d1cf1c", | |
"infra1_rabbitmq_container-dd99f673" | |
] | |
}, | |
"repo-infra_all": { | |
"hosts": [ | |
"infra1_repo_container-65cdb6af", | |
"infra1_repo_container-3137578f", | |
"infra1_repo_container-5e457e0d", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1" | |
] | |
}, | |
"repo-infra_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"repo-infra_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"repo_all": { | |
"children": [ | |
"pkg_repo" | |
], | |
"hosts": [] | |
}, | |
"repo_container": { | |
"hosts": [ | |
"infra1_repo_container-5e457e0d", | |
"infra1_repo_container-3137578f", | |
"infra1_repo_container-65cdb6af" | |
] | |
}, | |
"rsyslog": { | |
"children": [], | |
"hosts": [ | |
"infra1_rsyslog_container-8ab040c5" | |
] | |
}, | |
"rsyslog_all": { | |
"children": [ | |
"rsyslog" | |
], | |
"hosts": [] | |
}, | |
"rsyslog_container": { | |
"hosts": [ | |
"infra1_rsyslog_container-8ab040c5" | |
] | |
}, | |
"shared-infra_all": { | |
"hosts": [ | |
"infra1_utility_container-cc57b53b", | |
"infra1_rabbitmq_container-92d1cf1c", | |
"infra1_rabbitmq_container-351f1c10", | |
"infra1_rabbitmq_container-dd99f673", | |
"infra1_galera_container-94250a0e", | |
"infra1_galera_container-01d84ce7", | |
"infra1_galera_container-a5758b43", | |
"infra1_rsyslog_container-8ab040c5", | |
"infra1", | |
"infra1_memcached_container-b7894bec" | |
] | |
}, | |
"shared-infra_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"shared-infra_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"storage-infra_all": { | |
"hosts": [ | |
"infra1_cinder_api_container-5e70f6a3", | |
"infra1" | |
] | |
}, | |
"storage-infra_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"storage-infra_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"storage_all": { | |
"hosts": [ | |
"infra1", | |
"infra1_rsyslog_container-8ab040c5" | |
] | |
}, | |
"storage_containers": { | |
"children": [ | |
"infra1_containers" | |
], | |
"hosts": [] | |
}, | |
"storage_hosts": { | |
"hosts": [ | |
"infra1" | |
] | |
}, | |
"swift-proxy_containers": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift-proxy_hosts": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_acc": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_acc_container": { | |
"hosts": [] | |
}, | |
"swift_all": { | |
"children": [ | |
"swift_cont", | |
"swift_proxy", | |
"swift_obj", | |
"swift_acc" | |
], | |
"hosts": [] | |
}, | |
"swift_cont": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_cont_container": { | |
"hosts": [] | |
}, | |
"swift_containers": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_hosts": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_obj": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_obj_container": { | |
"hosts": [] | |
}, | |
"swift_proxy": { | |
"children": [], | |
"hosts": [] | |
}, | |
"swift_proxy_container": { | |
"hosts": [] | |
}, | |
"utility": { | |
"children": [], | |
"hosts": [ | |
"infra1_utility_container-cc57b53b" | |
] | |
}, | |
"utility_all": { | |
"children": [ | |
"utility" | |
], | |
"hosts": [] | |
}, | |
"utility_container": { | |
"hosts": [ | |
"infra1_utility_container-cc57b53b" | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment