ansible - 该任务包括一个带有未定义变量的选项。错误是:“项目”未定义
问题描述
当我运行以下剧本时,我遇到了错误。
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'item' is undefined\n\nThe error appears to have been in '/home/thor/user.yml': line 8, column 9, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: create users\n ^ here\n"}
---
- name: create user
hosts: localhost
become: true
become_user: root
become_method: sudo
tasks:
- name: create users
user:
name: "{{ item.name }}"
state: present
- debug:
var: "{{ item.message }}"
with_items:
- { name: amit, message: amit_done }
- { name: ankit, message: ankit_done }
这在我评论调试模块时有效。
解决方案
不可能完成loop
一项以上的任务。label
如果您愿意,请将消息放入。例如
tasks:
- name: create users
user:
name: "{{ item.name }}"
state: present
loop:
- {name: amit, message: amit_done}
- {name: ankit, message: ankit_done}
loop_control:
label: "{{ item.message }}"
或者,如果您确实需要在 中执行更多任务loop
,则可以include_tasks
在loop
. 例如,创建一个包含所有任务的文件
shell> cat create_users.yml
- name: create users
user:
name: "{{ item }}"
- debug:
msg: "{{ item }} done"
并将其包含在loop
tasks:
- include_tasks: create_users.yml
loop:
- amit
- ankit
推荐阅读
- css - 有没有办法淡化 CSS ":active" 样式,或者使用动画?
- sdl-2 - SDL_WINDOW_FULLSCREEN 和 SDL_WINDOW_FULLSCREEN_DESKTOP 有什么区别?
- javascript - 刷新页面并插入新值后,本地存储值被重置
- bash - 离线重启路由器
- vba - excel另存为来自多个单元格的数据-最后一个单元格上的-2个字
- mysql - 来自多个表的 MySQL 最喜欢的项目
- python - 如何获取数据并将其放入编辑表单 Django
- forms - React 状态在表单提交时不断重置。如何持久化状态?
- batch-file - 如果批处理脚本无法写入输出文件,如何忽略错误
- r - 使用 ALTER TABLE 和 UPDATE 在数据库中创建变量