汎用分析環境の構築(準備編)
汎用分析環境の構築(準備編):
いつ、何時、だれの挑戦でも受ける。(by アントニオ猪木)
データサイエンティストたるもの、当然このような矜持をもって業務にあたる必要があると考える。(嘘)
実際のところ、客先を含めたさまざまな環境で、いろいろな分析を実行することが多いので、楽に仕事ができるように共通基盤となるような環境を作っておきたいと思います。
今回はベースとなる下回りの環境構築を実施。
Vagrant with Virtualboxで以下の環境を作る。
こういう時、Vagrantのネットワーク設定は本当に楽にできるので助かる。具体的なVagrantfileの内容は以下の通り
master、workerを同時に上げたい場合は、Vagrantfileと同じディレクトリで以下を実行。
master、workerのいずれかを上げたい場合は、以下を実行。
以降の作業はmasterからAnsibleにより実施。
同様にworker001側にもvagrant@master:~/.ssh/ansible-keys.pubの内容をvagrant@worker001:~/.ssh/authorized_keysに追記する。(not上書き)
パスワードなしでmaster -> worker001にSSHログインできることを確認。
リポジトリの向き先を理研に変えつつ、pipで新しめのAnsibleを導入。
ansible-playbookは以下。
https://github.com/ken223/ansible-docker-analyzer
ホスト側で以下のURLにアクセス
http://192.168.32.10:3000
admin/adminでログイン後、データソースの選択画面で以下を選択
Dashboardは以下から適当なものを選ぶことになる。
https://grafana.com/dashboards
先ほどのansibleを実行するとworker001とmasterにprometheus-node-exporterが入っているので、"Host Stats - Prometheus Node Exporter - pre 0.16.0"を選択。
Dashboardの"+Import"ボタンを押すとインポート画面になる。
Grafana.com Dashboardに貼り付ける内容は"718"だった。
追加したダッシュボードを見ると以下のようになっているはず。
目的
いつ、何時、だれの挑戦でも受ける。(by アントニオ猪木)データサイエンティストたるもの、当然このような矜持をもって業務にあたる必要があると考える。(嘘)
実際のところ、客先を含めたさまざまな環境で、いろいろな分析を実行することが多いので、楽に仕事ができるように共通基盤となるような環境を作っておきたいと思います。
今回はベースとなる下回りの環境構築を実施。
本記事のゴール
- Windows10上にVagrantで複数のVM(Ubuntu18.04)を立ち上げる
- Ansibleを利用してdockerをインストール
- リソース状況を調べるためにprometheus+grafanaでリソース状況を可視化する(導入はAnsible)
対象バージョン
- ホストOS:Windows10
- ゲストOS:Ubuntu18.04.1
- Virtualbox:5.2
- Vagrant:2.1.5
- Ansible: 2.7.0
- prometheus:2.1.0
- grafana:5.3.0
作業内容
Vagrantでの複数VM立ち上げ
Vagrant with Virtualboxで以下の環境を作る。こういう時、Vagrantのネットワーク設定は本当に楽にできるので助かる。具体的なVagrantfileの内容は以下の通り
Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.provider "virtualbox" do |vb| # Customize the amount of memory on the VM: vb.memory = "1024" end config.vm.define :master do | master | master.vm.hostname = "master" master.vm.network :private_network, ip: "192.168.32.10" master.vm.network :private_network, ip: "192.168.33.10", virtualbox__intnet: "intnet" end config.vm.define :worker001 do | worker001 | worker001.vm.hostname = "worker001" worker001.vm.network :private_network, ip: "192.168.33.20", virtualbox__intnet: "intnet" end end
λ vagrant up
λ vagrant up master もしくは λ vagrant up worker001
Ansibleでの監視環境構築
以降の作業はmasterからAnsibleにより実施。λ vagrant ssh master # 内部通信用の鍵を作成 vagrant@master:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): /home/vagrant/.ssh/ansible-keys 略 vagrant@master:~$ cat ~/.ssh/ansible-keys.pub >> ~/.ssh/authorized_keys
パスワードなしでmaster -> worker001にSSHログインできることを確認。
vagrant@master:~$ ssh -i ~/.ssh/ansible-keys vagrant@192.168.33.20 Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-36-generic x86_64) vagrant@master:~$ ssh -i ~/.ssh/ansible-keys vagrant@192.168.33.10 Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-36-generic x86_64)
vagrant@master:~$ sudo sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu%http://ftp.riken.go.jp/Linux/ubuntu%g" /etc/apt/sources.list vagrant@master:~$ sudo apt update vagrant@master:~$ sudo apt install python3-pip vagrant@master:~$ sudo pip3 install ansible
https://github.com/ken223/ansible-docker-analyzer
Ansible実行
vagrant@master:~$ git clone https://github.com/ken223/ansible-docker-analyzer.git vagrant@master:~$ cd ansible-docker-analyzer/ vagrant@master:~/ansible-docker-analyzer$ sh deploy.sh
動作確認
ホスト側で以下のURLにアクセスhttp://192.168.32.10:3000
admin/adminでログイン後、データソースの選択画面で以下を選択
Dashboardは以下から適当なものを選ぶことになる。
https://grafana.com/dashboards
先ほどのansibleを実行するとworker001とmasterにprometheus-node-exporterが入っているので、"Host Stats - Prometheus Node Exporter - pre 0.16.0"を選択。
Dashboardの"+Import"ボタンを押すとインポート画面になる。
Grafana.com Dashboardに貼り付ける内容は"718"だった。
追加したダッシュボードを見ると以下のようになっているはず。
コメント
コメントを投稿