かべぎわブログ

技術的なことについてかけたらいいな…

AnsibleでS3からファイルをダウンロードする3つの方法

AnsibleでS3からファイルをダウンロードする方法を紹介します!

① s3_getを利用する

AnsibleのCloudModuleであるs3_getを利用する方法です。

前提条件

  • ターゲットノードにS3へのアクセス許可が必要

実行コマンド

$ ansible-playbook -i ansible_hosts s3_get.yml

ansible_hosts

[test_server]
172.140.1.1

s3_get.yml

- name: s3_get
  hosts: test_server
  tasks:
   - aws_s3:
       bucket: kabegiwa-bucket
       object: /test.txt
       dest: /home/ec2-user/test.txt
       mode: get

② get_urlを利用する

S3バケットに静的Webサイトホスティングの設定またはオブジェクトごとにPublicアクセスの許可設定を実施し、ダウンロードを行う方法です。

前提条件

  • S3上のファイルは静的WebホスティングまたはPublicアクセスの許可が必要

    実行コマンド

$ ansible-playbook -i ansible_hosts geturl.yml

ansible_hosts

[test_server]
172.140.1.1

geturl.yml

- name: get_url_test
  hosts: test_server
  tasks:
    - get_url: url=https://s3-ap-northeast-1.amazonaws.com/kabegiwa-bucket/test.txt dest=/home/ec2-user/

③ AWSCLIを利用する方法

単純にAnsibleのcommandを利用してAWSCLIを実行させます。

前提条件

  • ターゲットノードにS3へのアクセス許可がなければならない
  • ターゲットノードにAWSCLIがインストールされていなければならない

    実行コマンド

$ ansible-playbook -i ansible_hosts awscli.yml

ansible_hosts

[linux]
172.22.69.51

awscli.yml

- name: awscli_test
  hosts: test_server
  tasks:
    - command: 'aws s3 cp s3://kabegiwa-bucket/test.txt /home/ec2-user/test.txt'

入門Ansible

入門Ansible