【问题标题】:I am getting an error when I am trying to runn ansible playbook that creates a ec2 security group当我尝试运行创建 ec2 安全组的 ansible playbook 时出现错误
【发布时间】:2020-02-16 12:58:36
【问题描述】:
---
- hosts: localhost
  connection: local
  gather_facts: false
  tasks:
    - name: Create a security group
      ec2_group:
        - name: Ansible
          description: Ansible security group
          region: us-east-1
          rules:
            - proto: tcp
              from_port: 80
              to_port: 80
              cidr_ip: 0.0.0.0/0

            - proto: tcp
              from_port: 22
              to_port: 22
              cidr_ip: 0.0.0.0/0

当我运行此剧本时,我收到以下错误

[root]#ansible-playbook aws1.yaml 错误!意外的参数类型在起作用:

错误似乎在“/root/Desktop/ansible_pro/aws/1/aws1.yaml”中:第 6 行第 7 列,但可能 根据确切的语法问题,位于文件中的其他位置。

违规行似乎是:

tasks:
    - name: Create a security group
      ^ here 

我是 aws 和 ansible 的新手。请帮忙

【问题讨论】:

  • 您的剧本无效。修理它。 ec2_group 因为任何其他模块都期望 dict 键作为参数,而不是列表。至少,您可以查看模块文档中的示例。

标签: amazon-ec2 ansible


【解决方案1】:

@Zellounator 是正确的。

首先您应该使用以下命令检查您的剧本语法:

  #ansible-playbook aws1.yaml --syntax-check

然后您可以对同一剧本进行试运行: #ansible-playbook aws1.yaml --check

修正后的代码如下所示:

---
 - hosts: localhost
   connection: local
   gather_facts: false
   tasks:
 - name: Create a security group
   ec2_group:
      name: Ansible
      description: Ansible security group
      region: us-east-1
      rules:
        - proto: tcp
          from_port: 80
          to_port: 80
          cidr_ip: 0.0.0.0/0

        - proto: tcp
          from_port: 22
          to_port: 22
          cidr_ip: 0.0.0.0/0

以及下面的另一个示例,您可以一次允许多个端口。

---
- hosts: localhost
  connection: local
  gather_facts: false

  tasks:

  - name: Create a security group
    ec2_group:
     name: Ansible
     description: Ansible security group
     region: us-east-1
     rules:
      - proto: tcp
        ports:
        - 22
        - 80
        cidr_ip: 0.0.0.0/0

确保您已配置 IAM 角色或密钥、可附加到 ec2 并能够创建安全组的访问密钥。

您可以通过以下链接浏览示例: https://docs.ansible.com/ansible/latest/modules/ec2_group_module.html & 它总是建议通过 ansible playbook 的示例。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多