私の脚本は、(test.yml
)は、以下のようなものです:環境変数はansible役割でボールトファイルで設定し得ていない
- hosts: localhost
connection: local
gather_facts: false
roles:
- env
environment:
AWS_ACCESS_KEY_ID: "{{ access }}"
tasks:
- debug:
msg: "Hello"
そして、私は次のエラーを取得:
TASK [env : Load VPC variables file] ******************************************************************************************************** fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'environment' has an invalid value, which appears to include a variable that is undefined. The error was: 'access' is undefined\n\nThe error appears to have been in '/var/yogesh/test/roles/env/tasks/main.yml': line 1, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Load VPC variables file\n^here\n"}
PLAY RECAP ********************************************************************************************************************************** localhost : ok=0 changed=0 unreachable=0
failed=1
私の役割(roles/env/tasks/main.yml
が)のようなものですが以下:
- name: Load VPC variables file
include_vars: "vault.yml"
このvault.yml
は次のようになります。
access: 1234
test.yml
とvault.yml
は同じディレクトリにあります。
ここでプレイリストtest.yml
を変更すると、何とか動作します。
- hosts: localhost
connection: local
gather_facts: false
vars_files:
- vault.yml
environment:
AWS_ACCESS_KEY_ID: "{{ access }}"
tasks:
- debug:
msg: "Hello"
なぜこのようなことが起こっているのかわかりません。誰かがこれに光を当てることができますか? vars_filesにのみVaultファイルを宣言する必要がありますか?より良い/ベストプラクティスの選択肢はありますか?
Ansibleバージョン:2.3.0.0
アップグレードできません。vars_filesを使用します。お疲れ様でした。 – moodylearner