the offending line appears to be errors on ansible roles

ansible errors:the offending line appears to be error。使用 roles 方式可以自动加载指定目录树中的vars, files, tasks, 和 handlers。在实际中执行playbook有上述错误出现,开始以为是缩进的问题,后来发现指定目录中的main.yml中会把目录的名字自动认为对应的key:value中的key,yml中应该去掉该key值!

按照ansible文档说明,使用roles时,需要创建对应的目录和默认的yml文件:main.yml:

目录结构:
site.yml
webservers.yml
fooservers.yml
roles/
   common/
     files/
     templates/
     tasks/
     handlers/
     vars/
     defaults/
     meta/
   webservers/
     files/
     templates/
     tasks/
     handlers/
     vars/
     defaults/
     meta/

创建目录:
mkdir -p webservers/{files,templates,tasks,handlers,vars,defaults,meta}

执行ansible-playbook命令后有The offending line appears to be的报错,具体如下:

$ ansible-playbook rolestest.yml
ERROR! The tasks/main.yml file for role 'webservers' must contain a list of tasks

The error appears to have been in '/opt/sudops.com/ansible/playbook/roles/webservers/tasks/main.yml': line 1, column 1, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

tasks:
^ here

具体修改:

$ vim /opt/sudops.com/ansible/playbook/roles/webservers/tasks/main.yml
tasks:
  - name: ensure apache is at the latest version
    yum:
      name: httpd
      state: latest
  - name: write the apache config file
    template:
      src: /opt/sudops.com/ansible/playbook/src/httpd.j2
      dest: /etc/httpd/conf/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running
    service:
      name: httpd
      state: started

$ vim /opt/sudops.com/ansible/playbook/roles/webservers/handlers/main.yml
handlers:
  - name: restart apache
    service:
      name: httpd
      state: restarted

$ cat /etc/ansible/hosts
[webservers]
172.30.0.70

$ cat rolestest.yml
---
- hosts: webservers
  remote_user: root
  roles:
    - webservers

修改后的执行结果:
$ ansible-playbook rolestest.yml

ansible-playbook-roles
ansible-playbook-roles

u2

Related Posts

python cx-Oracle 驱动安装

安装oracle驱动 cx-Oracle驱动二进制版本下载地…

sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached

Python3 + Flask + mysql5.7搭建的w…

You Missed

从”养虾”到AI Agent爆发:2026年技术圈的新范式转移

  • u2
  • 3月 9, 2026
  • 11 views

提示词注入:AI时代最危险的漏洞,正在吞噬你的数据

  • u2
  • 3月 7, 2026
  • 44 views
提示词注入:AI时代最危险的漏洞,正在吞噬你的数据

潘多拉魔盒已打开:开源AI攻击平台正在血洗全球防火墙

  • u2
  • 3月 4, 2026
  • 69 views
潘多拉魔盒已打开:开源AI攻击平台正在血洗全球防火墙

雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

  • u2
  • 3月 1, 2026
  • 66 views
雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

  • u2
  • 2月 25, 2026
  • 192 views
OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

Anthropic 推出 Claude Code Security:AI 驱动的代码安全神器

  • u2
  • 2月 24, 2026
  • 107 views