2017-04-13 11 views
0

私の必要条件は、変数ファイルを私のAnsibleスクリプトに動的に含めることです。私は私のVARSディレクトリにdev.ymlを続ければ、私のansible task-S3から変数ファイルを引き出す方法

- name: Include vars file 
    include_vars: vars/dev.yml 

- name: Some other task 
    cp: copy something 

上記の動作中に、以下の置くことによってそれを行うことができます。今私は実際にディレクトリにdev.ymlを入れたくないので、私はS3からそれを抜き出し、その中で変数を使いたいと思っています。以下のようなもの -

- name: Get dev file 
    s3: 
    bucket: bucket_name 
    object: object_name 
    dest: "dest_directory" ## Here I want the destination to be vars/dev.yml 
    mode: get 
    aws_access_key: "{{ s3.aws_access_key }}" 
    aws_access_key: "{{ s3.aws_secret_key }}" 

- name: Include vars file 
    include_vars: vars/dev.yml 

- name: Some other task that uses vars in dev.yml 
    template: render some template using vars in dev.yml and copy to server 

上記は実際には機能しません。これはどうすればいいですか?

+0

なぜこれが機能しないのですか? dev.ymlは、管理対象ホストではなく、制御ホスト上でフェッチされるべきであることに留意してください。 –

+0

@ ConstantinSuvorov - わかりました、ありがとうございます。しかし、現在はまず 's3'モジュールを使用して管理対象ホスト上のファイルをダウンロードし、' fetch'モジュールを使用してそれを制御ホストにコピーし、それを使って変数をロードします。 s3からホストを制御するファイルを直接取得する方法はありますか? –

+0

は 'delegate_to'で試行されましたか? –

答えて

0

ありがとうございましたKonstantin Suvorovです。私はちょうど私の仕事にdelegate_toを加える必要があった。

- name: Get dev file 
    s3: 
    bucket: bucket_name 
    object: object_name 
    dest: vars/dev.yml 
    mode: get 
    aws_access_key: "{{ s3.aws_access_key }}" 
    aws_access_key: "{{ s3.aws_secret_key }}" 
    delegate_to: localhost 

- name: Include vars file 
    include_vars: vars/dev.yml 
関連する問題