我正在尝试使用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。?
答案 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功能/服务。