Перейти к основному содержимому

Задание 1: Распаковка дистрибутива

В этом разделе мы извлечем файлы установки, выполним распаковку основных и сторонних пакетов.

Сведения

Для полного прохождения всех тем курса необходима лицензия продукта Enterprise.

Все действия этого задания выполняются на первом компьютере стенда - srv1, если иное не указано явно.

Курс разработан с использованием СУБД Pangolin версии 6.7.0.

Внимание!

Чтобы иметь возможность обращаться к серверам по краткому имени в конфигурационном файле /etc/hosts необходимо внести изменения:

[student@srv1 ~]$ sudo vi /etc/hosts
<IP-Address1> srv1
<IP-Address2> srv2
<IP-Address3> srv3

Также смените DNS-имя в приглашении. Для этого на каждом узле выполните (пример показан для srv1):

[student@srv1 ~]$ sudo vi /etc/hostname
#<старое DNS-имя>
srv1

Старое DNS-имя лучше закомментировать с помощью знака #.

[student@srv1 ~]$ sudo reboot

Далее в примерах команд будет использоваться обозначение pangolin-manager-{date}.log – журнал отчета. Фактическое имя файла на стенде, например, pangolin-manager-2025-11-27_090747.log.

Извлечение файлов установки​

Сведения

Название и состав zip-архива могут отличаться. Цель данной демонстрации – распаковка и установка материалов продукта.

Виртуальная машина srv1 будет использована не только в качестве узла отказоустойчивого кластера, но и как источник установки ПО.

В домашнем каталоге пользователя student находится файл лицензии и сжатый архив с дистрибутивом в формате zip:

[student@srv1 ~]$ ls -l ~student/{lic,PSQ}*
-rw-r--r-- 1 student student 500 янв 31 18:27 /home/student/license.json
-rw-r--r-- 1 student student 698202516 апр 17 13:02 /home/student/PSQ-6.7.0-redos8.0-internal-full-distrib.zip

Извлечем установочные файлы из сжатого zip-архива в каталог Distr:

[student@srv1 ~]$ mkdir Distr
[student@srv1 ~]$ cd Distr/
[student@srv1 Distr]$ unzip ../PSQ-6.7.0-redos8.0-internal-full-distrib.zip
Archive: ../PSQ-6.7.0-redos8.0-internal-full-distrib.zip
inflating: PSQ-6.7.0-redos8.0-cyclonedx-distrib.json
inflating: PSQ-6.7.0-redos8.0-installer-distrib.pom
inflating: PSQ-6.7.0-redos8.0-installer-distrib.zip
inflating: PSQ-6.7.0-redos8.0-owned-distrib.pom
inflating: PSQ-6.7.0-redos8.0-owned-distrib.zip
inflating: PSQ-6.7.0-redos8.0-party-distrib.pom
inflating: PSQ-6.7.0-redos8.0-party-distrib.zip
inflating: PSQ-6.7.0-redos8.0-swidtag-distrib.swidtag
inflating: PSQ-6.7.0-redos8.0-unpacker-distrib.sh
inflating: PSQ-6.7.0-redos8.0-untrusted-distrib.pom
inflating: PSQ-6.7.0-redos8.0-untrusted-distrib.zip
inflating: PSQ-doc-6.7.0-distrib.zip
inflating: PSQ-doc-6.7.0.pom

В результате извлечения:

[student@srv1 Distr]$ ls -l
итого 682164
-rw-r--r-- 1 student student 103524 мар 24 09:10 PSQ-6.7.0-redos8.0-cyclonedx-distrib.json
-rw-r--r-- 1 student student 2532 мар 24 09:08 PSQ-6.7.0-redos8.0-installer-distrib.pom
-rw-r--r-- 1 student student 29080731 мар 24 09:07 PSQ-6.7.0-redos8.0-installer-distrib.zip
-rw-r--r-- 1 student student 2483 мар 24 09:07 PSQ-6.7.0-redos8.0-owned-distrib.pom
-rw-r--r-- 1 student student 200642828 мар 24 09:07 PSQ-6.7.0-redos8.0-owned-distrib.zip
-rw-r--r-- 1 student student 2477 мар 24 09:08 PSQ-6.7.0-redos8.0-party-distrib.pom
-rw-r--r-- 1 student student 430760518 мар 24 09:08 PSQ-6.7.0-redos8.0-party-distrib.zip
-rw-r--r-- 1 student student 8938 мар 24 09:10 PSQ-6.7.0-redos8.0-swidtag-distrib.swidtag
-rw-r--r-- 1 student student 2061 мар 24 09:10 PSQ-6.7.0-redos8.0-unpacker-distrib.sh
-rw-r--r-- 1 student student 2481 мар 24 09:09 PSQ-6.7.0-redos8.0-untrusted-distrib.pom
-rw-r--r-- 1 student student 741980 мар 24 09:09 untrusted-distrib.zip
-rw-r--r-- 1 student student 37144769 мар 24 09:07 PSQ-doc-6.7.0-distrib.zip
-rw-r--r-- 1 student student 409 мар 24 09:09 PSQ-doc-6.7.0.pom

Извлечение файлов установки​

Среди распакованных из zip-файлов есть скрипт распаковки.

Запустим скрипт распаковки с опцией --not-pack:

[student@srv1 Distr]$ bash unpacker-distrib.sh --not-pack
start
~/Distr/distributive ~/Distr
successful completion
~/Distr

Появился каталог distributive. Перейдем в него:

[student@srv1 Distr]$ cd distributive

В текущем каталоге появились установочные rpm-пакеты:

[student@srv1 distributive]$ ls -F1
3rdparty/
conf/
debug/
docker/
documentation/
installer/
pangolin-backup-tools-6.7.0-redos8.0.x86_64.rpm
pangolin-copywala-1.2.2-redos8.0.x86_64.rpm
pangolin-core-6.7.0-redos8.0.x86_64.rpm
pangolin-dbms-6.7-6.7.0-redos8.0.x86_64.rpm
pangolin-dbms-6.7-client-6.7.0-redos8.0.x86_64.rpm
pangolin-dbms-6.7-devel-6.7.0-redos8.0.x86_64.rpm
pangolin-dbms-6.7-libpq-6.7.0-redos8.0.x86_64.rpm
pangolin-dbms-6.7-libpq-dev-6.7.0-redos8.0.x86_64.rpm
pangolin-full-6.7.0-redos8.0.x86_64.rpm
pangolin-manager-2.1.13-redos8.0.x86_64.rpm
pangolin-manager-dcs-6.7.0-redos8.0.x86_64.rpm
pangolin-orchestrated-6.7.0-redos8.0.x86_64.rpm
pangolin-pooler-1.5.6-redos8.0.x86_64.rpm
pangolin-pooler-mt-1.5.4-.x86_64.rpm
regid.2021-12.ru.sbertech_psq-6.7.0.swidtag
repositories/
timescaledb/
timescaledb_2_14_2/
timescaledb_2_19_3/
untrusted/
utilities/

Распаковка сторонних пакетов​

Не смотря на то, что rpm-пакеты, необходимые для установки основного программного обеспечения СУБД Pangolin, уже извлечены, но в подкаталогах имеется дополнительное программное обеспечение. В частности, в каталоге 3rdparty:

[student@srv1 Distr]$ cd distributive/3rdparty/
[student@srv1 3rdparty]$ ls
3rdparty.tar.gz

В содержимом tar архива найдем файл, содержащий подстроку venv-controller:

[student@srv1 3rdparty]$ tar tvf 3rdparty.tar.gz *venv-controller*
-rw-r--r-- postgres/postgres 52418638 2026-03-20 22:15 ./pangolin-ansible-venv-controller-6.7.0-redos8.0.x86_64.rpm

И извлечем этот файл:

[student@srv1 3rdparty]$ tar xvf 3rdparty.tar.gz *venv-controller*
./pangolin-ansible-venv-controller-6.7.0-redos8.0.x86_64.rpm

Получим информацию об этом rpm-пакете:

[student@srv1 3rdparty]$ rpm -qip pangolin-ansible-venv-controller-6.7.0-redos8.0.x86_64.rpm
Name : pangolin-ansible-venv-controller
Version : 6.7.0
Release : redos8.0
Architecture: x86_64
Install Date: (not installed)
Group : Applications/Databases
Size : 55173090
License : Sbertech license
Signature : (none)
Source RPM : pangolin-ansible-venv-controller-6.7.0-redos8.0.src.rpm
Build Date : Пт 20 мар 2026 22:14:50
Build Host : localhost
Relocations : /opt/pangolin-ansible-venv-controller
Packager : Sbertech
Vendor : Sbertech
URL : https://sbertech.ru
Summary : Virtual environment for automation ansible scripts on the controller host.
Description :

Virtual environment for automation ansible scripts on the controller host. Located in the directory "/opt/pangolin-ansible-venv-controller".

А также исследуем его содержимое:

[student@srv1 3rdparty]$ rpm -qlp pangolin-ansible-venv-controller-6.7.0-redos8.0.x86_64.rpm
/opt/pangolin-ansible-venv-controller-tmp
/opt/pangolin-ansible-venv-controller-tmp/ansible-4.10.0.tar.gz
/opt/pangolin-ansible-venv-controller-tmp/ansible-core-2.11.7.tar.gz
/opt/pangolin-ansible-venv-controller-tmp/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
/opt/pangolin-ansible-venv-controller-tmp/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
/opt/pangolin-ansible-venv-controller-tmp/dnspython-2.7.0-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/jinja2-3.1.6-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/jmespath-1.0.1-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
/opt/pangolin-ansible-venv-controller-tmp/netaddr-0.8.0-py2.py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/packaging-25.0-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/pip-25.3-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/pycparser-2.23-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/pyparsing-3.2.1-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
/opt/pangolin-ansible-venv-controller-tmp/regid.2021-12.ru.sbertech_vctr-6.7.0.swidtag
/opt/pangolin-ansible-venv-controller-tmp/resolvelib-0.5.4-py2.py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/setuptools-80.9.0-py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/six-1.17.0-py2.py3-none-any.whl
/opt/pangolin-ansible-venv-controller-tmp/wheel-0.45.1-py3-none-any.whl

Этот rpm-пакет позволяет установить виртуальное окружение Python, предназначенное для автоматизированного развертывания кластера Pangolin. Установка виртуального окружения с помощью пакета pangolin-ansible-venv-controller.

Подведем итоги​

Вопрос 1

Вопрос 1: Какую команду используют для первоначального извлечения файлов из архива?

Вопрос 2

Вопрос 2: Какие права необходимо добавить скрипту распаковки перед его выполнением?

Вопрос 3

Вопрос 3: Какой командой можно просмотреть содержимое TAR-архива без его распаковки?