Ansible YAML语法错误求助:映射值不允许在此上下文使用
问题分析与修正
你的Ansible YAML剧本存在多处语法结构错误,导致加载时触发语法报错,具体问题如下:
- Play结构缺失关键字段:Ansible Playbook中,每个Play(即
- name: ...开头的块)下,任务列表必须放在tasks:字段下,你直接把任务缩进在hosts: all下方,结构完全错误。 - Copy模块参数缩进错误:
copy:作为模块调用,其下属的src、dest等参数必须缩进一层,作为copy的子属性,你当前的写法把这些参数和copy平级了,不符合YAML映射结构。 - When语句语法混乱:
when: lab_enabled == true后面多余了lab_redis_data_volume:,这属于无意义的语法残留,直接破坏了YAML的映射结构。
修正后的正确YAML代码:
- name: Copy the db_config file hosts: all tasks: - name: Copy db_config to target path become: yes copy: src: db_config.ini dest: /home/labdb/stream/config.ini owner: lab1 group: lab1 when: lab_enabled == true
额外提示:YAML对缩进要求严格,必须使用空格(禁止用制表符),且层级缩进需保持一致(通常用2或4个空格)。后续编写时可通过ansible-playbook --syntax-check your_playbook.yml命令快速排查语法问题。
内容的提问来源于stack exchange,提问作者E S
相关产品推荐
相关产品推荐

