Ansible playbook - распаковать в определенный (переименованный каталог - PullRequest
1 голос
/ 30 октября 2019

У меня есть ANSIBLE playbook, который извлекает архив tar

- name: Unarchive OAP Installation
    become: yes
    unarchive:
       src: "/opt/dist-{{ oap_version }}.tar"
       dest: /opt/
       remote_src: yes
    when: inventory_hostname == ip_address_mn

oap_version отличается, поэтому отличается имя извлеченной папки, формат извлеченной папки всегда oa-{{ oap_version }}-some_number

В зависимости от версии oap,число после - отличается, поэтому он разбивает следующий блок, входя в извлеченный каталог и устанавливая пакет.

- name: Run OAP Installation
    become: yes
    command: 'python install.py --modules="Platform,APS,Billing" --username admin --password pass --repo-base-url="http://download.com/oa/{{ oap_version }}/repo"'
    args:
       chdir: /opt/oa-{{ oap_version }}-3256/

Есть ли способ указать имя пользовательской папки назначения или узнать, какой номер можно узнать послеoap-version и сохранить его в переменной, или зарегистрировать пункт назначения и передать его в переменную?

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Нашел ответ в Как узнать, какой каталог был создан разархивирующим модулем ansible?

- name: Unarchive OAP Installation
    become: yes
    unarchive:
       src: "/opt/dist-{{ oap_version }}.tar"
       dest: /opt/
      remote_src: yes
       list_files: yes
    when: inventory_hostname == ip_address_mn
    register: archive_contents

и для входа в этот каталог:

- name: Run OAP Installation
    become: yes
    command: 'python install.py --modules="Platform,APS,Billing" --username admin --password password --repo-base-url="http://download.com/oa/{{ oap_version }}/repo"'
    args:
       chdir: "/opt/{{ archive_contents.files[0] }}"
    when: inventory_hostname == ip_address_mn
1 голос
/ 30 октября 2019

Q: "Найти число после oap-версии и сохранить его в переменной."

A: С учетом тарбола

$ tar tvf test.tar.gz 
drwxrwxr-x vlado/vlado       0 2019-10-30 12:29 oa-version.0.99-3256/
-rw-rw-r-- vlado/vlado       0 2019-10-30 12:29 oa-version.0.99-3256/02
-rw-rw-r-- vlado/vlado       0 2019-10-30 12:29 oa-version.0.99-3256/01
-rw-rw-r-- vlado/vlado       0 2019-10-30 12:29 oa-version.0.99-3256/03

Задачи ниже

- set_fact:
    my_version: "{{ lookup('pipe', 'tar tvf test.tar.gz').splitlines().0.split(' ')[-1].split('-')[-1][:-1] }}"
- debug:
    var: my_version

дают

"my_version": "3256"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...