Ansible playbook-解压缩到特定目录(重命名目录
我有一本可以提取焦油档案的剧本Ansible playbook-解压缩到特定目录(重命名目录,ansible,Ansible,我有一本可以提取焦油档案的剧本 - name: Unarchive Installation become: yes unarchive: src: "/opt/dist-{{ version }}.tar" dest: /opt/ remote_src: yes when: inventory_hostname == ip_address oap_版本不同,所以提取的文件夹名称也不同,提取的文件夹的格式总是oa-{{versi
- name: Unarchive Installation
become: yes
unarchive:
src: "/opt/dist-{{ version }}.tar"
dest: /opt/
remote_src: yes
when: inventory_hostname == ip_address
oap_版本不同,所以提取的文件夹名称也不同,提取的文件夹的格式总是oa-{{version}-some_number
根据oap版本的不同,-
后面的数字是不同的,所以它会打断下一个块,进入提取的目录并安装包
- name: Run Installation
become: yes
command: 'python install.py --modules="Platform" --username admin --password pass --repo-base-url="http://download.com/oa/{{ version }}/repo"'
args:
chdir: /opt/oa-{{ version }}-1234/
有没有办法指定自定义目标文件夹名称,或者ansible可以在oap版本
之后找到编号并将其存储到变量中,或者注册目标并将其传递给变量
问:“找出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
给予
找到了答案
要进入该目录:
- name: Run Installation
become: yes
command: 'python install.py --modules="Platform" --username admin --password password --repo-base-url="http://download.com/oa/{{ version }}/repo"'
args:
chdir: "/opt/{{ archive_contents.files[0] }}"
when: inventory_hostname == ip_address
谢谢弗拉基米尔,我找到了另一种方法。
- name: Unarchive Installation
become: yes
unarchive:
src: "/opt/dist-{{ version }}.tar"
dest: /opt/
remote_src: yes
list_files: yes
when: inventory_hostname == ip_address
register: archive_contents
- name: Run Installation
become: yes
command: 'python install.py --modules="Platform" --username admin --password password --repo-base-url="http://download.com/oa/{{ version }}/repo"'
args:
chdir: "/opt/{{ archive_contents.files[0] }}"
when: inventory_hostname == ip_address