Я планировал создать службу, которая спит/пробуждает неиспользуемые вычислительные узлы в среде openstack, для чего мне нужен IP-адрес вычислительных узлов. Есть ли какой-либо API или команда для получения IP-адреса (не имени вычислительного узла) машин, присутствующих в сети openstack?
Получить IP-адрес вычислительных узлов в сети openstack
Ответы (2)
Существует два типа IP-адресов, используемых при настройке облачной среды OpenStack.
Исправлена:
Доступ только из сети openstack, то есть среди виртуальных машин.
Плавающий:
К нему можно получить доступ из-за пределов облачной сети OpenStack, в основном он работает на другом интерфейсе, и, как правило, этот IP-адрес общедоступен для доступа к этой виртуальной машине из внешней сети.
Теперь вы это знаете, следуйте приведенному здесь API. http://api.openstack.org/api-ref.html#ext-os-ext-ips
При получении IP-адреса через ответ JSON сначала вы должны проверить, является ли он фиксированным или плавающим.
Это должно ответить на ваш вопрос, я надеюсь. Если нет то пожалуйста сообщите.
Вы можете запросить базу данных nova и получить IP-адрес всех вычислительных узлов в таблицах calculate_node. Я написал небольшую функцию на питоне, чтобы сделать это для одного из моих тестов.
def get_compute_nodes(parameters):
try:
password = parameters['password']
db=_mysql.connect(user="root",passwd=password, db="nova")
query = """select host_ip from compute_nodes where deleted=0"""
db.query(query)
r=db.use_result()
results = r.fetch_row(maxrows=0)
return results
except Exception as exp:
print "Error in accessing the Nova database"
print exp