汎用分析環境の構築(準備編)

汎用分析環境の構築(準備編):


目的

いつ、何時、だれの挑戦でも受ける。(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で以下の環境を作る。



for_testing.png


こういう時、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 
master、workerを同時に上げたい場合は、Vagrantfileと同じディレクトリで以下を実行。

λ vagrant up 
master、workerのいずれかを上げたい場合は、以下を実行。

λ 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 
同様にworker001側にもvagrant@master:~/.ssh/ansible-keys.pubの内容をvagrant@worker001:~/.ssh/authorized_keysに追記する。(not上書き)

パスワードなしで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) 
リポジトリの向き先を理研に変えつつ、pipで新しめのAnsibleを導入。

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 
ansible-playbookは以下。
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でログイン後、データソースの選択画面で以下を選択



スクリーンショット (9).png


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"だった。

追加したダッシュボードを見ると以下のようになっているはず。



スクリーンショット (11).png


コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)