変数名をタスクに使用する変数として渡すことでこれを実行できました。私はmain.yamlと以下のcgw.yamlファイルをインクルードしました。
main.yaml:
- name: Create App A CGW
include: cgw.yaml
vars:
bgp_asn: "{{ asn_spoke }}"
ip_address: "{{ eip_app_a.public_ip }}"
name: cgw-app-a
region: "{{ aws_region }}"
aws_access_key: "{{ ec2_access_key }}"
aws_secret_key: "{{ ec2_secret_key }}"
register: cgw_app_a
cgw.yaml:
- name: "{{ name }}"
ec2_customer_gateway:
bgp_asn: "{{ bgp_asn }}"
ip_address: "{{ ip_address }}"
name: "{{ name }}"
region: "{{ region }}"
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
register: "{{ register }}"
あなたはシンプルで不透明なボックス(関数)のように脚本を扱う場合は、明確に定義された必要がありますインタフェース。なぜプレイブックはスコープ変数と戻り値を持つべきではないのですか? –
可能性のあるプレイブックは、Java用のビルド言語であるAntなどの他のドメイン固有言語(DSL)で見られたいくつかの問題を抱えています。そのような言語は主に宣言的であるが、不完全な機能的または命令的な振る舞いもある。可能なプレイブックは、必然的なギャップを段階的に埋めるようになっていますが、このケースが示すように、まだ埋めるための穴があります。別のアプローチは、DSLの設計を既存のプログラミング言語に基づいて行いますが、より狭い構文に従うか、特定の機能のみを提供することです。 (YAMLとXMLはプログラミング言語ではありません) –
プレイブックには1つのタスクしかないのにこれはまだできませんか?そのタスクの結果を登録して元のプレイブックに戻すことができますか? – user3270760