Problem running Varibles in loop

20 views
Skip to first unread message

דודו דודו

unread,
May 3, 2020, 8:03:53 AM5/3/20
to Ansible Project
Hi , 

I'm trying to create folders in loop under HDFS file system - From some reason, I can not run it in loop 

The playbook needs to run 2 commands
1. hadoop fs -mkdir folder1
2. hadoop fs -mkdir folder2


Try #1 - 

- hosts: gw
become: true
become_user: hdfs
vars:
folders:
- /folder1
- /folder2

tasks:

   - name: create Main HDFS folders
shell: hadoop fs -mkdir {{ folders }}
with_items: folders



TASK [create Main HDFS folders] ************************************************************************************************************************************************************
failed: [10.201.51.16] (item=folders) => {"ansible_loop_var": "item", "changed": true, "cmd": "hadoop fs -mkdir [u'/folder1', u'/folder2']", "delta": "0:00:03.686279", "end": "2020-05-03 11:59:31.393324", "item": "folders", "msg": "non-zero return code", "rc": 1, "start": "2020-05-03 11:59:27.707045", "stderr": "mkdir: Illegal file pattern: error parsing regexp: Unclosed character class at pos 2: `[u`\nmkdir: `u/folder2]': No such file or directory", "stderr_lines": ["mkdir: Illegal file pattern: error parsing regexp: Unclosed character class at pos 2: `[u`", "mkdir: `u/folder2]': No such file or directory"], "stdout": "", "stdout_lines": []}



Try #2



- hosts: gw
become: true
become_user: hdfs
vars:
folders:
- /folder1
- /folder2

tasks:

     - name: create Main HDFS folders
shell: hadoop fs -mkdir {{ item.folders }}
with_items: folders






*
fatal: [10.201.51.16]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'folders'\n\nThe error appears to be in '/data/ansible/hdfs/hdfs.yml': line 41, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n#\n   - name: create Main HDFS folders\n     ^ here\n"}











Stefan Hornburg (Racke)

unread,
May 3, 2020, 8:36:46 AM5/3/20
to ansible...@googlegroups.com
On 5/3/20 2:03 PM, דודו דודו wrote:
> Hi , 
>
> I'm trying to create folders in loop under HDFS file system - From some reason, I can not run it in loop 
>
> The playbook needs to run 2 commands
> 1. hadoop fs -mkdir folder1
> 2. hadoop fs -mkdir folder2
>
>
> *Try #1 - *
>
> - hosts: gw
> become: true
> become_user: hdfs
> vars:
> folders:
> - /folder1
> - /folder2
>
> tasks:
>
>
> - name: create Main HDFS folders
> shell: hadoop fs -mkdir {{ folders }}
> with_items: folders
>

I would say you could derive it from the docs, but this should work:

- name: create Main HDFS folders
shell: "hadoop fs -mkdir {{ item }}"
with_items: "{{ folders }}"

Regards
Racke

>
>
>
> TASK [create Main HDFS folders]
> ************************************************************************************************************************************************************
> failed: [10.201.51.16] (item=folders) => {"ansible_loop_var": "item", "changed": true, "cmd": "hadoop fs -mkdir
> [u'/folder1', u'/folder2']", "delta": "0:00:03.686279", "end": "2020-05-03 11:59:31.393324", "item": "folders", "msg":
> "non-zero return code", "rc": 1, "start": "2020-05-03 11:59:27.707045", "stderr": "mkdir: Illegal file pattern: error
> parsing regexp: Unclosed character class at pos 2: `[u`\nmkdir: `u/folder2]': No such file or directory",
> "stderr_lines": ["mkdir: Illegal file pattern: error parsing regexp: Unclosed character class at pos 2: `[u`", "mkdir:
> `u/folder2]': No such file or directory"], "stdout": "", "stdout_lines": []}
>
>
>
> *Try #2*
>
>
>
> - hosts: gw
> become: true
> become_user: hdfs
> vars:
> folders:
> - /folder1
> - /folder2
>
> tasks:
>
>
> - name: create Main HDFS folders
> shell: hadoop fs -mkdir {{ item.folders }}
> with_items: folders
>
>
>
>
>
>
>
> *
> fatal: [10.201.51.16]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was:
> 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'folders'\n\nThe error appears to be in
> '/data/ansible/hdfs/hdfs.yml': line 41, column 6, but may\nbe elsewhere in the file depending on the exact syntax
> problem.\n\nThe offending line appears to be:\n\n#\n   - name: create Main HDFS folders\n     ^ here\n"}
>
>
>
>
>
>
>
>
>
>
>
> --
> 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-proje...@googlegroups.com <mailto:ansible-proje...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/b1ca7ec1-1010-4ccb-bd6a-af80f5ecd8c4%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/b1ca7ec1-1010-4ccb-bd6a-af80f5ecd8c4%40googlegroups.com?utm_medium=email&utm_source=footer>.


--
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

signature.asc
Reply all
Reply to author
Forward
0 new messages