One IT Thing

IT業界で飯を食う為の学習系雑記

linux PostgreSQL

pgadmin4をCentOS7にインストールしてサーバモードで起動する手順

投稿日:2019年5月16日 更新日:

はじめに

pgadmin3時代

pgadmin3はデスクトップアプリだったので各位がPCにインストールする必要が有り、DBのURLが変わったり、新規プロジェクト参画者の導入時に手間が有りました。

pgadmin4時代

デスクトップアプリだった3から変わり、4ではPython + FlaskのWebアプリになりました(通常インストール時はデスクトップアプリのように動きます)。

LAN内のPCにサーバモードで起動しておけば各開発者が自分のPCにpgadmin4を入れなくても、WebブラウザからPostgreSQLを操作出来るようになります。

シンプルになって運用が楽になりますね。新規参画者Dが入ってもpgadmin4のURLを教えるだけで済みます。

開発チームのローカル使用用途に設定最小限で起動してみます。

前提

  • Apache、PostgreSQL本体はインストールには必須ではありません。
  • Windows8に入れてサーバモード起動しようとするとpython絡みやProgramFiles権限絡みでエラーが出て面倒そうだったので放置しました(-_-;。用途的にもWindowsに入れたらデスクトップモードで使った方がいいかも知れません。

環境

  • CentOS7.6
  • python2.7
  • Apacheは未インストール
  • PostgreSQLは未インストール

手順

1.yumリポジトリ追加。pgdg(ポスグレ本家)、epel(python関連用)

/etc/yum.repos.dにリポジトリを追加します。

# yum -y install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum -y install epel-release

2.pgadmin4本体インストール

python-flask他pythonモジュール合計70rpmほどインストールされました。

# yum -y install pgadmin4

3. 設定ファイルを新規作成

メイン設定ファイル「config.py」を上書きする為の追加設定ファイル「config_local.py」を新規作成します。

# vi /usr/lib/python2.7/site-packages/pgadmin4-web/config_local.py

SERVER_MODE = True  <- サーバモード指定
DEFAULT_SERVER = '0.0.0.0'  <- 外部からのアクセスを可能にする

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'

(*)ポート設定しない場合は5050がデフォルトで使用されます

4.認証作成セットアップスクリプト実行

Web画面からログインする時に必要なアカウントを作成します。

# cd /usr/lib/python2.7/site-packages/pgadmin4-web

# python ./setup.py
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: OSユーザ名@localhost(メールさえ届けば適当で可)
Password: (任意に入力)
Retype password:
pgAdmin 4 - Application Initialisation
======================================

5.起動

以下コマンドでフォアグラウンドプロセス起動されます、が・・・

# python pgAdmin4.py
Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

serviceファイルもインストールしてくれているので、

# updatedb

# locate pgadmin | grep service
/usr/lib/python2.7/site-packages/pgadmin4-web/pgadmin/browser/server_groups/servers/tests/test_add_server_with_service_id.py
/usr/lib/python2.7/site-packages/pgadmin4-web/pgadmin/browser/server_groups/servers/tests/test_add_server_with_service_id.pyc
/usr/lib/python2.7/site-packages/pgadmin4-web/pgadmin/browser/server_groups/servers/tests/test_add_server_with_service_id.pyo
/usr/lib/systemd/system/pgadmin4.service

systemctlで起動します。

# systemctl start pgadmin4

5050ポートで起動しました。

[root@spock pgadmin4-web]# systemctl status pgadmin4
● pgadmin4.service - pgAdmin4 Server Mode
   Loaded: loaded (/usr/lib/systemd/system/pgadmin4.service; disabled; vendor preset: disabled)
   Active: active (running) since 月 2019-09-16 05:06:48 JST; 15min ago
     Docs: https://www.pgadmin.org/docs/
 Main PID: 16715 (python2)
    Tasks: 1
   Memory: 77.9M
   CGroup: /system.slice/pgadmin4.service
           mq16715 /usr/bin/python2 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.py

 9月 16 05:06:48 spock systemd[1]: Started pgAdmin4 Server Mode.
 9月 16 05:06:51 spock python2[16715]: Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.
 9月 16 05:06:51 spock python2[16715]: * Serving Flask app "pgadmin" (lazy loading)
 9月 16 05:06:51 spock python2[16715]: * Environment: production
 9月 16 05:06:51 spock python2[16715]: WARNING: Do not use the development server in a production environment.
 9月 16 05:06:51 spock python2[16715]: Use a production WSGI server instead.
 9月 16 05:06:51 spock python2[16715]: * Debug mode: off

6.5050ポート開放

firewalldでpgadmin4ポートを開けておきます。

# firewall-cmd --add-port=5050/tcp --zone=public --permanent
success

# firewall-cmd --reload
success

7.動作確認

http://{pgadmin4インストールPCアドレス}:5050/
にアクセスし、項番4で入力したアカウントを入力してログインします。
ログイン後、接続するPostgreSQLを指定します。

ブラウザでポスグレに繋がる手軽さが魅力

インターネット上に公開するのでなければApacheも無くていいかな、と思います。

4がリリースされたばかりの頃の評判は悪かったですが、大分バージョンが上がって改善されている為か3が恋しくなるような感覚は有りませんでした。

がっつりSQL書いたりする分にはA5やJailerを使えばいい訳で、他人のPCからでもノーインストール、WebブラウザでDBを弄れるようになる環境が手に入るのは地味に大きなメリットです。

-linux, PostgreSQL

執筆者:

関連記事

GitLabのIPを変更したらMattermostにログイン出来なくなった話「the redirect uri included is not valid. 」

目次1 発端2 環境3 GitLabのIP変更設定を開始4 そしてハマる5 解決6 結局どこに設定が保存されていたか7 まとめ 発端 先日オフィスの引っ越しが有りネットワークセグメントが変わる為、Gi …

SSHトンネルを使ってリモートデータベースをBI

クラウド上のDBを分析する為、ローカルPCにSSHトンネル(ポートフォワード)環境を作ります。 リモートDBポートにクラウド外からセキュアに接続できれば、クラウドにBIツールを入れる手間が省けます。 …

認証付きHTTPプロキシを認証無しで利用する下位プロキシをsquidで構築

目次1 はじめに2 環境3 手順3.1 squidをインストール3.2 /etc/squid/squid.confを設定4 squid起動4.1 3128ポート開放4.2 各種端末で上記プロキシを設定 …

Android版ChromiumをVirtualBoxにインストールしたUbuntuでビルドしてみる

「Chromium」はChromeの開発ソースが公開されたプロジェクトです。  www.chromium.org  1 userGet the Code: Checkou …

VirtualBoxにUbuntu18.04をインストール(SSH接続するまで)

2019年も変わらずLinuxディストリシェアトップをキープしたUbuntuをVirtualBoxでインストールします。  マイナビニュース  7 usersDebian …

 

shingo.7k24
 

東京在勤、職歴20年越え中年ITエンジニアです。まだ開発現場で頑張っています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。

私と同じく、今後IT業界で生計を立てて行きたいと考えている方や、技術共有したいけどフリーランスで孤独、といった方と一緒に成長、知識共有して行けたら楽しいな、と思っています。