无法使用ansible模块创建aws kinesis流......!

时间:2016-07-31 12:38:11

标签: yaml ansible boto amazon-kinesis

我正在尝试使用ansible创建aws kinesis流,我从here获得了一些示例模块片段

我的修改后的片段kinesis.yml可以在特定区域创建kinesis流:

- hosts: localhost
  connection: local
  gather_facts: no
  vars:
 #aws region to create kinesis
     region: ap-south-1
  tasks:
    - name: Set up Kinesis Stream with 2 shards and wait for the stream to become ACTIVE
      kinesis_stream:
              name: test-stream
              shards: 2
              wait: yes
              wait_timeout: 600
              region: "{{ region }}"
      register: test_stream

我认为我可以通过我们定义kinesis模块的方式搞砸了,我得到了以下错误:

centos]# ansible-playbook  -vvvv kinesis.yml
    No config file found; using defaults
    ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

    The error appears to have been in '/home/centos/kinesis.yml': line 4, column 7, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

      tasks:
        - name: Set up Kinesis Stream with 2 shards and wait for the stream to become ACTIVE
          ^ here

我已经使用boto配置了我的aws控制台访问键。 请让我知道是否有正确的方法来定义ansible playbook以在特定的aws区域创建一个kinesis。?

2 个答案:

答案 0 :(得分:1)

kinesis_stream处于尚未包含的拉取请求中。这意味着它不是Ansible的一部分。在Ansible中实际发货的模块或修订通常需要很长时间(它们相当不友好)。

要使用该模块,您需要将其放在本地library/文件夹中。

答案 1 :(得分:-1)

最后,我通过使用带有ansible的aws cli来实现。在更多地探索ansible时,它还支持命令行选项。因此,我们可以传递与ansible一起使用的aws cli命令。

以下是我的示例模块代码段:

---
- hosts: localhost
  connection: local
  gather_facts: no
  vars:
    streamName: test-stream
    shardCount: 2
  tasks:
    - name: Create Kinesis Sream
      command: aws kinesis create-stream --stream-name {{streamName}} --shard-count {{shardCount}}
      register: kinesis

使用此AWS CLI方法,我们可以快速向Ansible playbook添加更多AWS功能/服务。