Глава 02. Установка
В этой главе:
- Варианты установки.
- Подготовительные процедуры.
- Установка программного обеспечения.
- Создание кластера баз данных.
- Запуск сервера.
- Проверка работоспособности.
Варианты установки
Ручная установка:
- требуются подготовительные процедуры, создание каталогов и т.п.;
- самостоятельная регистрация учетной записи postgres;
- распаковка установочных пакетов;
- установка пакетов программного обеспечения с помощью менеджеров пакетов;
- самостоятельное создание кластера баз данных;
- ручной запуск экземпляра.
Автоматизированная установка с помощью Ansible:
- standalone - без установки etcd и создания кластера Patroni на одном хосте;
- кластер Patroni.
В этом курсе рассматривается ручная установка Pangolin.
Программное обеспечение Pangolin может быть установлено двумя основными путями:
- ручным способом, предусматривающим распаковку из zip-архива с последующей установкой из пакетов RPM или DEB в зависи мости от операционной платформы;
- автоматизированным способом с помощью скриптов Ansible.
Регистрация учетной записи postgres
До установки должна быть зарегистрирована учетная запись пользователя ОС postgres в качестве системного.
Пользователь postgres должен обладать домашним каталогом. Оболочка интерактивная, например, Bash. Непосредственный вход в сеанс запрещен.
$ sudo useradd -m -r -d /var/lib/postgres \
-s /bin/bash postgres
$ id postgres
uid=978(postgres) gid=977(postgres) группы=977(postgres)
Приведенная на слайде команда useradd регистрирует учетную запись пользователя в операционной системе. Опции команды useradd:
- -m - создать домашний каталог для пользователя;
- -r - пользователь системный;
- -d - каталог файловой системы, назначенный домашним для этого пользователя;
- -s - назначить оболочку.
В примере оболочка для зарегистрированного пользователя postgres - /bin/bash, так как ему потребуется возможность использования интерактивных сеансов Bash. См. man useradd
.
Блокировка пароля для postgres
Сеанс postgres запускается только с помощью sudo. Должен быть пользователь с допуском к sudo. Для запрета непосредстве нного входа в сеанс пароль postgres обязательно блокируется.
$ grep postgres /etc/passwd postgres:x:978:977::/var/lib/postgres:/bin/bash
$ sudo passwd -S postgres
postgres LK 2024-08-22 -1 -1 -1 -1 (Пароль заблокирован.)
Фильтр grep пропускает только те строки входного потока, которые удовлетворяют регулярному выражению. См. man grep.
Регулярные выражения - шаблоны для поиска строк. См. man 7 regex.
В примере выше посредством grep проверяется, что учетная запись для postgres зарегистрирована в файле учетных запис ей /etc/passwd. См. man 5 passwd.
Команда passwd -S postgres выводит состояние учетной записи. В ее выводе видно, что пароль у postgres заблокирован. См. man passwd.
Это делается для исключения интерактивного входа в сеанс по приглашению операционной системы (в текстовом режиме - приглашение сервера терминала getty, в графике - дисплей менеджера, например, gdm, или же с помощью сетевого входа, например, ssh). Запустить сеанс postgres можно будет с помощью утилиты sudo. См. man 8 sudo.
Распаковка установочных пакетов
Архив с файлом контрольных сумм:
$ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip Archive: PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
Length Date Time Name
--------- ---------- ----- ----
64 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst
1495 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst.p7s
--------- -------
1559 2 files
Зарегистрированные пользователи могут получить архив с установочным пакетом.
Архив в формате zip с дистрибутивами и контрольными суммами.
Программа unzip извлекает сжатые файлы из zip-архивов. С опцией -l этак команда выводит список файлов, находящихся в архиве вместо их извлечения. В примере исследовано содержимое архива с файлом контрольных сумм. См. man unzip.
Архив с установочным пакетом:
$ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
Archive: PSQ-06.002.00-69-redos7.3.2-distrib.zip
Length Date Time Name
--------- ---------- ----- ----
490 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-documentation-distrib.pom
243560569 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-documentation-distrib.zip
486 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom
3667157 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip
482 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
51369991 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
482 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
549620708 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
1209 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
-------------- -------
848221574 9 files
Зарегистрированные пользователи могут получить архив с установочным пакетом.
Архив в формате zip с дистрибутивами и контрольными суммами.
Объединяет в себе несколько zip пакетов с различным программным обеспечением.
После распаковки доступен скрипт распаковки.
Программа unzip извлекает сжатые файлы из zip-архивов. С опцией -l этак команда выводит список файлов, находящихся в архиве вместо их изв лечения. См. man unzip.
На этом слайде выводится содержимое архива zip с установочного дистрибутива. Заметно, что в один zip архив помещены несколько zip архивов:
- документация;
- установочный пакет;
- дополнительные утилиты;
- сторонние пакеты;
- Shell скрипт программы распаковки.
Распаковка архива с установочным пакетом:
$ unzip ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.pom inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.zip inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
В примере посредством утилиты unzip была выполнена распаковка из монолитного zip-архива его содержимого. В частности, был распакован установочный скрипт.
Скрипт распаковки:
$ bash PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
start
~/Distrib/distributive ~/Distrib
successful completion: PSQ-06.002.00-distrib.tar.gz ~/Distrib