Get Appliance Info

From Proxmox VE
Jump to navigation Jump to search


All OpenVZ appliance templates created with Debian Appliance Builder will have the dab.conf file embedded in them as ./etc/ - the leading ./ is important as that is the way it has been archived.

A concatenation of all such files separated by atleast 1 newline each along with Location and md5sum lines and removal of the Architecture, Installed-Size and Source lines is what essentially makes up the content of the /var/lib/pve-manager/apl-info/apl-available file (in PVE v1.x, the apl-info folder is not present and hence removed from the path listed here).

Linux file extraction from tar.gz archive

The following will serve as a tutorial on linux tar file creation and selective extraction and concatenation. If we were to use real templates which are big, they would take a long time to extract and concatenate and hence this dummy file set example.

Create some files

First we create a folder and place two files in it with different content:

mkdir files
cat << EOF > files/file1.txt
This is file 1 in archive 1
This is line 2 of file 1 in archive 1


sed -e 's/file 1/file 2/g' files/file1.txt > files/file2.txt

Archive the files

We now archive this folder with both it's files:

tar -czf archive1.tar.gz files

Create a second archive with different files

sed -e 's/archive 1/archive 2/g' -i files/file1.txt
sed -e 's/archive 1/archive 2/g' -i files/file2.txt
tar -czf archive2.tar.gz files

rm -rf files

Single file extraction

In order to extract a single from an archive we can use the tar -tvf filename.tar.gz command to display the file tree list present in the archive first to determine the exact path and file name of the target to extract.

Now to extract and display the file on the screen/console (the last character in the command below is a capital letter O) we use:

tar -xzf archive1.tar.gz files/file1.txt -O

Multi Archive file extraction and cocatenation

If we know that the file name and path are in the exact place or follow a pattern, we can extract them into a single file for later manipulation.

tar -xzf archive1.tar.gz files/file1.txt -O  > all_file1.txt
tar -xzf archive2.tar.gz files/file1.txt -O >> all_file1.txt
cat all_file1.txt

This will output:

This is file 1 in archive 1
This is line 2 of file 1 in archive 1

This is file 1 in archive 2
This is line 2 of file 1 in archive 2

Extraction and Concatenation from DAB Templates

If some templates have been downloaded into the template cache folder in the host machine, the files can all be extracted and concatenated into a single file for later mainpulation.

cd /var/lib/vz/template
tar -xzf cache/debian-6.0-frontaccounting_2.3.22.20141028-1_i386.tar.gz ./etc/ -O  > all_infos.txt
tar -xzf cache/debian-6.0-genericlamp_2.0-4_i386.tar.gz ./etc/ -O  >> all_infos.txt
cat all_infos.txt

More esoteric ways to achieve complete automation can be done using find ... exec constructs which is currently left as an exercise to the reader for now.