ラベル pgweb の投稿を表示しています。 すべての投稿を表示
ラベル pgweb の投稿を表示しています。 すべての投稿を表示

2022年3月30日水曜日

k3sで同一ポッド内にPostgreSQLとpgwebを配置する(local永続ボリューム使用)

pgwebはPostgreSQLのwebインターフェイスです。k3sで同一ポッド内にPostgreSQLとpgwebを配置するには、以下の手順を実行します(注:pgwebのarmの32ビットイメージは無いようです)。PostgreSQLのデータはlocal永続ボリュームに保存します。

実行手順

1. PostgreSQLデータ格納用ディレクトリを作成
以下のコマンドでPostgreSQLデータ格納用ディレクトリを作成します。
sudo mkdir -p /var/pgdata

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-pg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

sudo k3s kubectl apply -f ./local-pg-pvc.yml

4. pgwebとPostgrelSQLのDeploymentの作成
以下のコマンドでpgwebとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > pgweb-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgweb-pg-deployment
  labels:
    app: pgweb-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgweb-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: pgweb-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_PASSWORD
          value: mypostgres
        - name: POSTGRES_DB
          value: pgweb
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: pgweb
        image: sosedoff/pgweb
        env:
        - name: DATABASE_URL
          value: postgres://postgres:postgres@127.0.0.1:5432/pgweb?sslmode=disable
        ports:
        - containerPort: 8081
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
EOF

sudo k3s kubectl apply -f ./pgweb-pg-deployment.yml

5. pgwebとPostgreSQLのサービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > pgweb-pg-service.yml
apiVersion: v1
kind: Service
metadata:
  name: pgweb-pg-service
spec:
  selector:
    app: pgweb-pg
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx  # 外部からアクセスできるk3sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8081
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

sudo k3s kubectl apply -f ./pgweb-pg-service.yml

ブラウザから以下のURLからpgwebにアクセスします。
http://<k3sをインストールしたホストのIP>:8080/

2022年3月28日月曜日

Microk8sで同一ポッド内にPostgreSQLとpgwebを配置する(local永続ボリューム使用)

pgwebはPostgreSQLのwebインターフェイスです。Microk8sで同一ポッド内にPostgreSQLとpgwebを配置するには、以下の手順を実行します。PostgreSQLのデータはlocal永続ボリュームに保存します。

実行手順

1. PostgreSQLデータ格納用ディレクトリを作成
以下のコマンドでPostgreSQLデータ格納用ディレクトリを作成します。
sudo mkdir -p /var/pgdata

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-pg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

microk8s kubectl apply -f ./local-pg-pvc.yml

4. pgwebとPostgrelSQLのDeploymentの作成
以下のコマンドでpgwebとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > pgweb-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgweb-pg-deployment
  labels:
    app: pgweb-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgweb-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: pgweb-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_PASSWORD
          value: mypostgres
        - name: POSTGRES_DB
          value: pgweb
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: pgweb
        image: sosedoff/pgweb
        env:
        - name: DATABASE_URL
          value: postgres://postgres:postgres@127.0.0.1:5432/pgweb?sslmode=disable
        ports:
        - containerPort: 8081
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
EOF

microk8s kubectl apply -f ./pgweb-pg-deployment.yml

5. pgwebとPostgreSQLのサービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > pgweb-pg-service.yml
apiVersion: v1
kind: Service
metadata:
  name: pgweb-pg-service
spec:
  selector:
    app: pgweb-pg
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx   # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8081
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

microk8s kubectl apply -f ./pgweb-pg-service.yml

ブラウザから以下のURLからpgwebにアクセスします。
http://<Microk8sをインストールしたホストのIP>:8080/

2022年2月13日日曜日

Minikubeで同一ポッド内にPostgreSQLとpgwebを配置する(local永続ボリューム使用)

pgwebはPostgreSQLのwebインターフェイスです。Minikubeで同一ポッド内にPostgreSQLとpgwebを配置するには、以下の手順を実行します。PostgreSQLのデータはlocal永続ボリュームに保存します。

実行手順

1. PostgreSQLデータ格納用ディレクトリを作成
以下のコマンドでPostgreSQLデータ格納用ディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/pgdata

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-pg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

kubectl apply -f ./local-pg-pvc.yml

4. pgwebとPostgrelSQLのDeploymentの作成
以下のコマンドでpgwebとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > pgweb-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgweb-pg-deployment
  labels:
    app: pgweb-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pgweb-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: pgweb-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_PASSWORD
          value: mypostgres
        - name: POSTGRES_DB
          value: pgweb
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: pgweb
        image: sosedoff/pgweb
        env:
        - name: DATABASE_URL
          value: postgres://postgres:postgres@127.0.0.1:5432/pgweb?sslmode=disable
        ports:
        - containerPort: 8081
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
EOF

kubectl apply -f ./pgweb-pg-deployment.yml

5. pgwebとPostgreSQLのサービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > pgweb-pg-service.yml
apiVersion: v1
kind: Service
metadata:
  name: pgweb-pg-service
spec:
  selector:
    app: pgweb-pg
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8081
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

kubectl apply -f ./pgweb-pg-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/pgweb-pg-service 8080:8080 5432:5432

ブラウザから以下のURLからpgwebにアクセスします。
http://<MinikubeをインストールしたホストのIP>:8080/

2021年11月23日火曜日

DockerでpgwebとPostgreSQL14のコンテナーを構築する

pgwebはPostgreSQLのwebインターフェイスです。pgwebとPostgreSQLのコンテナーをDocker上に構築します。

○pgwebの画面

ブラウザからhttp://<Dockerホスト>:8081/にアクセスします。
サーバ:db、ユーザ:postgres、パスワード:postgres、データベース:pgwebを指定します。

構築方法

1.DockerとDocker Composeをインストールしていない場合は、以下の手順を実行します。
以下のページを参照してDockerとDocker Composeをインストールします。

Debian 11(Bullseye)にDocker/Docker Compose V2系をインストールする

Ubuntu 20.04にDocker/Docker Compose V2系をインストールする

2.以下のdocker-compose.ymlを使用して、pgwebとPostgreSQL14のコンテナーを構築する事ができます。
docker-compose.yml
version: "3.9"
services:
  pgweb:
    container_name: pgweb
    restart: always
    image: sosedoff/pgweb
    ports: 
      - "8081:8081" 
    environment:
      - DATABASE_URL=postgres://postgres:postgres@db:5432/pgweb?sslmode=disable
    depends_on:
      - db
  db:
    image: postgres:14-alpine
    environment:
      POSTGRES_DB: pgweb
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "pgwebdb-data:/var/lib/postgresql/data"
volumes:
  pgwebdb-data:
    driver: local

3.サービスの実行
サービスを起動する場合は、以下のコマンドを実行します。
docker compose up -d

サービスを停止する場合は、以下のコマンドを実行します。
docker compose down

2021年9月30日木曜日

Rocky Linux 8.4にブラウザベースSQLクライアントpgwebとPostgreSQLをインストールする

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面

インストール手順

1. PostgreSQL13をインストール
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo rpm -Uvh pgdg-redhat-repo-latest.noarch.rpm

sudo dnf -qy module disable postgresql

sudo dnf -y update

sudo dnf -y install postgresql13-server postgresql13-devel postgresql13-contrib

sudo systemctl enable postgresql-13

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

echo "listen_addresses='*'" | sudo tee -a /var/lib/pgsql/13/data/postgresql.conf

sudo sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/pgsql/13/data/pg_hba.conf

sudo sed -i 's#^host.*all.*all.*::1/128.*ident#host    all             all             ::1/128    password#g' /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         192.168.1.0/24          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf
# ネットワーク環境によって変更してください。
sudo systemctl start postgresql-13.service

sudo su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user test with password 'test';
"
psql -c "
create database test owner test encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
"
EOF

2. SELinuxの無効化
sudo setenforce 0
sudo getenforce
sudo sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3. firewallで8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

4. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.8/pgweb_linux_amd64.zip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

5. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします
接続先にlocalhost、ユーザ名/パスワード/接続先DBにtestを指定してください。

関連情報

・pgwebのgithubリポジトリ
https://github.com/sosedoff/pgweb

2021年9月18日土曜日

Debian 11(Bullseye)にブラウザベースSQLクライアントpgwebとPostgreSQLをインストールする

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面

インストール方法

1. PostgreSQL13のインストール
以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install postgresql-13

echo "listen_addresses='*'" | sudo tee -a /etc/postgresql/13/main/postgresql.conf

sudo sed -i -e 's|^host.*all.*all.*127\.0\.0\.1\/32.*md5|#host    all             all             127.0.0.1/32            md5|' /etc/postgresql/13/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" | sudo tee -a /etc/postgresql/13/main/pg_hba.conf

echo "host    all         all         192.168.1.0/24          password" | sudo tee -a /etc/postgresql/13/main/pg_hba.conf
※ネットワーク環境によって適宜変更してください

sudo systemctl restart postgresql.service

sudo su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user test with password 'test';
"
psql -c "
create database test owner test encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
"
EOF
※適宜パスワードを変更してください。

2. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.8/pgweb_linux_amd64.zip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

3. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします

関連情報

・pgwebのgithubリポジトリ
https://github.com/sosedoff/pgweb

2021年8月20日金曜日

AlmaLinux 8にブラウザベースSQLクライアントpgwebとPostgreSQLをインストールする

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面

インストール手順

1. PostgreSQL13をインストール
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo rpm -Uvh pgdg-redhat-repo-latest.noarch.rpm

sudo dnf -qy module disable postgresql

sudo dnf -y update

sudo dnf -y install postgresql13-server postgresql13-devel postgresql13-contrib

sudo systemctl enable postgresql-13

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

echo "listen_addresses='*'" | sudo tee -a /var/lib/pgsql/13/data/postgresql.conf

sudo sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/pgsql/13/data/pg_hba.conf

sudo sed -i 's#^host.*all.*all.*::1/128.*ident#host    all             all             ::1/128    password#g' /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         192.168.1.0/24          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf
# ネットワーク環境によって変更してください。
sudo systemctl start postgresql-13.service

sudo su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user test with password 'test';
"
psql -c "
create database test owner test encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
"
EOF

2. SELinuxの無効化
sudo setenforce 0
sudo getenforce
sudo sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3. firewallで8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

4. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.8/pgweb_linux_amd64.zip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

5. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします

関連情報

・pgwebのgithubリポジトリ
https://github.com/sosedoff/pgweb

2020年5月28日木曜日

VagrantでpgwebとPostgreSQL12がインストールされた仮想マシン(CentOS 8.1)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面

〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL12をインストールした仮想マシン(CentOS 8.1)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://<仮想マシンのアドレス>:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-8.1"
  config.vm.hostname = "co81pgwebpg12"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co81pgwebpg12"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 4096
  end
config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
dnf -y install langpacks-ja
localectl set-locale LANG=ja_JP.UTF-8
dnf install -y epel-release
dnf check-update
dnf -y update
timedatectl set-timezone Asia/Tokyo

# download and install postgresql.
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
rpm -Uvh pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql

dnf -y update
dnf -y install postgresql12-server postgresql12-devel postgresql12-contrib
systemctl enable postgresql-12

# initialize postgresql server
/usr/pgsql-12/bin/postgresql-12-setup initdb

echo "listen_addresses='*'" >> /var/lib/pgsql/12/data/postgresql.conf

sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/pgsql/12/data/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /var/lib/pgsql/12/data/pg_hba.conf
echo "host    all         all         ::1/128          password" >> /var/lib/pgsql/12/data/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /var/lib/pgsql/12/data/pg_hba.conf
systemctl start postgresql-12.service

# create users and databases...
su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user test with password 'test';
"
EOF
export PGPASSWD=psotgres

systemctl restart postgresql-12.service
su - postgres << EOF
createdb test
psql -c "
alter database test owner to test;
"
EOF

# install pgweb
yum -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.6/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb
cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.101:8080/'
echo 'host:127.0.0.1, user: postgres, password: postgres'

SHELL
end

2020年4月27日月曜日

Ubuntu 20.04にpgwebをインストールする

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇インストール方法
1. もし、接続可能なPostgreSQLが無ければ、以下の記事のPostgreSQLのインストール手順を実行します。
Ubuntu 20.04にPostgreSQL12(OS標準)をインストールして、testデータベース・testユーザを作成する

2. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.6/pgweb_linux_amd64.zip

sudo apt-get -y install unzip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

3. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします

〇関連情報
pgwebに関する他の情報はこちらを参照してください。

2020年4月14日火曜日

Debian 10(Buster)にpgwebをインストールする

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇インストール方法
1. もし、接続可能なPostgreSQLが無ければ、以下の記事のPostgreSQLのインストール手順を実行します。
-> Debian 10(Buster)にPostgreSQL12とtestデータベース・testユーザを作成する

2. 以下のコマンドを実行してpgwebをインストールします。
wget https://github.com/sosedoff/pgweb/releases/download/v0.11.6/pgweb_linux_amd64.zip

unzip pgweb_linux_amd64.zip

sudo mkdir -p /opt/pgweb

sudo mv pgweb_linux_amd64 /opt/pgweb

cat << EOF | sudo tee /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pgweb

sudo systemctl start pgweb

3. ブラウザからhttp://<pgwebをインストールしたホストまたはIPアドレス>:8080/ にアクセスします

2019年11月28日木曜日

Dockerでpgweb(v0.11.4)がインストールされたコンテナ(Alpine 3.10ベース)を構築する

pgwebはPostgreSQLに対応するwebフロントエンドです。Go言語で開発されています。

○pgwebの画面

○構築方法
以下の手順で、pgwebのコンテナを構築・実行します。

1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t mypgweb .

Dockerfile
FROM alpine:3.10
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.11.4/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
EXPOSE 8081
CMD ["/pgweb_linux_amd64", "-s", "--sessions", "--bind=0.0.0.0", "--listen=8081"]

2. pgwebコンテナの実行
docker run --restart=always -p 8081:8081 mypgweb

2019年5月7日火曜日

Dockerでpgweb(v0.11.2)がインストールされたコンテナ(Alpine 3.9)を構築する

pgwebはPostgreSQLに対応するwebフロントエンドです。

○pgwebの画面


○構築方法
以下の手順で、pgwebとPostgreSQLのコンテナを構築・実行します。

1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t mypgweb .

Dockerfile
FROM alpine:3.9
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.11.2/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
  && cp /pgweb_linux_amd64 /opt/pgweb \
  && rm /pgweb_linux_amd64
EXPOSE 8080
VOLUME /opt/pgweb
CMD ["/opt/pgweb/pgweb_linux_amd64", "--sessions", "--bind=0.0.0.0", "--listen=8080"]

2. pgwebとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pgweb:
    image: mypgweb
    container_name: "pgweb"
    volumes:
      - "pgweb-data:/opt/pgweb"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres:11.2-alpine
    environment:
      POSTGRES_DB: pgweb
      POSTGRES_USER: pgweb
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "postgres-data:/var/lib/postgresql/data"
volumes:
  postgres-data:
    driver: local
  pgweb-data:
    driver: local

3. ブラウザからhttp://<Dockerホスト名またはIP>:8080/にアクセス

〇関連情報
・プロジェクトwebサイト
http://sosedoff.github.io/pgweb/

2018年7月18日水曜日

Dockerでpgweb、PostgreSQL 10.4がインストールされたコンテナ(Alpine 3.7)を構築する

pgwebはPostgreSQLに対応するwebフロントエンドです。

○pgwebの画面

○構築方法
以下の手順で、pgwebとPostgreSQL 10.4のコンテナを構築・実行します。
1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t pgweb .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
  && cp /pgweb_linux_amd64 /opt/pgweb \
  && rm /pgweb_linux_amd64
EXPOSE 8080
VOLUME /opt/pgweb
CMD ["/opt/pgweb/pgweb_linux_amd64", "--sessions", "--bind=0.0.0.0", "--listen=8080"]

2. pgwebとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pgweb:
    image: pgweb
    container_name: "pgweb"
    volumes:
      - "pgweb-data:/opt/pgweb"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres:10.4-alpine
    environment:
      POSTGRES_USER: pgweb
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "postgres-data:/var/lib/postgresql/data"
volumes:
  postgres-data:
    driver: local
  pgweb-data:
    driver: local

3. ブラウザからhttp://<Dockerホスト名またはIP>:8080/にアクセス
ユーザ名pgweb、パスワードpgwebを指定します。


○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年7月13日金曜日

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Ubuntu18.04)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Ubuntu18.04)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804pg10pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804pg10pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.109", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年7月8日日曜日

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Ubuntu16.04)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Ubuntu16.04)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604pg10pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604pg10pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.109", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年7月3日火曜日

VagrantでpgwebとPostgreSQL10がインストールされた仮想マシン(Debian Stretch/9.4)を構築する

pgwebはPostgreSQLのwebインターフェイスです。

〇pgwebの画面


〇構築方法
以下のVagrantfileを使用して、pgwebとPostgreSQL10をインストールした仮想マシン(Debian Stretch/9.4)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.109", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade


# install postgresql
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get -y install postgresql-10

echo "listen_addresses='*'" >> /etc/postgresql/10/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/10/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf

su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 dwh
psql -c "
alter user postgres with password 'postgres';
create user dwh with password 'dwh';
grant all privileges on database dwh to dwh;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.12/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end


○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年2月7日水曜日

VagrantでpgwebとPostgreSQL9.6がインストールされた仮想マシン(CentOS7.4)を構築する

pgwebはブラウザベースのPostgreSQLフロントエンドです。
以下のVagrantfileを使用して、pgwebとPostgreSQLをインストールした仮想マシン(CenttOS7.4)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  # private network
  config.vm.network "private_network", ip: "192.168.55.118", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.118", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
yum check-update
yum -y update

# download and install postgresql.
wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
rpm -Uvh pgdg-centos96-9.6-3.noarch.rpm
yum -y update
yum -y install postgresql96-server postgresql96-devel postgresql96-contrib
systemctl enable postgresql-9.6

# initialize postgresql server
/usr/pgsql-9.6/bin/postgresql96-setup initdb
echo "listen_addresses='*'" >> /var/lib/pgsql/9.6/data/postgresql.conf
echo "standard_conforming_strings=off" >> /var/lib/pgsql/9.6/data/postgresql.conf
sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/pgsql/9.6/data/pg_hba.conf
echo "host    all         all         127.0.0.1/32          password" >> /var/lib/pgsql/9.6/data/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /var/lib/pgsql/9.6/data/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /var/lib/pgsql/9.6/data/pg_hba.conf
systemctl start postgresql-9.6.service
su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
"
EOF
echo "postgres:postgres" | chpasswd

# install pgweb
yum -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb
cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb
[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.118:8080/'
echo 'user: postgres, password: postgres'
SHELL
end

〇pgwebの画面



○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年1月16日火曜日

VagrantでpgwebとPostgreSQLがインストールされた仮想マシン(Arch Linux)を構築する

以下のVagrantfileを使用して、pgwebとPostgreSQLをインストールした仮想マシン(Arch Linux)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.107:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "archlinux/archlinux"
  config.vm.hostname = "alpgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "alpgweb"
     vbox.cpus = 4
     vbox.memory = 4096
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.107", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.107", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL


# update packages
pacman -Syy

# set locale
pacman --noconfirm -S  locale-gen
sed -i -e 's/#ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen

# install postgresql
pacman --noconfirm -S  postgresql

# initialize postgresql server
sudo -u postgres -H initdb --locale ja_JP.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
echo "listen_addresses='*'" >> /var/lib/postgres/data/postgresql.conf
echo "standard_conforming_strings=off" >> /var/lib/postgres/data/postgresql.conf
#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/postgres/data/pg_hba.conf
echo "host    all         all         127.0.0.1/32          password" >> /var/lib/postgres/data/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /var/lib/postgres/data/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /var/lib/postgres/data/pg_hba.conf
chown -R postgres:postgres /var/lib/postgres/data/
systemctl start postgresql.service
su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
"
EOF
echo "postgres:postgres" | chpasswd

# install pgweb
pacman --noconfirm -S unzip wget
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.107:8080/'
echo 'user: postgres, password: postgres'

SHELL
end

〇pgwebの画面



○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年1月9日火曜日

Dockerでpgwebがインストールされたコンテナ(Alpine 3.7)を構築する

pgwebはPostgreSQLに対応するwebフロントエンドです。
以下の手順で、pgwebとPostgreSQLのコンテナを構築・実行します。

○構築方法
1. pgwebイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t pgweb .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip \
  && unzip pgweb_linux_amd64.zip \
  && rm -f pgweb_linux_amd64.zip \
  && mkdir -p /opt/pgweb \
  && cp /pgweb_linux_amd64 /opt/pgweb \
  && rm /pgweb_linux_amd64
EXPOSE 8080
VOLUME /opt/pgweb
CMD ["/opt/pgweb/pgweb_linux_amd64", "--sessions", "--bind=0.0.0.0", "--listen=8080"]

2. pgwebとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pgweb:
    image: pgweb
    container_name: "pgweb"
    volumes:
      - "pgweb-data:/opt/pgweb"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres:9.6-alpine
    environment:
      POSTGRES_USER: pgweb
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "postgres-data:/var/lib/postgresql/data"
volumes:
  postgres-data:
    driver: local
  pgweb-data:
    driver: local

3. ブラウザからhttp://:8080/にアクセス

○pgwebの画面


○その他
・pgwebとMySQLコンテナの停止・削除(docker-compose.ymlがあるフォルダで実行)
docker-compose down

・永続化ボリュームの削除
docker volume rm pgweb_pgweb-data
docker volume rm pgweb_postgres-data


○関連情報
・pgwebに関する他の記事はこちらを参照してください。

2018年1月7日日曜日

VagrantでpgwebとPostgreSQL9.6がインストールされた仮想マシン(Debian Stretch/9.3)を構築する

pgwebはブラウザベースのPostgreSQLフロントエンドです。
以下のVagrantfileを使用して、pgwebとPostgreSQLをインストールした仮想マシン(Debian Stretch/9.3)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.109:8080/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93pgweb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93pgweb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.109", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install postgresql
apt-get -y install postgresql-9.6 
echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf
echo "standard_conforming_strings=off" >> /etc/postgresql/9.6/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/9.6/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/9.6/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/9.6/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/9.6/main/pg_hba.conf

su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl enable pgweb
systemctl start pgweb

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end

〇pgwebの画面



○関連情報
・pgwebに関する他の記事はこちらを参照してください。