Это напрямую связано со следующим вопросом ссылки и ответом от larsks, который я пробовал, но он не работает: "как пройти через инвентарь и присвоить значение в недоступном "
Я пытался сделать то же самое, и я попытался переименовать 2 виртуальные машины, управляемые Ansible, но при попытке запустить Playbook (ansible-playbook -i hosts test_iterate_win.yml -vvv
) я получаю такие же ошибки, как следующая, я бы сказал, что он буквально берет по имени '< strong> System.Object[]
'вместо, например, wCloud2:
failed: [oldVM2] (item=[u'oldVM2', u'wCloud2']) => {
"ansible_loop_var": "item",
"changed": false,
"item": [
"oldVM2",
"wCloud2"
],
"msg": "Failed to rename computer to 'System.Object[]': Skip computer 'oldVM2' with new name 'System.Object[]' because the new name is not valid. The new computer name entered is not properly formatted. Standard names may contain letters (a-z, A-Z), numbers (0-9), and hyphens (-), but no spaces or periods (.). The name may not consist entirely of digits, and may not be longer than 63 characters.",
"old_name": "oldVM2",
"reboot_required": false
}
В моем файле инвентаря:
[windows]
oldVM1 ansible_host=192.168.122.6
oldVM2 ansible_host=192.168.122.139
Моя книга:
---
- hosts: windows
gather_facts: false
vars:
hostnames:
- wCloud1
- wCloud2
tasks:
- name: change hostname
win_hostname:
name: "{{ item }}"
loop: "{{ groups.windows|zip(hostnames)|list }}"
Что я делаю не так?