Re: [ansible-project] Parsing csv file and running shell command

2023-04-14 Thread alonso...@gmail.com

Thank you every much, that worked, although I am not certain why echo with 
shell module wouldnt work , but thank you!
On Friday, 14 April 2023 at 02:24:25 UTC-4 Vladimir Botka wrote:

> On Thu, 13 Apr 2023 21:14:42 -0700 (PDT)
> "alonso...@gmail.com"  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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/de345992-1a92-4648-b2e4-4bd4dfe10f66n%40googlegroups.com.


Re: [ansible-project] Parsing csv file and running shell command

2023-04-14 Thread Vladimir Botka
On Thu, 13 Apr 2023 21:14:42 -0700 (PDT)
"alonso...@gmail.com"  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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/20230414082342.214a2322%40gmail.com.


pgpTXEzalt13Q.pgp
Description: OpenPGP digital signature


[ansible-project] Parsing csv file and running shell command

2023-04-13 Thread alonso...@gmail.com
Hello All,

I am trying to use ansible to read values from a csv file (source and 
destination) and then run commands using the shell module, but I am having 
no success. Please assist .

The playbook:
---
  - 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/'})

PLAY RECAP 
*
localhost  : ok=3changed=1unreachable=0failed=0 
   skipped=0rescued=0ignored=0   


I would like to run the aws command, but it doesnt seem to work 

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/7065cec3-756f-4fe0-934c-a9046348c5f2n%40googlegroups.com.