Установка и конфигурирование PostgreSQL для Ubuntu
Приведенные ниже инструкции предназначены для администратора PostgreSQL (не хост-серверы ДБ). Если в реализацию включен слой высокой доступности, см. раздел ThingWorx высокой доступности этого справочного центра.
Установка PostgreSQL и создание новой роли пользователя
1. Дополнительные сведения о поддерживаемых версиях PostgreSQL см. в разделе Требования к системе ThingWorx.
* 
В шагах этой процедуры используется PostgreSQL x.x, где x.x - поддерживаемая версия.
2. Загрузите и установите соответствующую версию PostgreSQL.
Можно добавить репозиторий PostgreSQL, что позволит установить это приложение непосредственно из диспетчера пакетов.
* 
Чтобы получить наименование версий Ubuntu, используйте следующую команду:
$ lsb_release -sc

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ <YOUR_UBUNTU_VERSION_HERE>-pgdg main" '> /etc/apt/sources.list.d/pgdg.list
$ sudo wget -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install postgresql-x.x -y
3. Установите инструмент администрирования PostgreSQL, PgAdmin:
$ sudo apt-get install pgadmin4 -y
* 
Сведения об установке PgAdmin из командной строки см. на странице https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line.
4. Настройка пароля для пользователя PostgreSQL:
$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
5. Введите пароль для пользователя PostgreSQL. Этот пароль будет использоваться в дальнейших шагах.
* 
Пароль, который не должен легко угадываться или узнаваться, общий пароль, должен иметь длину не менее 14 символов и состоять из смеси прописных и строчных букв, цифр и специальных символов.
6. Сконфигурируйте pgAdmin:
$ sudo pgadmin4
В pgAdmin щелкните file -> Open postgresql.conf
Откройте файл /etc/postgresql/x.x/main/postgresql.conf
Установите флажки рядом с полями listen addresses и port. Обычно достаточно настроек по умолчанию: localhost и 5432.
Сохраните и закройте.
Щелкните file->Open pg_hba.conf
Откройте файл /etc/postgresql/x.x/main/pg_hba.conf
Дважды щелкните в базе данных строку all с адресом 127.0.0.1/32
Задайте метод для md5
Нажмите кнопку OK.
Сохраните и выйдите
Закройте pgAdmin
7. Перезапустите сервис PostgreSQL:
$ sudo service postgresql restart
8. Настройте PgAdmin для соединения с базой данных:
$ sudo pgadmin4
9. Чтобы добавить соединение с сервером, щелкните значок подключения в верхнем левом углу и заполните следующие поля:
Name: PostgreSQL x.x
Host: localhost
Port: 5432
Service: <blank>
Maintenance DB: postgres
Username: postgres
Password: <unique PostgreSQL password as set previously>
Store password: Checked
Group: Servers
10. Нажмите кнопку OK.
11. Создание нового пользователя.
* 
Если не используется PgAdmin, можно использовать следующую команду:
sudo psql -U postgres -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. Выберите Create - Login/Group Role. На вкладке General в поле Name введите наименование роли пользователя PostgreSQL для администрирования PostgreSQL.
c. На вкладке Privileges выберите Yes для опции Can login?.
d. На вкладке Definition в поле Password введите уникальный надежный пароль для PostgreSQL.
e. Нажмите кнопку OK. Запишите наименование роли пользователя и пароль, созданные на этом шаге, для дальнейшего использования.
Конфигурирование базы данных PostgreSQL, расположенной на отдельном сервере, а не на сервере ThingWorx
* 
Этот раздел является необязательным для среды разработки, но должен быть реализован во всех производственных средах.
По умолчанию сервер PostgreSQL устанавливается в заблокированном состоянии. Этот сервер прослушивает подключения только на локальном компьютере. Чтобы приложение ThingWorx стало взаимодействовать с сервером PostgreSQL, необходимо внести в конфигурацию некоторые изменения, чтобы сервер PostgreSQL "научился" прослушивать подключения со стороны других пользователей (пользователь ThingWorx по умолчанию: twadmin) и/или других компьютеров (приложения ThingWorx, установленного на отдельном сервере).
Для выполнения этих шагов необходимо знать, где находится каталог данных PostgreSQL. Для ОС Linux: расположение папки данных или даже файлов конфигурации может изменяться в зависимости от способа распределения и способа установки (установка загружаемых файлов или установка с помощью диспетчера пакетов). В инструкциях для ссылки на это расположение используется путь <PGDATA>.
* 
Для Ubuntu: при установке через apt-get файлы конфигурации расположены в /etc/postgresql/x.x/main/
Измените файл pg_hba.conf и добавьте в зависимости от нужной конфигурации следующие строки:
Если нужно разрешить соединение со всех адресов IPv4:
host all all 0.0.0.0/0 md5
Если нужно разрешить подключение только с определенного адреса IPv4 (замените <ipAddress> IP-адресом компьютера, осуществляющего подключение):
host all all <ipAddress>/32 md5
Если нужно разрешить подключение со всех адресов IPv6:
host all all ::0/0 md5
Если нужно разрешить подключение только с определенного адреса IPv6 (замените <ipv6Address> соответствующим адресом):
host all all <ipv6Address>/128 md5
Возможна любая другая комбинация, если использовать дополнительные строки разрешений (для отдельных IP-адресов или их диапазонов) или маски подсети, соответствующие компьютерам, которым требуется доступ к базе данных PostgreSQL.
После любого изменения этого файла требуется перезапуск сервиса базы данных.
* 
Дополнительные сведения о конфигурировании файла pg_hba.conf см. на веб-странице документации PostgreSQL.
Активация в PostgreSQL прослушивания всех подключений
На установках PostgreSQL в ОС Linux существует дополнительный шаг конфигурации, необходимый, чтобы сконфигурировать сервер PostgreSQL для прослушивания подключений.
1. В файле postgresql.conf раскомментируйте и обновите строку listen_addresses:
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. Перезапустите сервер PostgreSQL.
Конфигурирование и выполнение сценария базы данных PostgreSQL
Чтобы настроить базу данных и область таблиц PostgreSQL, необходимо сконфигурировать и выполнить сценарий thingworxPostgresDBSetup.sh.
* 
После ThingWorx 9.3.1 создание папки ThingworxPostgresqlStorage или любые шаги, связанные с -l, больше не требуются, и данные ThingWorx будут сохраняться в расположении Postgresql по умолчанию.
1. Получите сценарий thingworxPostgresDBSetup.sh из пакета загрузки программного обеспечения ThingWorx в папке install. Загрузки ThingWorx доступны на веб-странице PTC Software Downloads (Загрузки программного обеспечения PTC).
2. Если необходимо, сконфигурируйте сценарий. Используйте опции из приведенной ниже таблицы.
* 
В этом примере используется загрузка версии 9.x.x с сайта PTC. Если необходимо, замените в имени файла версию той, которую вы используете.

$ sudo unzip MED-61111-CD-085_F000_ThingWorx-Platform-Postgres-9-x-x.zip
$ cd install
3. Чтобы настроить базу данных и область таблицы с помощью установки PostgreSQL по умолчанию, в которой имеется база данных PostgreSQL и пользователь с именем PostgreSQL, введите следующий код:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
Опции сценария thingworxPostgresDBSetup
Опция
Параметр
По умолчанию
Описание
Пример
t или -T
tablespace
thingworx
Наименование области таблицы
-t thingworx
-p или -P
port
5432
Номер порта PostgreSQL
-p 5432
-d или -D
database
thingworx
Наименование создаваемой базы данных PostgreSQL
-d thingworx
-l или -L
tablespace_location
/ThingworxPostgresqlStorage
Требуется в ThingWorx 9.3.0 и предыдущих версиях. Расположение в файловой системе, где хранятся файлы, представляющие объекты базы данных. Перед выполнением сценария пользователю необходимо создать эту папку вручную с разрешениями, а затем указать путь, например : -l /ThingworxPostgresqlStorage
* 
Для этой папки должен существовать владелец и должны быть заданы соответствующие права доступа. Она должна принадлежать пользователю, который выполняет сервис PostgreSQL и имеет полный доступ.
-l или -L
-h или -H
host
localhost
Имя хост-компьютера.
-h localhost
-a или -A
adminusername
postgres
Имя администратора
-a postgres
-u или -U
thingworxusername
twadmin
Имя пользователя, имеющего разрешения на запись в базу данных.
-u twadmin
4. Выполните сценарий.
Конфигурирование и выполнение сценария схемы поставщика моделей/данных
Чтобы настроить схему поставщика моделей и данных PostgreSQL, необходимо сконфигурировать и выполнить сценарий thingworxPostgresSchemaSetup.sh. Это позволит настроить общую схему в вашей базе данных для экземпляра PostgreSQL, установленному на локальном компьютере localhost.
1. Извлеките из пакета загрузки программного обеспечения ThingWorx и откройте файл thingworxPostgresSchemaSetup.sh. Этот сценарий находится в папке install.
2. Если необходимо, сконфигурируйте сценарий. Используйте опции из приведенной ниже таблицы.
Опции сценария thingworxPostgresSchemaSetup
Опция
Параметр
По умолчанию
Описание
Пример
-h или -H
host
localhost
IP-адрес или наименование хост-компьютера базы данных.
-h localhost
-p или -P
port
5432
Номер порта PostgreSQL.
-p 5432
-d или -D
database
thingworx
Наименование базы данных, которую необходимо использовать.
-d thingworx
-s или -S
schema
public
Наименование схемы, которую необходимо использовать.
-s myschema
* 
Если не используется public или $user , необходимо отредактировать файл postgresql.conf и добавить SEARCH_PATH его в схему. Например, search_path = '"$user", public, "myschema"' .
-u или -U
username
twadmin
Имя пользователя для обновления схемы базы данных
-u twadmin
-o или -O
опция
all
Имеются три опции.
all - настройка схем поставщиков моделей и данных в указанной базе данных.
model - настройка схемы поставщика моделей в указанной базе данных.
data - настройка схемы поставщика данных в указанной базе данных.
-o data
3. Выполните сценарий. Этот сценарий можно выполнить с параметрами по умолчанию:
$ sudo sh thingworxPostgresSchemaSetup.sh
Имя пользователя должно совпадать с именем пользователя PostgreSQL, созданного ранее.
Конфигурирование файла platform-settings.json
1. Откройте файл platform-settings.json, расположенный в папке ThingworxPlatform.
2. Найдите опции конфигурации PostgresPersistenceProviderPackage в разделе Сведения о конфигурации platform-settings.json и добавьте их в файл platform-settings.json.
* 
Если сервер PostgreSQL не совпадает с сервером ThingWorx, то при возникновении проблем, связанных с установкой ThingWorx, просмотрите журналы Tomcat и файл platform-settings.json. При стандартной установке предполагается, что оба сервера находятся на одном и том же компьютере.
Шифрование пароля PostgreSQL
Зашифруйте пароль, выполнив шаги, описанные в разделе Шифрование паролей.
(Необязательно) Установка пакета клиента PostgreSQL и пользователя PostgreSQL
Чтобы выполнять команды PostgreSQL с компьютера клиента на сервере PostgreSQL, выполняйте их от имени пользователя PostgreSQL. Пакет postgresql-client-x.x может быть установлен на компьютере клиента, сведения о его установке см. в документации, входящей в поставку. Этот пакет содержит некоторые инструменты администрирования, такие как psql.
Было ли это полезно?