Установка PG Admin на RedHat - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь установить PGAdmin4 на сервер EC2, который позже будет использоваться для подключения к базе данных PostgreSQL в RDS. Я использую следующий набор команд для установки PGAdmin на RHE7. Сценарий установки частично изменен в соответствии с моими конкретными потребностями c.

        #!/bin/bash
        # create mount point directory
        mkdir /mnt/app
        # create ext4 filesystem on new volume           
        mkfs -t ext4 /dev/nvme1n1
        # add an entry to fstab to mount volume during boot
        echo "/dev/nvme1n1       /mnt/app   ext4    defaults,nofail 0       2" >> /etc/fstab
        # mount the volume on current boot
        mount -a
        # download s3 bucket with config files
        aws s3 cp s3://<S3 Bucket> /tmp/s3 --recursive
        # ensure patches are installed
        yum update -y
        # install postgresql repository
        yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
        # disable outdated postgresql repository
        yum-config-manager --disable pgdg94 pgdg95 pgdg96 pgdg11 pgdg12
        # enable the rhel extras repository
        yum-config-manager --enable rhel-7-server-rhui-extras-rpms
        # enable the rhel optional repository
        yum-config-manager --enable rhel-7-server-rhui-optional-rpms
        # enable the rhel rhscl repository
        yum-config-manager --enable rhel-server-rhui-rhscl-7-rpms
        # create the repository cache
        yum makecache fast
        # install nginx & python
        yum install rh-nginx114 -y
        # move nginx config files
        mv /tmp/s3/pgadmin/nginx/nginx.conf /etc/opt/rh/rh-nginx114/nginx/nginx.conf
        mv /tmp/s3/pgadmin/nginx/pgadmin.conf /etc/opt/rh/rh-nginx114/nginx/conf.d/pgadmin.conf
        # enable and start nginx
        systemctl start rh-nginx114-nginx
        systemctl enable rh-nginx114-nginx
        # allow nginx to make http connections
        setsebool -P httpd_can_network_connect on
        # create pgAdmin directories
        mkdir -p /mnt/app/var/lib/pgadmin4
        mkdir -p /mnt/app/var/log/pgadmin4
        # add pgadmin4 user
        adduser pgadmin4
        # install pgadmin4
        yum install pgadmin4 postgresql10 -y
        # upgrade and install gunicorn via pip
        pip install --upgrade pip
        #pip uninstall urllib3
        #pip install boto3 --force-reinstall
        pip install futures
        pip install flask-compress
        pip install gunicorn
        # move pgadmin config files
        mv /tmp/s3/pgadmin/pgadmin4-web/* /usr/lib/python2.7/site-packages/pgadmin4-web/
        # start pgAdmin
        cd /usr/lib/python2.7/site-packages/pgadmin4-web/
        export PGADMIN_SETUP_EMAIL=test@example.com
        export PGADMIN_SETUP_PASSWORD=12345test
        python run_pgadmin.py
        # set permissions to pgAdmin
        chown pgadmin4 /mnt/app/var/lib/pgadmin4 -R
        chown pgadmin4 /mnt/app/var/log/pgadmin4 -R
        # start gunicorn service with pgadmin
        mv /tmp/s3/pgadmin/systemd/gunicorn.service /etc/systemd/system/gunicorn.service
        systemctl enable gunicorn.service
        systemctl start gunicorn.service
        # notify start is done
        touch /tmp/startup_complete

Я выполнил каждую команду до тех пор, пока python run_pgadmin.py не завершится с ошибкой

Traceback (most recent call last):
File "run_pgadmin.py", line 4, in <module>
from pgAdmin4 import app
ImportError: No module named pgAdmin4

python версия 2.7.5

Файл run_pgadmin.py имеет следующее содержимое

import __builtin__ as builtins
builtins.SERVER_MODE = True

from pgAdmin4 import app

Это похоже на ошибку python Speci c, но я не смог go дальше с ним ,

...