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

2022年4月3日日曜日

k3sでlocal永続ボリュームを使用するCouchDBをデプロイする

k3sでlocal永続ボリュームを使用するCouchDBをデプロイするには、以下の手順を実行します(注: 32bit ARM版のイメージは無いようです)。

実行手順

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

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

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

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

4. Deploymentの作成
以下のコマンドでCouchDBのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > couchdb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchdb-deployment
  labels:
    app: mycouchdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mycouchdb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mycouchdb
    spec:
      containers:
      - name: mycouchdb
        image: couchdb:3.2
        env:
        - name: COUCHDB_USER
          value: admin
        - name: COUCHDB_PASSWORD
          value: mycouchdb
        ports:
        - containerPort: 5984
        volumeMounts:
        - name: couchdb-data
          mountPath: /opt/couchdb/data
      volumes:
      - name: couchdb-data
        persistentVolumeClaim:
          claimName: local-couchdb-pvc
EOF

sudo k3s kubectl apply -f ./couchdb-deployment.yml

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

sudo k3s kubectl apply -f ./couchdb-service.yml

ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。
ユーザ名admin、パスワードmycouchdbでログインします。

2022年3月17日木曜日

Microk8sでlocal永続ボリュームを使用するCouchDBをデプロイする

Microk8sでlocal永続ボリュームを使用するCouchDBをデプロイするには、以下の手順を実行します。

実行手順

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

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

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

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

4. Deploymentの作成
以下のコマンドでCouchDBのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > couchdb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchdb-deployment
  labels:
    app: mycouchdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mycouchdb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mycouchdb
    spec:
      containers:
      - name: mycouchdb
        image: couchdb:3.2
        env:
        - name: COUCHDB_USER
          value: admin
        - name: COUCHDB_PASSWORD
          value: mycouchdb
        ports:
        - containerPort: 5984
        volumeMounts:
        - name: couchdb-data
          mountPath: /opt/couchdb/data
      volumes:
      - name: couchdb-data
        persistentVolumeClaim:
          claimName: local-couchdb-pvc
EOF

microk8s kubectl apply -f ./couchdb-deployment.yml

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

microk8s kubectl apply -f ./couchdb-service.yml

ブラウザからhttp://<サーバ名またはIPアドレス>:5984/_utils/index.htmlにアクセスします。
ユーザ名admin、パスワードmycouchdbでログインします。

2022年3月2日水曜日

MinikubeでGlusterFS上の永続ボリュームを使用するCouchDBをデプロイする

MinikubeでGlusterFS上の永続ボリュームを使用するCouchDBをデプロイするには、以下の手順を実行します。

実行手順

1. MinikubeでのGlusterfs準備
※GlusterFSクラスターは事前に準備しておきます。

※minikube内の/etc/hostsにエントリを追加するためのファイルにエントリ追加
mkdir -p ~/.minikube/files/etc
echo 'xxx.xxx.xxx.xxx glusternode1' >> ~/.minikube/files/etc/hosts
echo 'xxx.xxx.xxx.xxx glusternode2' >> ~/.minikube/files/etc/hosts
echo 'xxx.xxx.xxx.xxx glusternode3' >> ~/.minikube/files/etc/hosts
IPアドレスとホスト名は適宜変更してください。

※minikube内にglusterfs-clientをインストールする
minikube ssh

sudo apt-get update && sudo apt-get install -y glusterfs-client

exit

3. Endpointsの作成
以下のIPアドレスを適宜変更して、Endpointsを作成します。
cat << EOF > glusterfs-endpoints.yml
apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-cluster
subsets:
- addresses:
  - ip: xxx.xxx.xxx.xxx
  ports:
  - port: 1
- addresses:
  - ip: xxx.xxx.xxx.xxx
  ports:
  - port: 1
- addresses:
  - ip: xxx.xxx.xxx.xxx
  ports:
  - port: 1
EOF

kubectl apply -f ./glusterfs-endpoints.yml

4. 永続ボリュームの作成
以下のGlusterFSボリューム名(myvolumeの部分)を変更して、永続ボリュームを作成します。
cat << EOF > glusterfs-couchdb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: glusterfs-couchdb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  glusterfs:
    endpoints: glusterfs-cluster
    path: myvolume
    readOnly: false
EOF

kubectl apply -f ./glusterfs-couchdb-pv.yml

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

kubectl apply -f ./glusterfs-couchdb-pvc.yml

4. Deploymentの作成
以下のコマンドでCouchDBのイメージと作成したNFS上の永続ボリュームを使用するDeploymentを作成します。
cat << EOF > couchdb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchdb-deployment
  labels:
    app: mycouchdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mycouchdb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mycouchdb
    spec:
      containers:
      - name: mycouchdb
        image: couchdb:3.2
        env:
        - name: COUCHDB_USER
          value: admin
        - name: COUCHDB_PASSWORD
          value: mycouchdb
        ports:
        - containerPort: 5984
        volumeMounts:
        - name: couchdb-data
          mountPath: /opt/couchdb/data
      volumes:
      - name: couchdb-data
        persistentVolumeClaim:
          claimName: glusterfs-couchdb-pvc
EOF

kubectl apply -f ./couchdb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > couchdb-service.yml
apiVersion: v1
kind: Service
metadata:
  name: couchdb-service
spec:
  selector:
    app: mycouchdb
  ports:
  - protocol: TCP
    port: 5984
    targetPort: 5984
EOF

kubectl apply -f ./couchdb-service.yml

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

ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。
ユーザ名admin、パスワードmycouchdbでログインします。

2022年3月1日火曜日

MinikubeでNFS上の永続ボリュームを使用するCouchDBをデプロイする

MinikubeでNFS上の永続ボリュームを使用するCouchDBをデプロイするには、以下の手順を実行します。

実行手順

1. CouchDBデータ格納用ディレクトリを作成
NFSサーバ上でCouchDBデータ格納用ディレクトリを作成します。パスは適宜変更してください。
sudo mkdir -p /shared_dir/couchdb

sudo chown 5984:5984 /shared_dir/couchdb

2. NFS上に永続ボリュームを作成
以下のコマンドでNFS上に永続ボリュームを作成します。
cat << EOF > nfs-couchdb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-couchdb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  nfs:
    server: xxx.xxx.xxx.xxx # NFSサーバのIPアドレス
    path: "/shared_dir/couchdb"
  mountOptions:
    - nfsvers=4.2
EOF

kubectl apply -f ./nfs-couchdb-pv.yml

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

kubectl apply -f ./nfs-couchdb-pvc.yml

4. Deploymentの作成
以下のコマンドでCouchDBのイメージと作成したNFS上の永続ボリュームを使用するDeploymentを作成します。
cat << EOF > couchdb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchdb-deployment
  labels:
    app: mycouchdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mycouchdb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mycouchdb
    spec:
      containers:
      - name: mycouchdb
        image: couchdb:3.2
        env:
        - name: COUCHDB_USER
          value: admin
        - name: COUCHDB_PASSWORD
          value: mycouchdb
        ports:
        - containerPort: 5984
        volumeMounts:
        - name: couchdb-data
          mountPath: /opt/couchdb/data
      volumes:
      - name: couchdb-data
        persistentVolumeClaim:
          claimName: nfs-couchdb-pvc
EOF

kubectl apply -f ./couchdb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > couchdb-service.yml
apiVersion: v1
kind: Service
metadata:
  name: couchdb-service
spec:
  selector:
    app: mycouchdb
  ports:
  - protocol: TCP
    port: 5984
    targetPort: 5984
EOF

kubectl apply -f ./couchdb-service.yml

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

ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。
ユーザ名admin、パスワードmycouchdbでログインします。

関連情報

Ubuntu 20.04にNFSサーバをインストールする

2022年2月28日月曜日

Minikubeでlocal永続ボリュームを使用するCouchDBをデプロイする

Minikubeでlocal永続ボリュームを使用するCouchDBをデプロイするには、以下の手順を実行します。

実行手順

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

sudo mkdir -p /var/couchdb

exit

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

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

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

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

4. Deploymentの作成
以下のコマンドでCouchDBのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > couchdb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchdb-deployment
  labels:
    app: mycouchdb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mycouchdb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mycouchdb
    spec:
      containers:
      - name: mycouchdb
        image: couchdb:3.2
        env:
        - name: COUCHDB_USER
          value: admin
        - name: COUCHDB_PASSWORD
          value: mycouchdb
        ports:
        - containerPort: 5984
        volumeMounts:
        - name: couchdb-data
          mountPath: /opt/couchdb/data
      volumes:
      - name: couchdb-data
        persistentVolumeClaim:
          claimName: local-couchdb-pvc
EOF

kubectl apply -f ./couchdb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > couchdb-service.yml
apiVersion: v1
kind: Service
metadata:
  name: couchdb-service
spec:
  selector:
    app: mycouchdb
  ports:
  - protocol: TCP
    port: 5984
    targetPort: 5984
EOF

kubectl apply -f ./couchdb-service.yml

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

ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。
ユーザ名admin、パスワードmycouchdbでログインします。

2021年12月4日土曜日

Debian 11(Bullseye)にCouchDBをインストールする

CouchDBはドキュメント指向のデータベースです。

〇CouchDBのWebインターフェイス
ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install curl

curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1

source /etc/os-release

echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" | sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null

sudo apt-get update

sudo apt-get -y install couchdb
インストール時に以下の回答を行います。項目の移動はTABキー、選択はスペースキーで行います。
1.「了解」を選択します

2.standaloneを選択します

3.「0.0.0.0」を入力します

4.adminのパスワードを入力します

5.再度adminのパスワードを入力します

sudo systemctl restart couchdb.service

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

2021年1月28日木曜日

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

CouchDBはドキュメント指向のデータベースです。

〇CouchDBのWebインターフェイス
ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install gnupg ca-certificates

echo "deb https://apache.bintray.com/couchdb-deb focal main" | sudo tee /etc/apt/sources.list.d/couchdb.list

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61
  
sudo apt-get update

sudo apt-get -y install couchdb
インストール時に以下の回答を行います。
※standaloneを選択します
※0.0.0.0を入力します
※adminのパスワードを2回入力します
sudo systemctl restart couchdb.service

関連情報

・CouchDBに関する他の記事はこちらを参照してください。

2020年6月15日月曜日

Debian 10(buster)にCouchDBをインストールする

CouchDBはドキュメント指向のデータベースです。

〇CouchDBのWebインターフェイス
ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。

〇インストール方法
以下のコマンドを実行します。
sudo apt-get -y install curl

echo "deb https://apache.bintray.com/couchdb-deb buster main" | sudo tee -a /etc/apt/sources.list

curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -

sudo apt-get update

sudo apt-get -y install couchdb
※standaloneを選択します
※0.0.0.0を入力します
※adminのパスワードを2回入力します

sudo systemctl restart couchdb.service

2019年6月23日日曜日

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

CouchDBはドキュメント指向のデータベースです。

〇CouchDBのWebインターフェイス

仮想マシン構築後、ブラウザからhttp://192.168.55.106:5984/_utils/index.htmlにアクセスします。

〇構築方法
以下のVagrantfileを使用して、Apache CouchDBをインストールした仮想マシン(Ubuntu18.04)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804couchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804couchdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.106", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.106", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install language-pack-ja
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
timedatectl set-timezone Asia/Tokyo

# install couchdb
apt-get -y install curl
echo "deb https://apache.bintray.com/couchdb-deb bionic main" | sudo tee -a /etc/apt/sources.list
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -
apt-get update
apt-get -y install couchdb

sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /opt/couchdb/etc/default.ini
systemctl restart couchdb.service

echo 'access : http://192.168.55.106:5984/_utils/index.html'

SHELL
end

2018年4月20日金曜日

LXDでCouchDBがインストールされたコンテナを構築する

CouchDBはドキュメント指向のデータベースです。

〇CouchDBの画面


LXDで以下のコマンドを実行して、CouchDBがインストールされたコンテナを構築します。
lxc init ubuntu:16.04 couchdb
lxc config set couchdb user.user-data - < config.yml
lxc start couchdb

config.yml
#cloud-config

package_upgrade: true

hostname: couchdb
manage_etc_hosts: true

runcmd:
  - 'apt-get update'
  - 'apt-get -y install apt-file'
  - 'apt-get update'
  - 'apt-get -y install software-properties-common'
  - 'add-apt-repository -y ppa:couchdb/stable'
  - 'apt-get -y install couchdb'
  - sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /etc/couchdb/default.ini
  - systemctl restart couchdb.service
final_message: "access : http://{IP address of this container}:5984/_utils/index.html"

〇ホストマシンの外部からコンテナにアクセスしたい場合
PORT=5984 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop couchdb

〇コンテナの削除
lxc delete couchdb


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

2018年3月26日月曜日

VagrantでJupyter LabとCouchDBをインストールした仮想マシン(Debian Stretch/9.3)を構築する

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。
以下のVagrantfileで、Jupyter LabとCouchDBをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93jupyterlabcouchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93jupyterlabcouchdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
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 couchdb
echo "deb http://apache.bintray.com/couchdb-deb stretch main" >> /etc/apt/sources.list
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | apt-key add -
apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get -y install couchdb

sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /etc/couchdb/default.ini
systemctl restart couchdb.service


# install anaconda & jupyterlab
wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
chmod +x Anaconda3-5.1.0-Linux-x86_64.sh
./Anaconda3-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda
source /opt/anaconda/bin/activate
pip install --upgrade pip
pip install jupyterlab

# install couchdb driver
pip install couchdb


useradd py
mkdir -p /home/py
chown -R py:py /home/py
sudo -u py bash -c "mkdir /home/py/.jupyter"
sudo -u py bash -c "cat << EOF > /home/py/.jupyter/jupyter_notebook_config.py
conf = get_config()
conf.NotebookApp.ip = '*'
conf.NotebookApp.open_browser = False
conf.NotebookApp.port = 8080
conf.NotebookApp.token = 'jupyter'
EOF"

cat << EOF > /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/jupyter lab
User=py
Group=py
WorkingDirectory=/home/py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable jupyter
sudo systemctl start jupyter


echo 'access : http://192.168.55.101:5984/_utils/index.html'
echo ''
echo 'url for jupyter lab -> http://192.168.55.101:8080/?token=jupyter'

SHELL
end

〇動作確認用コード
import couchdb

# connect to couchdb
couchserver = couchdb.Server("http://localhost:5984/")

# create a db
dbname = "testdb"
if dbname in couchserver:
  db = couchserver[dbname]
else:
  db = couchserver.create(dbname)

# store a document
doc_id, doc_rev = db.save({'message_id': 'hello world!'})

# get a document by id
print(db.get(doc_id))

〇Jupyter Labの画面


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

2018年3月22日木曜日

VagrantでJupyter LabとCouchDBをインストールした仮想マシン(Ubuntu16.04)を構築する

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。
以下のVagrantfileで、Jupyter LabとCouchDBをインストールした仮想マシン(Ubuntu16.04)を構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604jupyterlabcouchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604jupyterlabcouchdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :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
locale-gen ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8

# install couchdb
apt-get install apt-file
apt-get update
apt-get install software-properties-common
add-apt-repository ppa:couchdb/stable
apt-get -y install couchdb

sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /etc/couchdb/default.ini
systemctl restart couchdb.service


# install anaconda & jupyterlab
wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
chmod +x Anaconda3-5.1.0-Linux-x86_64.sh
./Anaconda3-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda
source /opt/anaconda/bin/activate
pip install --upgrade pip
pip install jupyterlab

# install couchdb driver
pip install couchdb


useradd py
mkdir -p /home/py
chown -R py:py /home/py
sudo -u py bash -c "mkdir /home/py/.jupyter"
sudo -u py bash -c "cat << EOF > /home/py/.jupyter/jupyter_notebook_config.py
conf = get_config()
conf.NotebookApp.ip = '*'
conf.NotebookApp.open_browser = False
conf.NotebookApp.port = 8080
conf.NotebookApp.token = 'jupyter'
EOF"

cat << EOF > /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/jupyter lab
User=py
Group=py
WorkingDirectory=/home/py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable jupyter
sudo systemctl start jupyter


echo 'url for couchdb -> http://192.168.55.105:5984/_utils/index.html'
echo ''
echo 'url for jupyter lab -> http://192.168.55.105:8080/?token=jupyter'

SHELL
end

〇動作確認用コード
import couchdb

# connect to couchdb
couchserver = couchdb.Server("http://localhost:5984/")

# create a db
dbname = "testdb"
if dbname in couchserver:
  db = couchserver[dbname]
else:
  db = couchserver.create(dbname)

# store a document
doc_id, doc_rev = db.save({'message_id': 'hello world!'})

# get a document by id
print(db.get(doc_id))

〇Jupyter Labの画面


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

2018年1月17日水曜日

VagrantでApache CouchDBがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

CouchDBはドキュメント指向のデータベースです。
以下のVagrantfileを使用して、Apache CouchDBをインストールした仮想マシン(Debian Stretch/9.3)を構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.101:5984/_utils/index.htmlにアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93couchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93couchdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
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 couchdb
echo "deb http://apache.bintray.com/couchdb-deb stretch main" >> /etc/apt/sources.list
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | apt-key add -
apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get -y install couchdb

sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /opt/couchdb/etc/default.ini
systemctl restart couchdb.service

echo 'access : http://192.168.55.101:5984/_utils/index.html'

SHELL
end

〇CouchDBの画面



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

2017年11月19日日曜日

VagrantでCouchDBをインストールした仮想マシン(Ubuntu16.04)を構築する

以下のVagrantfileを使用して、CouchDBをインストールした仮想マシンを構築することができます。
仮想マシンが構築後、ブラウザからhttp://192.168.55.102:5984/_utils/index.htmlにアクセスしてWeb UIにアクセスできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604couchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604couchdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.102", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.102", :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
locale-gen ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8

# install couchdb
apt-get install apt-file
apt-get update
apt-get install software-properties-common
add-apt-repository ppa:couchdb/stable
apt-get -y install couchdb

sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /etc/couchdb/default.ini
systemctl restart couchdb.service

echo 'access : http://192.168.55.102:5984/_utils/index.html'

SHELL
end

○CouchDBの画面



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

2017年9月15日金曜日

CouchDBをインストールした仮想マシン(CentOS7.3)を構築する

CouchDBをインストールした仮想マシンを構築するには以下のVagrantfileを使用します。

Vagrantfile

VVAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.3"
  config.vm.hostname = "couchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "couchdb"
     vbox.cpus = 4
     vbox.memory = 4096 
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  # private network
  config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.109", :netmask => "255.255.255.0"
  config.vm.network "forwarded_port", guest:22, host:20022, id:"ssh"
  config.vm.provision "shell", inline: <<-SHELL

cat << EOF > /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo
[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el7/x86_64/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF
yum -y install epel-release 
yum -y install couchdb
sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /opt/couchdb/etc/default.ini

cat << EOF > /etc/systemd/system/couchdb
[Unit]
Description=CouchDB
After=syslog.target
After=network.target

[Service]
User=couchdb
Type=simple
ExecStart=/opt/couchdb/bin/couchdb
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=couchdb

[Install] WantedBy=multi-user.target 
EOF

systemctl enable couchdb
systemctl start couchdb
echo 'access : http://192.168.55.109:5984/_utils/index.html'
SHELL
end
構築完了後、ブラウザでhttp://192.168.55.109:5984/_utils/index.htmlにアクセスすると、以下のような画面が表示されます。


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