Инсталиране¶
Забележка
Напомняме, че превключването към root на компютри с Debian трябва да се извършва със следната команда:
1 | |
Инструкциите на тази страница трябва да се следват при инсталирането на всички възли в клъстера PostgreSQL.
Системни настройки¶
Свързване с компютъра¶
По подразбиране виртуалните устройства имат два акаунта: потребителски акаунт и акаунт на суперпотребител.
- Потребителски акаунт
- Потребителско име:
systancia - Парола:
systnci
- Потребителско име:
- Акаунт на суперпотребител
- Потребителско име:
root - Парола:
systnci
- Потребителско име:
Свържете се към компютъра в режим на конзола.
Забележка
Подредбата на клавиатурата по подразбиране е QWERTY.
Промяна на клавиатурната подредба¶
Можете да промените подредбата на клавиатурата със следния команден ред:
1 | |
Появява се меню, което ви позволява да изберете друга подредба на клавиатурата.
След това използвайте следния команден ред, за да приложите и запишете настройките:
1 | |
Настройките влизат в сила веднага след изпълнението на тази команда.
Конфигуриране на мрежата¶
Виртуалното устройство може да не получи мрежова конфигурация при стартиране поради следните причини:
- Името на мрежовия интерфейс не е
ens192: устройството е конфигурирано за DHCP само на интерфейсаens192 - Няма наличен DHCP сървър
За да проверите името на мрежовия интерфейс, неговото състояние и присвоените IP адреси, изпълнете следната команда като root:
1 | |
Пример
След изпълнението на командата се показва следният отговор:
1 | |
Името на мрежовия интерфейс в примера е ens192, интерфейсът е активен и има IP адрес 10.100.0.51/24.
Ако името е различно от ens192 или ако командата не връща мрежови настройки, ще трябва да конфигурирате мрежата ръчно със следните команди:
1 2 | |
Заменете:
IP_ADDRESSс IP адреса на компютъраSUBNETс подмрежатаDEV_NAMEс името на предварително извлечения мрежов интерфейсGATEWAYс мрежовия шлюз
Пример
За да конфигурирате възела PostgreSQL със следната информация:
- IP адрес:
10.100.0.51 - Подмрежа:
/24или255.255.255.0 - Име на мрежовия интерфейс:
eth0 - Мрежов шлюз:
10.100.0.254
Командите са следните:
1 2 | |
Забележка
Тази мрежова конфигурация е временна, затова всяко рестартиране на сървъра ще нулира ръчните настройки, направени с командите ip address и ip route.
Постоянната конфигурация ще бъде извършена от помощната програма за конфигуриране на клъстера PostgreSQL.
Благодарение на тази мрежова конфигурация обаче вече можете да получите достъп до възела PostgreSQL чрез SSH.
Промяна на часовата зона¶
По подразбиране виртуалното устройство е настроено на часовата зона Europe/Paris.
За да промените тази часова зона, първо използвайте следната команда, за да получите синтаксиса на наличните часови зони:
1 | |
След това използвайте следния команден ред:
1 | |
Пример
За да зададете часовата зона на Лондон, трябва да изпълните следната команда:
1 | |
Проверете часовата зона на сървъра със следния команден ред:
1 | |
Конфигуриране на NTP сървър за време¶
Опасност
Силно се препоръчва да конфигурирате сървър за време, за да поддържате системния часовник актуален: всяка разлика във времето между възлите PostgreSQL може да доведе до нестабилност или дори до спиране на работата на клъстера.
Необходимите стъпки са описани на страницата за конфигуриране на NTP (конфигурацията е същата като тази на сървърите Mediation Controller на CyberElements Bastion).
Създаване на PKI за генериране на сертификатите на възлите PostgreSQL¶
Информация
Тази част не е задължителна, ако вече разполагате с PKI, от която сте успели да генерирате сертификатите, посочени в предварителните изисквания.
В тази част са представени различните стъпки за създаване на PKI и на сертификатите, необходими за клъстера PostgreSQL. Имайте предвид, че няма да бъде посочено как да ги подновите, тъй като подновяването на сертификат означава повторното му създаване.
Внимание!
Описаната процедура е валидирана на компютър с Debian 12 с пакета openssl. Всеки компютър с актуална версия на OpenSSL (валидираната версия е 3.0.17) обаче ще може да изпълни процедурата. С изключение на Windows или MacOS, където системните команди ще трябва да бъдат адаптирани.
Дефиниране на променливи и персонализации¶
Тази част предоставя различни команди и конфигурационни файлове, които използват променливи, които могат да бъдат променяни.
Таблицата по-долу обобщава всички стойности и ви позволява да ги дефинирате, така че да можете да ги промените директно в командите, показани на тази страница.
| Стойност | Променлива | Определение |
|---|---|---|
PSQL_IP |
Виртуален IP адрес на клъстера PostgreSQL. | |
PSQL_NAME |
Кратко име (не FQDN), свързано с виртуалния IP адрес на клъстера PostgreSQL. | |
PSQL_1_IP |
IP адрес на възел PostgreSQL № 1 от клъстера. | |
PSQL_1_NAME |
Кратко име (не FQDN) на възел PostgreSQL № 1 от клъстера. | |
PSQL_2_IP |
IP адрес на възел PostgreSQL № 2 от клъстера. | |
PSQL_2_NAME |
Кратко име (не FQDN) на възел PostgreSQL № 2 от клъстера. | |
PSQL_3_IP |
IP адрес на възел PostgreSQL № 3 от клъстера. | |
PSQL_3_NAME |
Кратко име (не FQDN) на възел PostgreSQL № 3 от клъстера. | |
CA_ROOT_NAME |
Име, присвоено на главния сертифициращ орган (CA) на PKI. |
Подготовка¶
Следните действия ще бъдат извършени в нова директория, за да се съберат всички нови файлове в една директория. Може да се използва всяка директория, но достъпът до нея трябва да бъде ограничен колкото е възможно повече. Влезте във възел PostgreSQL № 1 като root и изпълнете следните команди:
1 2 3 | |
Създаване на главния сертифициращ орган¶
Изпълнете следната команда, за да създадете нов главен CA. Ще бъдете подканени да въведете парола за защита на CA:
1 | |
Заменете CA_ROOT_NAME с името на главния CA, ако не сте го персонализирали тук.
Създаване на сертификати¶
Командите, необходими за генериране на сертификатите за възлите PostgreSQL, са следните:
1 2 3 | |
Заменете CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP и PSQL_1_NAME, ако не сте ги персонализирали тук.
1 2 3 | |
Заменете CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP и PSQL_2_NAME, ако не сте ги персонализирали тук.
1 2 3 | |
Заменете CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP и PSQL_3_NAME, ако не сте ги персонализирали тук.
Първата команда създава нов ключ, втората генерира файл със заявка за подписване на сертификат CSR, а третата създава самия сертификат.
Сертификатът все още трябва да бъде преобразуван в P12, което ще изисква да зададете парола:
1 | |
1 | |
1 | |
Файловете, необходими за инсталиране на клъстера PostgreSQL, се намират тук (заменете променливите CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME и PSQL_3_NAME със стойностите, които сте избрали по-рано):
/root/psql-certificates/CA_ROOT_NAME.crt: сертификат на главния CA/root/psql-certificates/PSQL_1_NAME.p12: сертификат за възел PostgreSQL № 1/root/psql-certificates/PSQL_2_NAME.p12: сертификат за възел PostgreSQL № 2/root/psql-certificates/PSQL_3_NAME.p12: сертификат за възел PostgreSQL № 3
Инсталиране на клъстер PostgreSQL¶
Информация
Следните стъпки трябва да бъдат изпълнени и на трите възела PostgreSQL.
Подготовка за конфигурирането на клъстера PostgreSQL¶
Необходимо е да установите SFTP или SCP връзка, за да изпратите към устройството:
- Сертификата на сертифициращия орган, който е подписал сертификатите за възлите PostgreSQL
- Сертификата на възела PostgreSQL във формат
P12
Имайте предвид, че SFTP или SCP връзките не могат да бъдат инициализирани с акаунта root. Освен това файловете могат просто да бъдат поставени в /home/systancia/.
Необходимо е да преместите тези файлове в нова директория:
1 2 3 | |
Заменете:
PSQL_?_NAMEс името на сертификата, предназначен за инсталирания възел PostgreSQLROOT_CA_NAMEс името на сертификата на главния сертифициращ орган
1 2 3 | |
Командите по-горе трябва да са персонализирани съгласно настройките за персонализиране.
1 2 3 | |
Командите по-горе трябва да са персонализирани съгласно настройките за персонализиране.
1 2 3 | |
Командите по-горе трябва да са персонализирани съгласно настройките за персонализиране.
Конфигуриране на възела PostgreSQL¶
За да започнете инициализирането на конфигурацията на възела, трябва да изпълните следните команди:
1 2 | |
Втората команда ще стартира помощна програма, която ще изиска следната информация:
- Нови пароли за локалните потребители
rootиsystancia - Име на възела PostgreSQL (не FQDN)
- IP адресът на възела PostgreSQL, името на неговия мрежов интерфейс, мрежовият шлюз по подразбиране, който да се използва, както и DNS сървърите и DNS суфиксът
- Версията на PostgreSQL; препоръчваме да използвате версия
15 - Портът за достъп до клъстера PostgreSQL; препоръчваме да използвате порт
5432 - Парола за акаунта на PostgreSQL, използван за репликацията и за
pg_rewind - Име и IP адрес на втори възел PostgreSQL
- Име и IP адрес на последния възел PostgreSQL
- Виртуален IP адрес на клъстера PostgreSQL
- IP адресите (разделени със запетаи) на сървърите Edge Gateway на CyberElements Bastion или на всички други компютри, които трябва да се свързват с клъстера
- Име и парола на потребителския акаунт на PostgreSQL
- IP адресите или мрежите (разделени със запетаи), на които е разрешено да се свързват чрез SSH с възлите PostgreSQL
- Информация за сертификата на възела PostgreSQL (сертификат на възела във формат P12 + сертификат на главния CA)
След въвеждането на тази информация преди валидирането ще бъде показано обобщение на всички въведени от вас данни.
След потвърждаване на предоставената информация ще се появи съобщение относно промените във файла /etc/ssh/sshd_config. Изберете опцията по подразбиране, keep the local version currently installed.
За да приложите конфигурацията, е необходимо рестартиране:
1 | |
Съвет за ускоряване на инсталирането на възли PostgreSQL № 2 и № 3
След инсталирането на възел PostgreSQL № 1 можете да извлечете настройките на конфигурацията, използвани за настройването му, от файла /etc/cleanroom-vault.ini.
Пример за файла /etc/cleanroom-vault.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Просто променете маркираните редове със стойностите на инсталирания възел PostgreSQL, като се базирате на файла, извлечен от възел PostgreSQL № 1.
Опасност
Ако използвате повторно примерния файл, ще трябва да промените всички следващи маркирани стойности според вашата среда:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
След като всички възли PostgreSQL бъдат инсталирани, изтрийте файла /etc/cleanroom-vault.ini от всеки възел, тъй като той съдържа паролите, въведени по време на конфигурирането, в обикновен текст:
1 | |
Допълнителни конфигурации за patronictl¶
За да се даде възможност за използване на командите за управление на клъстера PostgreSQL с patronictl, остава да изпълните няколко команди като root на възела PostgreSQL:
1 2 3 4 | |
Допълнителни конфигурации за etcd¶
За да активирате автоматичното уплътняване и дефрагментиране на базата данни etcd, изпълнете следните команди като root на възела PostgreSQL:
1 2 3 4 5 6 7 | |
Създаване на базата данни default, необходима за инсталирането на CyberElements Bastion¶
При инсталирането на CyberElements Bastion първо трябва да създадете база данни с име default.
За целта попълнете следната таблица, за да персонализирате командата, която ще трябва да изпълните от който и да е възел на клъстера PostgreSQL:
| Стойност | Променлива | Определение |
|---|---|---|
PSQL_VIP |
Виртуален IP адрес на клъстера PostgreSQL. | |
DB_USER |
Потребителското име за базата данни, зададено по време на конфигурирането на възела PostgreSQL |
Команда, която да се изпълни от някой от възлите на клъстера PostgreSQL:
1 | |