python - 一次为多个设备的主机名更改创建ansible playbook
问题描述
我是 ansible 和脚本的新手。我正在尝试用 ansible 自动化一些过程。
我正在尝试为多个设备的主机名更改创建一个剧本。我研究得很少,想出了这个
hosts : SWITCH
gather_facts: no
connection: local
# vars_files:
# /ansible/hosts.yml
tasks:
hostname:
- name: "{{item.name}}"
when: "{{ansible_host==item.host}}"
- with_items: "{{hostinfo}}"
hostinfo:
host: FII-S-EDMHQ-003
name: CA-S-EDMHQ-003
host: FII-S-EDMHQ-004
name: CA-S-EDMHQ-004
我收到错误:
root@FIN68483:/etc/ansible/playbooks# ansible-playbook hostname.yml
ERROR! A malformed block was encountered while loading tasks: {u'hostname': [{u'when': u'{{ansible_host==item.host}}', u'name': u'{{item.name}}'}, {u'hostinfo': {u'host': u'FII-S-EDMHQ-003, FII-S-EDMHQ-004', u'name': u'CA-S-EDMHQ-003, CA-S-EDMHQ-004'}, u'with_items': u'{{hostinfo}}'}]} should be a list or None but is <class 'ansible.parsing.yaml.objects.AnsibleMapping'>
该错误似乎在“/etc/ansible/playbooks/hostname.yml”中:第 3 行,第 4 列,但可能在文件中的其他位置,具体取决于确切的语法问题。
违规行似乎是:
hosts : SWITCH
任何人都可以请帮助是什么错误。我可能能够修复以下部分,但我正在寻找一些帮助
ERROR! A malformed block was encountered while loading tasks: {u'hostname': [{u'when': u'{{ansible_host==item.host}}', u'name': u'{{item.name}}'}, {u'hostinfo': {u'host': u'FII-S-EDMHQ-003, FII-S-EDMHQ-004', u'name': u'CA-S-EDMHQ-003, CA-S-EDMHQ-004'}, u'with_items': u'{{hostinfo}}'}]} should be a list or None but is <class 'ansible.parsing.yaml.objects.AnsibleMapping'>
谢谢
解决方案
推荐阅读
- java - ClassNotFoundException 即使我不使用那个类
- session - Gigya - 如何在用户会话结束之前延长它?
- sockets - 在 Haskell 中写入控制台和句柄不会一起使用
- javascript - 连接数组数组(?)或循环它们?
- winapi - 如果终点缓冲区没有及时填满,IAudioClock::GetPosition() 会发生什么?
- node.js - AWS:无法使用流从 SSE-KMS 加密存储桶下载文件
- python - 在忽略列表的同时将 JSON 数据转换为 Python 对象
- php - 从 URL 检索 JSON 对象
- spring-cloud-dataflow - HTTP代理背后的Spring Cloud Data Flow服务器
- android-studio - 在Android Studio中滚动时如何始终显示线性布局的第一行?