y — это строка, у неё нет атрибута parts.
Но если вы имели в виду список parts, то можете.
Также в качестве альтернативного варианта можно создать сразу несколько переменных для каждого элемента списка parts, используя т.н. распаковку, переменная parts в таком случае не понадобится:
def get_next_hostname(hostname):
for vm in asl_vms:
hostname = vm['name']
service, x, name = hostname.split('-')
number = int(name.split('.')[0])
y = '{}-{}-{}.node.eu.consul'.format(service, x, number + 6)
return y, service
Но обратите внимание, что такой вариант распаковки
hostname.split('-')
вы можете использовать только в том случае, если уверенны, что в результате разбиения строки получается список именно из трёх элементов — не больше и не меньше.