我想在AWS中创建一个实例,然后在Windows Indows IIS上运行的应用程序中注册有关该实例的Ansible事实。我没有运气让win_uri模块通过winrm完成连接,而uri模块只想通过SSH连接。我想使用curl和注入了Ansible事实的shell /命令模块。这可能吗?
我如何格式化{{ansible_fact1-4}}变量以注入curl命令? 另外,我希望使用debug命令或类似命令从应用程序中看到STDOUT。
剧本看起来像这样。
感谢您对本手册第二部分的任何帮助。
--- # Playbook to create an ec2 instance and register facts into an application over https on Windows IIS
- hosts: localhost
vars_files:
- files/ec2_provision_vars.yml
tasks:
- name: aws ec2 ami creation
ec2:
key_name: "{{ key_name }}"
group_id: "{{ group_id }}"
instance_type: "{{ instance_type }}"
image: "{{ image }}"
instance_tags: "{{ instance_tags }}"
wait: true
region: "{{ region }}"
vpc_subnet_id: "{{ vpc_subnet_id }}"
instance_profile_name: "{{ instance_profile_name }}"
register: ec2
wait: yes
- name: register ansible facts in my app
shell:
curl --request POST \
--url 'https://myapp.org' \
--header 'Authorization: {{ session_token }}' \
--header 'Content-Type: application/json' \
--data '{
"main" : {
"var1":"{{ ansible_fact1 }}",
"var2":"{{ ansible_fact2 }}",
"var3":"{{ ansible_fact3 }}",
"var4":"{{ ansible_fact4 }}",
}
}'