前置き
- 分析環境について考える(その3:pyenv+Anaconda[Python、R]+jupyter+Rstudioのインストール) の続き
- VirtualBox環境でvagrantを利用してインストールを前提に記載
分析環境構築の流れ
- 以下流れで仮想環境を構築していく
No. | 内容 |
---|---|
1 | 全体像 |
2 | VirtualBox+vagrantで仮想環境を構築 |
3 | pyenv+Anaconda[Python、R]+jupyter+Rstudioのインストール |
4 | postgreSQL+Pgadmin4のインストール |
環境
- ホストOS:Windows7(64bit)
- ゲストOS:Ubuntu14.04(64bit)
ソフトウェアをインストールする
対象ソフトウェア
- PostgreSQL9.6
- Pgadmin4
インストール方法
- Vagrantでプロビジョニングする
プロビジョニングスクリプト
PostgreSQLとPgadmin4をインストール
- wgetで最新版のPostgreSQLをダウンロード
- ロールは特に作成せず、postgresユーザにパスワードを付与する
- クライアントは、Pgadmin4を利用してブラウザ上で操作する
- データベースをマシン起動時に立ち上がるように「/etc/rc.local」に書き込む
※コードはprovision_libs.shに記載
provision_libs.sh
#!/bin/bash
# ==============================
# postgreSQL9.6のインストール
# ==============================
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-9.6
# postgresユーザにパスワードを付与する
sudo su - postgres -c "psql -c \"alter role postgres with password 'postgres'\""
# リモート接続設定
sudo echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf
# ==============================
# Pgadmin4インストール
# ==============================
# パッケージインストール
conda install -y psycopg2
# pip upgrade
pip install --upgrade pip
# Pgadmin4インポート
wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py3-none-any.whl
pip install pgadmin4-1.1-py3-none-any.whl
rm pgadmin4-1.1-py3-none-any.whl
# ファイルの編集
sed -i -e "s/DEFAULT_SERVER = 'localhost'/DEFAULT_SERVER = '0.0.0.0'/g" ./.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/pgadmin4/config.py
初回起動時の設定
- Pgadmin4の初回起動時には、以下コマンドを実行して「Email address」と「Password」を入力する
Ubuntu
$ python /home/vagrant/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/pgadmin4/pgAdmin4.py
接続の確認
- 以下アドレスを入力し画面を表示
URL:http://192.168.33.10:5050/ - ログイン時に「Email address」と「Password」を入力
最後に
- マシン自動起動設定を有効にするために、再起動する
その他
パスワード認証の省略
- ホームディレクトリに以下ファイルを設定することで、ログイン時にパスワード認証を省略できる
.pgpass
# {ip}:{port}:{dbname}:{dbuser}:{password}
localhost:5432:test:test:test