ときどきAnsible日記

主にITインフラ基盤の自動化に関する事を書いているブログです

インターミッション~イヤホンのはなし~

お疲れ様です。伊藤です。

ちょっとペースが速い気がしますが、小休止です。

昔、仕事場でイヤホンに詳しい方がいらっしゃいまして、そこで色々と教えてもらい結構はまりました。ピーク時には3万ぐらいのイヤホン買ってたっけな。。。。こーゆーの
Amazon CAPTCHA
好きな人からしたら大したことないし、知らない人からしたらなんでそんなに金かけるの?という中途半端なもの。でも個人的には結構気に入ってます。


その後いろいろとあり、現在はbluetoothイヤホンでほとんど過ごしております。iPhone7もイヤホンジャックがなくなったことですし。で、ちょっと前まではbluetoothイヤホン市場はかなり限られたメーカーからしか出てなくて、価格も安くて1万以上みたいな結構法外な値段でした。(今調べてみたら過去のモデルはほとんど見かけないですね)

その後、おそらくbluetoothの技術(てか部品?)がアジア諸国に流れたことにより格安のbluetoothイヤホンが乱立しております。いやあいい時代になった。音質や取り回しもピンキリ。長く持つものもあれば、そっこーで壊れちゃうやつもあります。そこで私が山ほど買った中で個人的に使いやすかったイヤホンをご紹介します。


普通に使うならこのあたりで十分かと。自分が買ったやつはすでに出てないので似たようなやつ。
Mpow Enchanter bluetooth4.1 スポーツイヤホン ワイヤレス ヘッドセット 超軽量13g IPX4防水 IP4X防塵 CVC6.0ノイズ低減の仕組み iPhone&Android スマートフォンに対応 MP-BH053AB
Mpowという謎のメーカーから大量に出ているイヤホンの中でもこのタイプは使いやすいと思います。音質もそこそこ。耳なじみもいい。何より安い。まあ失敗してもいいかなと思える価格です。バッテリーも体感で5~6時間は持った気がします。ちなみに私が買ったやつはすぐ壊れました(多分個体差)


スポーツで使うならこの辺。
ICONNTECHS IT(JP) Bluetoothイヤホン ワイヤレス マイク フック付き ランニング中でも耳から外れにくい スポーツ ランニング 耳掛け式 高音質 防水 防滴 ハンズフリー通話 ノイズキャンセリング搭載 iphone対応 [1年保証付]
これまた謎のメーカーICONNTECHSのU8です。ってか激安イヤホンはすべて謎のメーカーです。今見たら似たようなイヤホンが山ほど出ていますが、そもそもこれもbeatsのパクリだと思います。これもそこそこ音質が良くて、使いやすい。あと耳に引っ掛けるところがゴムでへにょへにょなので長時間使っていても痛くなりません。これもバッテリーは前述のと同じぐらいもちます。(たぶん)


片耳タイプでよければこちら。AngLink C08
【世界最軽量ヘッドセットわずか3.8g】 Bluetooth ヘッドセット V4.1 Bluetooth ワイヤレスヘッドセット 片耳 ブルートゥース ヘッドセット Bluetooth ワイヤレスイヤホン 防汗防水 マイク内蔵 軽量小型 モノラル 高音質 ノイズキャンセリング搭載 iPhone Android などのスマートフォンに対応 by AngLink (ブラック)
これはバッテリーはあまり持たないです。3~4時間といったところ。ただ、このタイプでは珍しく音の通りもよくて聞きやすい。ノイズキャンセルとか謡ってますが期待しちゃいけません。そもそも片耳なのにノイズキャンセルて。


でもほんとに欲しいのはこれ。
Bose SoundSport wireless headphones ワイヤレスイヤホン ブラック【国内正規品】
bosetriportというヘッドホンを使ってたんですが、そこからにわかbose信者です。。。ほすぃ。。。


ただただ、私の物欲をさらしただけになってしまいました。
以上です。お疲れ様でした。

handlersを使ってみる

お疲れ様です。伊藤です。

先ほど挙げた記事が重すぎてトップページがヤバイことになっているので軽めの記事を早々に上げます。
handlersはPlaybookに処理を書いて、その結果がchengedになった場合に実行されるものです。例えば設定ファイルを変えてサービスを再起動したい場合などに使えます。何度も繰り返し実行しても設定ファイルを変更する必要がなければサービスの再起動もされない、という便利な機能です。


プレイブック側にはこんな風に書きます。
roles/common/tasks/main.yml

- name: sshd config
  notify:
    - restart sshd
  copy: src="sshd_config" dest="/etc/ssh/sshd_config" owner=root group=root mode=0600
  tags: sshd

ここでは管理サーバにsshd_configというファイルを置いて、それを管理対象サーバ側の/etc/ssh/sshd_configにコピー、所有者・グループをrootにして権限は600にする、というものです。ポイントはnotify:です。ここにrestart sshdと記載していますがこの内容をhandlersに記述します。つまりnotifyとhandlersはセットになります。


handlers側にはこんな風に記述。
roles/common/handlers/main.yml

---
- name: restart sshd
  service: name=sshd state=restarted

これでsshの設定ファイルが変更されたときのみsshサービスが再起動されます。


早速実行してみましょう。

# ansible-playbook -i development site.yml -u root

PLAY [webservers] *****************************************************************

TASK [Gathering Facts] ************************************************************
ok: [192.168.1.105]

TASK [common : sshd config] *******************************************************
changed: [192.168.1.105]

RUNNING HANDLER [common : restart sshd] *******************************************
changed: [192.168.1.105]

PLAY RECAP ************************************************************************
192.168.1.105              : ok=3    changed=2    unreachable=0    failed=0

RUNNING HANDLERとしてsshの再起動が動いています。もう一度実行してみましょう。

# ansible-playbook -i development site.yml -u root

PLAY [webservers] *****************************************************************

TASK [Gathering Facts] ************************************************************
ok: [192.168.1.105]

TASK [common : sshd config ********************************************************
ok: [192.168.1.105]

PLAY RECAP ************************************************************************
192.168.1.105              : ok=2    changed=0    unreachable=0    failed=0

今度はsshd configがchengedになっていないのでhandlersは動いていません。すでに変更済みのため何もしない、という状況になります。上手く使えばかなり便利になると思います。
今回はcommonのroleで作成していますが、role毎にまとめておけば余計なサービスが再起動する、というようなこともありません。また、サービスの再起動に限らずchengedになったときのみ実行したい機能があればこちらを利用できます。


もうちょっと複雑な使い方(chengedを返す条件を変えたり)もできますが、とりあえず今回は終了です。
お疲れ様でした。