2017-11-06 12 views
0

私の脚本は、(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.ymlvault.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

答えて

1

コードがOKでは、エラーは2.3.0.0で容易に再現可能です。

解決策:古くなったバージョンを使用しないでください。 2.3.xを実際に使用する必要がある場合は、Ansible 2.3.2を使用してください。

+0

アップグレードできません。vars_filesを使用します。お疲れ様でした。 – moodylearner

関連する問題