当前位置: 首页 > 知识库问答 >
问题:

带有角色的Ansible playbook语法错误

燕靖
2023-03-14

下面是我的playbook目录结构。

/home/ansible/playbooks/
├── first.yml --> simple playbook with no roles works fine.
├── playbook.yml  --> main playbook with roles
└── roles
    └── webservers
        ├── default
        │   └── main.yml
        ├── handler
        │   └── main.yml
        ├── tasks
        │   └── main.yml
        └── vars
            └── main.yml
--- #playbook with roles

- hosts: webserver
  user: ansible
  become: yes
  become_method: sudo
  connection: ssh
  gather_facts: yes
  roles:
    - webservers
- name: Install httpd on redhat
  yum:
    - pkg: httpd
      state: latest
  notify: installed_httpd
  when: ansible_os_family == 'RedHat'

- name: Install apache2 on debian
  apt:
    - pkg: apache2
      state: latest
  notify: installed_apache
  when: ansible_os_family == 'Debian'
- name: installed_httpd
  service:
  - name: httpd
    state: restarted

- name: installed_apache
  service:
  - name: apache2
    state: restarted
ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>

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

The offending line appears to be:


- name: Install httpd on redhat
  ^ here

Ansible版本:2.7.2 python2版本:2.7.5 python3版本:3.7.1

共有1个答案

宁浩博
2023-03-14

模块属性的声明中存在语法错误。而不是

- name: Install httpd on redhat
  yum:
    - pkg: httpd

正确的语法是

- name: Install httpd on redhat
  yum:
    pkg: httpd
 类似资料:
  • 问题内容: 我的“其他”有两个错误,我不知道该怎么办。他们被标记为评论!!导入了“ Punto”和“ Cuadrante”。还有一个枚举。 问题答案: 您可以使用if and else if实现您想要的 如果有的话,您可以拥有更多。 您当前的代码缺少一些右括号,这会导致您所拥有的错误,并且可以通过以下方式修复: 另一种/更好的方法是:

  • 这是我到目前为止的MySQL代码: 在命令行上在MySQL中运行此代码会给我这个错误: 错误1064 (42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第7行的“(TypeID))”附近使用正确的语法 我尝试过创建不同的测试表,省略了NULL/NOT NULL,但似乎什么都不起作用。任何帮助都将非常感谢!

  • 我对Angular project和TypeScript的语法有一个问题,我做了一个新的空Angular project,但PhpStorm(2019.2.1)不识别TypeScript语法。

  • 语义角色 举个栗子:“我昨天吃了一块肉”,按照常规理解“我吃肉”应该是句子的核心,但是对于机器来说“我吃肉”实际上已经丢失了非常多的重要信息,没有了时间,没有了数量。为了让机器记录并提取出这些重要信息,句子的核心并不是“我吃肉”,而是以谓词“吃”为核心的全部信息。 “吃”是谓词,“我”是施事者,“肉”是受事者,“昨天”是事情发生的时间,“一块”是数量。语义角色标注就是要分析出这一些角色信息,从而可

  • 如果我在控制台中使用Kendra中的搜索功能,就会返回有效数据,并且一切正常工作。 现在转到我们的网站:使用带有认知标识池的Java SDK对Kendra进行调用,我们收到以下错误: 误差 我检查了SCP的。没有SCP禁止使用Kendra。 我也看过信任关系,看起来也很好: {“版本”:“2012-10-17”,“语句”:[{“效果”:“允许”,“主体”:{“联邦”:“cognito-identi

  • 我使用带有嵌入式Tomcat和Spring Boot Starter安全性的Spring Boot 1.2.1。此外,我对一些Web服务使用RestController,我希望只有具有特定角色的特定用户才能访问这些Web服务。但是它不起作用,安全性不使用RoleVoter来检查角色。在下面的示例中,用户“user”可以访问Web服务,尽管他没有正确的角色! 首先我的应用程序配置 现在是我的安全配置