On Thu, 13 Apr 2023 21:14:42 -0700 (PDT)
"[email protected]" <[email protected]> wrote:

> ---
>   - name: Read Users
>     gather_facts: True
>     hosts: localhost
> 
>     tasks:
>     - name: Read users
>       read_csv:
>         path: users.csv
>         delimiter: ","
>       register: s3list
> 
>     - name: Running command
>       command: 
> echo "aws s3 cp {{ s3.source }}" {{ s3.destination }} -- recursive 
> --acl-parameters ---profile prod'
>       loop: "{{ s3list.list }}"
>       loop_control:
>         loop_var: s3
> 
> the csv file contents:
> source,destination
> S3://mybucket/puppy/test.jpg,S3://mybucket2/trying/
> S3://mybucket/puppy/ds.jpg,S3://mybucket3/trying/
> S3://mybucket/puppy/as.jpg,S3://mybucket4/trying/
> S3://mybucket/puppy/was.jpg,S3://mybucket5/trying/
> S3://mybucket/puppy/qaes.jpg,S3://mybucket6/trying/
> 
> When I run the playbook I am getting the following
> TASK [Running command] 
> *********************************************************************************************************************
> changed: [localhost] => (item={'source': 'S3://mybucket/puppy/test.jpg', 
> 'destination': 'S3://mybucket2/trying/'})
> changed: [localhost] => (item={'source': 'S3://mybucket/puppy/ds.jpg', 
> 'destination': 'S3://mybucket3/trying/'})
> changed: [localhost] => (item={'source': 'S3://mybucket/puppy/as.jpg', 
> 'destination': 'S3://mybucket4/trying/'})
> changed: [localhost] => (item={'source': 'S3://mybucket/puppy/was.jpg', 
> 'destination': 'S3://mybucket5/trying/'})
> changed: [localhost] => (item={'source': 'S3://mybucket/puppy/qaes.jpg', 
> 'destination': 'S3://mybucket6/trying/'})

You're not running the *aws* command. You're testing the *aws* command
with *echo*. Actually, this is a good idea to see the commands before
you run them. Register the results and take a look at *stdout*.

In the module *command*, there is a couple of syntax problems
in the run-string. To make the syntax both simpler and easier to read
use the *folded style*. See
https://yaml.org/spec/1.2.2/#813-folded-style

The tasks below

    - command: >-
        echo
        aws s3 cp
        {{ item.source }}
        {{ item.destination }}
        --recursive --acl parameters --profile prod
      loop: "{{ s3list.list }}"
      register: out
    - debug:
        msg: "{{ out.results|map(attribute='stdout')|list }}"

should give you what you want

  msg:
  - aws s3 cp S3://mybucket/puppy/test.jpg S3://mybucket2/trying/
    --recursive --acl parameters --profile prod
  - aws s3 cp S3://mybucket/puppy/ds.jpg S3://mybucket3/trying/
    --recursive --acl parameters --profile prod
  - aws s3 cp S3://mybucket/puppy/as.jpg S3://mybucket4/trying/
    --recursive --acl parameters --profile prod
  - aws s3 cp S3://mybucket/puppy/was.jpg S3://mybucket5/trying/
    --recursive --acl parameters --profile prod
  - aws s3 cp S3://mybucket/puppy/qaes.jpg S3://mybucket6/trying/
    --recursive --acl parameters --profile prod

If this is what you want remove *echo* and run the *aws* command with
the option *--dryrun*

    - command: >-
        aws s3 cp
        {{ item.source }}
        {{ item.destination }}
        --dryrun --recursive --acl parameters --profile prod
      loop: "{{ s3list.list }}"
      register: out
    - debug:
        var: out

If everything is alright copy the files

    - command: >-
        aws s3 cp
        {{ item.source }}
        {{ item.destination }}
        --recursive --acl parameters --profile prod
      loop: "{{ s3list.list }}"
      register: out
    - debug:
        var: out

Notes:

* You can remove the option *--recursive* as long as you copy single
  files
* You'll have to replace *parameters* with actual values. See
  https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html


-- 
Vladimir Botka

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/20230414082342.214a2322%40gmail.com.

Attachment: pgpTXEzalt13Q.pgp
Description: OpenPGP digital signature

Reply via email to