Tocyukiのブログ

ギターと柔術とプログラミングが好き!

Windows10でHyper-Vを無効化できないときの対応

Windows10ではDocker for WindowsとVirtualBoxが混在できないので、Docker使ってて、VirtualBox使いたくなると結構めんどうなんですよね。。。

なぜかぼくの端末ではインターネット上に転がっている情報をそのまま試すだけではうまくいかず、ちょいとアレンジが必要だったのでメモしておきます。

bcdedit /set {current} hypervisorlaunchtype off

とりあえず上記コマンドを実行して再起動すれば大丈夫でした!

わけわからんちん!

久しぶりに研修を受けた、そんな一日

今日からRedHat主催の「Automation with Ansible」の研修を受けに品川まで行ってまいりました。

↓これ

RHD407 : Automation with Ansible|CTC教育サービス 研修/トレーニング

初日はごくごく基本的なことしかやらなかったので、演習をどんどん進めて最終日に色々と質問しようかなぁと企んでおります。

この研修を参考に社内向けのハンズオン開催しようと思っているのですが、どうやらlightbulbがもとになってるようなので、もうlightbulbをそのまま使うのがなんだかんだ良いかもなぁとか思ったり。

Ansible lightbulb

github.com

エクササイズ

github.com

課題

github.com

回答

github.com

うん、なんだかいけそう。

お昼ごはん

www.mrchicken.jp

ルーティン作れなさすぎてツライ・・・。けんすうさんに癒やされました。

phpIPAMで定期ホストチェックとホスト自動登録をする方法

最近、phpIPAMを弄り倒しております。

こやつかゆいところに手が届くのか届かないのかなかなか触り始めるといろいろうまくいかなかったり、意外と使いにくい部分があったりでいろいろと発見がある毎日でございます。

とりあえず、ホストの存在確認と、ホストの自動登録は定期実行しておきたいなと思いまして、どうすればよいのかなぁと調べてみるとやはりcronで実行させるようですね。

以下のような感じで、実行ユーザーのcronに記載してあげればOKでした!

$ sudo crontab -l -u apache
*/15 * * * * /bin/php /var/www/phpipam/functions/scripts/pingCheck.php
*/15 * * * * /bin/php /var/www/phpipam/functions/scripts/discoveryCheck.php

AWS上にEC2 + RDS(MySQL)の構成でZabbix4.0を構築する

というわけで、監視周りも改善させていくぞ〜!

というのも現在の業務でのZabbixの構成が以下のような感じで各ロケーションにZabbixサーバーを構築し、設定もそれぞれのロケーションに構築しているZabbixサーバーで行っているという状況。

f:id:tocguitar1:20180812151759p:plain

現在、本番運用しているデータセンターが3箇所あり、基本的には同じアプリケーションを運用しているので、各データセンターにZabbix Serverがいると結構めんどくさい。

めんどくさいポイント&デメリットしては以下が挙げられる。

  • 同じアプリの監視を追加・修正するのに全部のZabbixサーバーの設定を変更しなければならない
  • バージョンアップも各Zabbixサーバーで行わなければならず、現状適切にバージョンアップされていない(2.2とかのZabbixが存在していたりする笑)
  • 各データセンターの監視データの確認をそれぞれのZabbixサーバーで見なければいけない。(超めんどくさい!)
  • スクリーンの作成も各Zabbixサーバーで行わなければいけない。(めんどくさすぎてスクリーン作られていない笑)
  • アラート通知の設定も各Zabbixサーバーでやらなければいけない。
  • 以上に挙げたようにめんどくさすぎて監視内容や通知手段、設定内容等に各Zabbixサーバーで差があり、もう監視どころじゃねぇ!

という感じで挙げたらキリがないのですが、そんな感じなのでこういう構成にしようと思います。

f:id:tocguitar1:20180812154055p:plain

構成としてはZabbix Proxy構成に変更するという感じですかね。

AWS環境をもうひとつのデータセンターと見立てて、そこを中心とした運用システムを構築していきたいなぁという目論見であります。

環境

というわけで以下の環境でZabbixサーバーを構築してきます。

  • Zabbix4.0alpha
  • EC2(CentOS7.5)
  • RDS(MySQL5.7)

構築手順

Zabbixのインストール

  • RPMのインストール
$ sudo rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
  • Zabbixサーバー、フロント、エージェント、MySQLのインストール
$ sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get mysql

DB設定

  • データベースの作成
$ mysql -u root -h mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 447
Server version: 5.7.22-log Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.03 sec)

MySQL [(none)]> grant all on zabbix.* to zabbix@`%` identified by '<Password>';
Query OK, 0 rows affected, 1 warning (0.06 sec)
  • テーブル作成および初期データの登録
$ sudo zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u root -h mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p zabbix
  • zabbix_server.confにDB接続情報を記載
$ sudo diff /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.org
92d91
< DBHost=mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
127d125
< DBPassword=<Password>

その他設定

  • Zabbixの自動起動設定およびZabbixの起動
$ systemctl start zabbix-server
$ systemctl status zabbix-server
  • httpdの設定ファイルでタイムゾーンを設定
$ sudo vi /etc/httpd/conf.d/zabbix.conf
- # php_value date.timezone Europe/Riga
+ php_value date.timezone Asia/Tokyo
  • あとはhttp:// IPアドレス or サーバー名/zabbixにアクセスし、初期設定を行う!

そんな感じで

あとは各ロケーションにZabbix Proxyを配置して実際に監視データを取得していきたいと思います〜!

参考

dev.classmethod.jp

phpIPAMをEC2 + RDS(MySQL)の構成で使い倒す 〜インストール編〜

危機管理!!!

というわけでさっそくAWS上にphpIPAMを構築してみる!

環境

  • AWS RDS(MySQL)
  • AWS EC2(CentOS7.5)
  • phpIPAM 1.4

構築手順

  • 以下の公式の手順を参考にしました

phpipam.net

必要なパッケージのインストール

$ sudo yum install httpd mysql php php-cli php-gd php-common php-ldap php-pdo php-pear php-snmp php-xml php-mysql php-mbstring git

CentOS7の標準パッケージに含まれないphp-mcryptをEPELからインストール

$ sudo yum install epel-release
$ sudo yum install php-mcrypt

PHPの設定

  • タイムゾーンの設定
$ grep timezone /etc/php.ini
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Tokyo

Apacheの設定

  • phpIPAMを/var/www/phpipamにインストールするための設定
$ cat /etc/httpd/conf.d/phpipam.conf
Alias /phpipam/ /var/www/phpipam/
<Directory "/var/www/phpipam">
    require all granted
</Directory>
  • Apacheの起動および自動起動設定
$ sudo systemctl enable httpd
$ sudo systemcrl start httpd

phpIPAMのインストール

  • git cloneを行い、モジュールをCloneする
$ cd /var/www
$ sudo git clone https://github.com/phpipam/phpipam.git
Cloning into 'phpipam'...
remote: Counting objects: 18778, done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 18778 (delta 8), reused 17 (delta 7), pack-reused 18752
Receiving objects: 100% (18778/18778), 14.13 MiB | 4.82 MiB/s, done.
Resolving deltas: 100% (13517/13517), done.
  • パーミッション、実行権限の変更を行う
$ sudo chown -R apache:apache /var/www/phpipam
$ cd /var/www/phpipam
$ find . -type f -exec chmod 0644 {} \;
$ find . -type d -exec chmod 0755 {} \;

phpIPAMの設定

  • 設定ファイルの作成
$ cp config.dist.php config.php
$ chown apache:apache config.php
$ chmod 640 config.php
  • DB接続情報とベースURLを以下のように修正
$ sudo diff config.dist.php config.php
6c6
< $db['host'] = 'localhost';
---
> $db['host'] = 'mysql.xxxxxxxxxxxxxxxxxxxxxxxxxx.rds.amazonaws.com';
105c105
< define('BASE', "/");
---
> define('BASE', "/phpipam/");

インストール設定

  • http://サーバ名 or IP アドレス/phpipam/ にアクセスし、「New phpipam installation」を選択する

f:id:tocguitar1:20180811162605p:plain

  • 「Automatic database installation」を選択すると、config.phpに指定したDBに自動的にデータベースとテーブルの作成が行われる

f:id:tocguitar1:20180811162613p:plain

  • MySQL username/MySQL password の欄に、データベース作成の権限を持つユーザのユーザ名とパスワードを入力し、「Install phpipam database」ボタンを押す
    • MySQL database location/MySQL database name には、config.phpに設定した値が表示される

f:id:tocguitar1:20180811162616p:plain

  • 「Database installed successfully!」と表示されたら、「Continue」ボタンを押してインストール完了!

f:id:tocguitar1:20180811162620p:plain

アップデートする場合

  • phpIPAMのバージョンを上げる場合はgit pullを実施するだけ!

phpipam.net

おわりに

とりあえずインストールできたので、これからどんどん使い倒すぞ〜!

AWSの公式チュートリアルが最高だった

こんなぼくでも一応インフラエンジニアやっておりまして、日々さーばーとかすいっちとかこねくり回してるんですわ。

ただ、インフラエンジニアのくせしてAWS童貞なんですね。インフラエンジニアを名乗っておいて、30歳超えてAWS童貞とかもうね、まじで笑えないわけですよ。

一応、運用グループのリーダー的存在であるわけでして、ここはAWSの習得と運用改善を結びつける施策をせにゃいかんと考えてとりあえず、オンプレの各ロケーションにあるZabbixを廃止して、AWS上にZabbixを配置してProxy構成で各ロケーションからデータを一元的に吸い上げて監視したいなと。あとGitLabやAnsibleサーバーもAWS上において、そこから作業するようにしたいなと。

でもAWS全然わからんなと。

そしたらAWSの公式でいろいろチュートリアルがありますがな。とりあえずEC2とRDSの連携、VPC周りを手っ取り早く感触掴みたかったので以下のチュートリアルやってみたら超理解できた。

docs.aws.amazon.com

ほかにもいろいろあるっぽいのでどんどんやってみよ〜!でもお金がどれくらいかかるか全然わからんからそこが怖い・・・。

会社の後輩にブログ見られた

やっぱりちゃんと更新しないと、とすこしだけ思った次第でございますw 今日のアクセスが少し多かったのはもしかして他の社員にも見られたのかな・・・? 書く内容気をつけなければ〜\(^o^)/

ちなみに見つかってしまったのはこの記事。

blog.tocyuki.com

まぁ、同じ職場で働いてるし、こういった技術ネタをきっかけに見つかることもあるんだろうなぁ。

しかしやりたいこと、やらないといけないことが山積みになってるけど最近なかなか進捗だせず。。。

ちょっとモチベーションがまた落ちてきているのでなんとかしないとな〜。

実戦投入力を上げていかねば!

そしてほかの社員にも見られるかもしれないという恐怖に打ち勝てる量のアウトプット出せるように頑張るしかないよ〜\(^o^)/

そんなこんなでこれから家で仕事だよ〜\(^o^)/

Pythonで機械学習を学ぶための道のり

[2018/07/04] 加筆あり!

ちょっと前につぶやいた内容をもう少し整理しようかと

以下のコンテンツで学習すればいわゆるジュニアクラスレベルにはなれるんじゃないかなぁとか思ったり思わなかったり。

ProgateでPythonの基礎を固める

いまや破竹の勢いでユーザー数を伸ばし、国内でのプログラミングコンテンツの代表格となったProgate!こちらのPythonのコンテンツも非常に良質で基礎固めにはモッテコイ!

prog-8.com

ゼロから始めるPython

AIや機械学習でも人気のプログラミング言語「Python」、インストールからはじめPythonに触れながら学んでいく連載講座。

news.mynavi.jp

自然言語処理100本ノック

東北大学の乾・鈴木研究室で提供されている「自然言語処理100本ノック」。Pythonでの基本的な言語処理から、UNIXコマンド、正規表現、DBの取扱、機械学習などの学習にモッテコイのコンテンツ!

Dockerファイル付きでJupyterNotebookで学習できるようにしてみましたよ!

github.com

キカガクUdemy 機械学習コンテンツ

機械学習というと数学がネックになることが多いかと思うけど、このキカガクのUdemyコンテンツはその数学の取っ掛かりにはモッテコイ!アルゴリズムに関するコンテンツもあるのでおすすめ!アルゴリズムの後編が待ち遠しい!

www.udemy.com

www.udemy.com

www.udemy.com

CODEXA

NumpyやMatplotlib、Pandasなどの入門コンテンツが無料で学習できる!入門コンテンツが終わったら有料コンテンツもあるのでそちらにもトライしてみよう!

www.codexa.net

Aidemy

こちらは有料コンテンツだけど、NumpyやMatplotlib、Pandas、教師あり学習、教師なし学習、自然言語処理、ディープラーニングなどさまざまなコンテンツの学習が可能!Pythonの基礎など、入門コンテンツは一部無料で学習可能!

aidemy.net

松尾研のデータサイエンティスト養成講座&ディープラーニング基礎講座

東大の松尾研によるJupyter Notebook形式で作成されたコンテンツで、Qiitaでの解説記事も合わせてチェケラ!

qiita.com

グローバル消費インテリジェンス寄附講座演習コンテンツ 公開ページ | 東京大学松尾研究室 - Matsuo Lab

Deep Learning基礎講座演習コンテンツ 公開ページ | U-Tokyo Matsuo Lab

Kaggleで分析

基本的な機械学習の知識をつけたらあとはひたすらKaggleで実践を繰り返すのみ!詳細はQiitaの以下の記事で!

qiita.com

Kaggle: Your Home for Data Science

そんな感じで楽しい機械学習ライフを楽しみましょ!

今週の振り返り

またまた水曜だぁ〜。

シェアした記事、ツイートなど

ニュースで初めて何度も泣いた

子供がちょうど同い年ぐらいなのでそのせいかえらく感情移入してしまい、毎日このニュースが目につくけど内容を見るのが怖かった。世界には光がありそして闇がある。一生懸命に生きて家族と向き合いみんなで素晴らしい人生にしたいと強く思った。そして児童相談所の闇が少しでも光に照らされて正しい方向へ進むことを願うばかり。でも正しい方向とか言っちゃう時点で違うんだろうなぁ、と思ってみたり。

note購入

DAIさんが頭の中で考えていることが知りたかったので購入。でも内容的にはやっぱりそうかぁという当たり前に行動と仮説検証の高速PDCAをやっているだけだった。やっぱりシンプルにやるしかないよね、とほほ。

腰を痛めた

調子にのって週3回稽古を続けていたら腰をめっちゃ痛めた。はじめて整骨院行ったけどいきなり電気流されてめっちゃ痛くてびっくり。でもだいぶ楽になり初診で1500円だしコスパ良いよ。2回目の通院ではマッサージもしてもらって超きもちよかったけどやっぱり電気流されてめっちゃ痛かった。

最近すこし動いてます

やはり時間は自分の持っている一番レバレッジの効く資産だという認識を強くもち、きちんと行動していこうと思った。環境を変えることを含めて。やっぱり行動した分可能性も広がるよね。

そんなかんじで

ちゃんと日曜にふりかえれるようにしたいなぁ。あれもしたいこれもしたいってのはやっぱりむずかしいけどやると決めて継続することはできることはわかったからあとはちゃんと整理してすすめないとだ!

今週の振り返り

もう水曜だけどさくっと!

シェアした記事など

出来事など

てな感じでロードバイクは月曜と火曜のみで56km走りました。

とりあえず柔術も月曜、火曜、木曜と週3で稽古行けたのでそこそこ運動できたかなー。

しかし、学習の進捗がほぼない状態なのでそこはあまり良い状態ではないなぁ。

もうちょっと時間の使い方をちゃんとしなければ。

あー、仕事やだよー泣

今週の振り返り

ちょっと試験的に週次での振り返りをブログでもやってみようかなと思ってまして、ただ通常の振り返りとはことなり、今週の出来事やシェアしたりストックしたりした記事などを振り返ってみようかなと。

シェアした記事など

news.yahoo.co.jp

logmi.jp

lrandcom.com

出来事

とりあえず、ロードバイクを購入した。

さっそく通勤で使用するともう快適だのなんのって。

電車だとDtoDで1時間弱かかるんだけど、ロードバイクだとゆっくりで35分しかかからない。しかも、ラッキーなことに無料駐輪場をゲットすることができた!!これはもう完全に神のお導きなのでハレノヒは必ずロードバイク通勤して、突発的な飲みなどの誘惑を断ち切ることができる強い漢におれはなる。

汗もそこそこかくし、いい運動にもなるし、満員電車のストレスから開放されるしもう言うことなし。あとは本当に交通事故にだけ気をつけなければ・・・。

そして先週は柔術もとりあえず週3回通うことができた。まぁ、追い込むためにロッカー契約してこれで毎月柔術だけで2.5万円かかることになるのでまじで飲んでる場合じゃないし、飲む金もないっていうね!

そんなかんじで

すこしだけいい流れになってきそうな感じもあるので引き続き、頑張っていく所存でございます!!

pipのバージョン10はPython2.6に対応してない

こんなエラーがでてきた

あるひCentOS6.Xに以下の流れでpipをインストールしたところエラーがでるようになった

yum -y install python-pip
pip install --upgrade

そしてsetuptoolsをインストールしようとしたところ

# pip install --upgrade setuptools
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/usr/lib/python2.6/site-packages/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/usr/lib/python2.6/site-packages/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/usr/lib/python2.6/site-packages/pip/_internal/index.py", line 526
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

こんなエラーが出たのでどうしたもんかと思ったら、Githubのissueにありました。

github.com

10.0 drops support for Python 2.6. See https://github.com/pypa/pip/blob/release/10.0.0/NEWS.rst#deprecations-and-removals.

It's noted in the "latest" version of the docs (https://pip.pypa.io/en/latest/installing/#python-and-os-compatibility) which will be promoted to "stable" once pip 10 is released.

まとめ

Python2.6系でpip upgradeしちゃだめだめ!

絵画を買うということの意味

大人の階段登る

そんなわけで人生初の絵画を購入してみたりしました。

ちなみに画家は佐藤勇太郎という高校時代の同級生、ようするに友達。

なんか自分の中で絵を買うという行為に憧れもあったりしたのだけど、絵を買うということの行為そのもの自体の意味合いを色々考えていたりしていた中で、実家に帰っていたタイミングでちょうど画家をやっているこのゆうたろうが個展を開くというので久しぶりに会いたかったし、顔を見せる程度という感じで足を運でみた。

もちろんその時は絵を買うなんてコトは考えてなかったし、すこし話でもしたいなぁ、程度の考えでまぁ、数千円〜一万円ちょいぐらいで良い絵でもあれば応援の意味を兼ねて買おうかな〜、ぐらいの感じで向かってた。

結局なんで買ったか

結局のところはこのゆうたろうと話していて刺激を受けたという部分が大きかったのかもしれない。というのも話を聞いていくとどうやらゆうたろうはスイッチが入っている状態のようだった。

スイッチとは?

これはとくにアーティストだけではなく、何かを成し遂げる人に必須の条件のように感じているんだけどようするにこの「スイッチが入っている」という状態は「没頭」している状態を指している。

ゆうたろうは絵描きらしく絵を書くことや絵描きとしての活動に没頭していて、睡眠も忘れ、3日に一度しか寝ないような生活を続け、この三年間で3回過労で倒れたというのだ。

最近だと1月に自宅で倒れ、連絡が取れないことを心配した友人が大家さんに連絡をとり、警察官立ち会いのうえで鍵を開けて家に入るとゆうたろうは倒れた状態で発見されたらしい。

何かをやりとげる、成し遂げるにはこの「スイッチ」を入れる必要がある。そしていま自分もこのスイッチを入れなければならないと感じている。

「スイッチを入れる」ということはある意味狂気じみた状態で感覚を研ぎ澄ませる必要があり、このゆうたろうから触発されたことでスイッチを入れようと決心し、ゆうたろうの可能性を確信した上でその自分の決断を確信し、この絵を購入した。

やることを継続するだけぜよ

あとは「没頭」し、行動を重ねていく。何より大事なのは

  • 感覚
  • 没頭
  • 継続
  • 行動

だと考えているので、感覚を大切にして、継続し、行動することを止めないで今を生きていくことに没頭していこうと思ったのでございます。

色々な感性に刺激を受けていけるように行動して、成長していくぞー!

ちなみに

購入した絵はこちらです。買ってから家のどこに飾るか悩みまくっておりますw

f:id:tocguitar1:20180422221621j:plain

Ansibleもくもく会(第2回)に行ってきた

ひさしぶりのAnsibleの勉強会

どうもとしゆきです。

というわけでAnsibleもくもく会(第2回)に参加してきましたよと。もくもく会的なものは初めてだったのですが、インスタンスも参加者毎に割り当ててくれるし、lightbulbのコンテンツもすごくよくできていてスムーズにもくもくすることができたし、目的のAnsibleTowerの感触もつかめていい感じでした^^

やったこと

以下のGitHubにあるAnsibleリポジトリのチュートリアル的なlightbulbというコンテンツを進めていきました。

github.com

その中で、Ansible、AnsibleTower、各種課題取り組みのおおまかに3つのセクションがあり、参加者は各々好きなセクションをもくもくしながらつまづいたところをRedhatのスペシャリストの方々に聞くという結構贅沢な感じでもくもく会が進んでいきました。

Ansible

github.com

Ansible Tower

github.com

課題取り組み

github.com

とりあえず、AnsibleとAnsibleTowerのハンズオンはできたけど、課題取り組みができていないので個別に進めていきたいなぁと思っております。

参考

その他、非常に参考になりそうな情報もシェアしていただいたので掲載しておきます。

Redhatの社員の方が作成したコンテンツ

github.com

AnsibleTowerに関するスライド

www.slideshare.net

www.slideshare.net

勉強用のスライド

lightbulbのコンテンツをクローンして、以下のHTMLファイルを開く

git clone https://github.com/ansible/lightbulb.git
open lightbulb/decks/ansible-essentials.html
open lightbulb/decks/intro-to-ansible-tower.html

lightbulbの環境構築方法

github.com

lightbulb/Vagrantfileを使えば、ローカルでも練習環境を構築できます。

おわりに

Ansibleの基本的な部分でも気づきがあったのでやっぱりこういう勉強会に定期的に参加するのは大切だなぁと感じたところでごぜいます。
Ansible Towerの評価については、ansible-jp@redhat.com もしくは ビジネス開発の中村さん宛(mnakamur@redhat.com)にご連絡くださいとのことなので、ご検討される方はどうぞ!

GoogleがJupyterNotebookをサービス化した「Google Colaboratory」がやばすぎる!!

こんなサービス待ち望んでました

最近、JupyterNotebookが便利だなぁと思いまくっていて、はやくどこかがWEBサービス化してくんないかなぁと思ったらGoogleさんがやってくれたよ!

スプレッドシートとの連携や、GoogleDriveでの共有など、Googleの既存サービスとの連携によるシナジーやばすぎますね!!

ちょっと使い倒してみてまた使用感等ブログに書いてみたいなぁと思います!

gigazine.net