ansible error: msg: 'Необработанное исключение произошло при создании шаблона' в regex_replace - PullRequest
0 голосов
/ 07 мая 2020

У меня есть эта задача, которая должна создать случайный файл загрузки каталога в случайный каталог, но я продолжаю получать ошибку в регулярном выражении:

---
- name: check if exsist
  hosts: localhost
  gather_facts: false
  tasks:
                - debug:
                        msg: "####################### This is start #######################"

                - name: Handle the error
                  block:
                        - name: ansible create directory with mode setting example
                          vars:
                            name_dir: "{{ 1000 | random | to_uuid  }}"
                          file:
                              path: "/home/ec2-user/backup/{{ name_dir }}/"
                              state: directory

                        - name: Download from s3
                          vars:
                             obj_name: "{{ 'http://www.foo.bbb/foo/xxxx.zip' | regex_replace('^(?:\/\/|[^\/]+)*\/', '') }}"
                             file_name: "{{ 'http://www.foo.bbb/foo/xxxx.zip' | regex_search('[^\/]+$', '') }}"
                          local_action:
                                module: aws_s3
                                bucket: pack
                                object: "{{ obj_name }}"
                                dest: "/home/ec2-user/backup/{{ name_dir }}/{{ file_name }}"
                                mode: get
                        - debug:
                                msg: "################################ {{ obj_name }}   {{ file_name }} ##################################  {{ name_dir }} #####"
                  rescue:
                        - debug:
                                msg: 'I caught an error, can do stuff here to fix it, :-)'

Вот ошибка:

TASK [Download from s3] *********************************************************************************************************************************************************************************************************************
task path: /home/ec2-user/backup/test7.yml:18
Thursday 07 May 2020  16:11:59 +0000 (0:00:00.297)       0:00:00.381 **********
fatal: [localhost]: FAILED! =>
  msg: 'An unhandled exception occurred while templating ''{{ ''http://www.foo.bbb/foo/xxxx.zip'' | regex_search(''[^/]+$'', '''') }}''. Error was a <class ''ansible.errors.AnsibleFilterError''>, original message: Unknown argument'

а вот проводная штука в том, что здесь он работает нормально:

---
- name: check if exsist
  hosts: localhost
  gather_facts: false
  tasks:
        - debug:
             var: "{{ '
                 obj_name: "{{ 'http://www.foo.bbb/foo/xxxx.zip' | regex_replace('^(?:\/\/|[^\/]+)*\/', '') }}"
...