momota.txt

hello, hello, hello, how low?

Ansible ABC

チーム内での Ansible 勉強会の資料を公開。

ansible logo

公式サイトは以下。

前提知識としては、以下。知っていたほうが理解が早い。

公式から引用すると、Ansible は simple IT automation engine

Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.

—– How Ansible Works より

Ansible で MacBook Pro をセットアップ

MacBook Pro 2700/13.3 MF839J/A を購入したので (わーい) 、構成管理ツール ansible を使ってセットアップした。

macbook pro

t-wada さんのエントリ Mac の開発環境構築を自動化する (2015 年初旬編) – t-wadaのブログ変更する を見れば事足りると思われるので、本稿は自分用のメモ(t-wada さんのを少しだけカスタマイズ & 補足)。

実行環境は以下。

what version
laptop MacBook Pro (Retina 13-inch, Early 2015)
OS OS X El Capitan 10.11.6
ansible 2.1.1.0

ネットワークエンジニアのための cisco.vim

ネットワークエンジニアのみなさん、こんにちは。

ネットワークエンジニアのための junos.vim の cisco バージョンです。

cisco の configuration をカラーリングする vim プラグイン momota/cisco.vim を作ったのでご活用下さい。

対象は、cisco ルータと Catalyst スイッチ、Nexus スイッチです。

色を付けることによって、configuration の解釈を手助けしたり、 configuration 作成時のミスに気づきやすくしたりする効果が期待できます。 (誤ったタームを入力すると色が付かないので)

以下のようにカラーリングします。 (colorscheme は molokai)

before

display_before

after

display_after

ネットワークエンジニアのための junos.vim

ネットワークエンジニアのみなさん、こんにちは。

Juniper の configuration をカラーリングする vim プラグイン momota/junos.vim を作ったのでご活用下さい。

対象は、Juniper EX シリーズとSRX シリーズです。

色を付けることによって、junos configuration の解釈を手助けしたり、 configuration 作成時のミスに気づきやすくしたりする効果が期待できます。 (誤ったタームを入力すると色が付かないので)

以下のようにカラーリングします。 (colorscheme は molokai)

before

display_before

after

display_after

before: display set モード

display-set_before

after: display set モード

display-set_after

cisco 版はこちら ネットワークエンジニアのための cisco.vim

RuboCop でコーディングスタイルを矯正する

RuboCop Logo

textlintで日本語テキストの文字校正を試してみた とかで、lint 系の記事を目にしたので そろそろ導入してみるか、と思い立った。

RuboCop はRuby の静的コードアナライザ。 bbatsov/rubocop

The Ruby Style Guide に沿ったコーディングスタイルに矯正(注意)してくれる。 無駄なスペースが入力されている、とか、無駄な改行が入っている、とか、 この変数1度も使われてないよ?とかクラスの中の行数が多すぎる、とか、 1行の文字数が長すぎる、とか。

大人数で開発していると細かなコーディングスタイルを合わせるだけでも面倒なので こういうツールによって人間が矯正されると AI 時代に思いを馳せることができて良い感じですね。

Seleniumノウハウ

selenium

ブラウザ操作の自動化: Selenium と Ruby でも書いたが、 selenium が便利すぎて、最近よくスクリプトを書くようになった。

以下のようなノウハウが溜まってきたので、ここらで放出する。

  • ウィンドウサイズのリサイズ
  • ウィンドウ位置の移動
  • スクリーンショットの取得
  • 要素セレクタメソッドの使い分け
  • ドロップダウンリストの選択
  • マウスオーバ (hover)
  • フレーム移動
  • ポップアップダイアログの扱い
  • コード量を減らすためのモンキーパッチ
  • よく採るプログラム構造

インストール方法などは ブラウザ操作の自動化: Selenium と Ruby を参照。

selenium用スクリプト開発のノウハウというべきかコツといういべきかアレな感じだが、結局、 スクレイピングと同様にHTML構造を理解することが必要なのでブラウザ付属の開発ツールが 手離せない。

ブラウザ操作の自動化: Selenium と Ruby

selenium と ruby を使ってブラウザ GUI 操作を自動化する。

selenium は、Web アプリケーションの自動テストのためのツール。 レグレッションテストによく使われているようだ。

selenium は、ブラウザ操作シナリオを事前に設定して、シナリオ通りに実行してくれる。 シナリオ設定といっても、Firefoxプラグインの Selenium IDE などを使うと操作を 記録してくれる機能があるのでそこまで大変ではない。 詳細は、Ruby アソシエーション – selenium の “1.2 テストの作成” あたりを参照してほしい

selenium は、クロスブラウザのツールで、IE を使って IE限定みたいなサイトでも使える。 IE や Chrome で使うには各 Selenium WebDriver が必要となる。

テスト用と言いつつ、使い道はいろいろとある。

  • 社内のもろもろの web 申請は、入力項目が多いのに、毎回ほぼ同じ内容を入力させるので フォーム入力の省力化として利用している。
  • hp さんの iLO や日立さんストレージ、F5 さんのBIG-IP みたいな web 画面から設定変更するような機器の 自動構築なんかもできそう。
    • スクリーンショットも撮れるので、エビデンスもついでに取得可能。
    • vCenter とかも操作できないかという思惑はある。
    • AWS とかも操作できるけど、そもそも API が豊富に備わっているから不要か。
  • あえて selenium を使わなくてもいいけど、クローリングやスクレイピングとかもできる

この selenium は、Java や Python, Ruby などのプログラミング言語からシナリオ操作が可能で ループ処理などするにはめちゃくちゃ便利。

いままでは Firefox プラグインだけで利用していたが、Ruby と絡めると便利すぎて感謝しかなかった。 ここでは、サンプルとして、はてなブックマークのホットエントリトップ5を一括で開くことを やってみたい。

ちなみに似たツールに iMacro がある。

関連記事: seleniumノウハウ

Ansible でノートPCをセットアップ

CentOS 7 を USB メモリからインストール で書いたが、まっさらなCentOSが手元にあったので ansible を使っていろいろインストールしてみた。

ちょっと前に、Ansible 2.0 Has Arrived という記事も話題になってたし。

ansible は Chef のような構成管理ツール。 システムの設定や、ソフトウェアのデプロイ、オーケストレーションなどが可能なIT自動化ツール。 管理対象ノードが多いほどメリットが大きい。

Chef と比較すると、エージェントレスのアーキテクチャで、Chefのように特定言語(Ruby)を学ぶ必要はなく、YAMLで構成を表現する。 これは、Playbookと呼ばれる。Chef でいうレシピ。

マネージャ側は最近は大抵プリインストールされている python とansible さえインストールすればよい。 クライアント側は、マネージャから SSH アクセスさえできればよい。

これを1回やってファイル群をリポジトリで管理しておけば、環境の複製が楽になるし、Infrastructure as a Code ですね。

CentOS 7 を USB メモリからインストール

新しい PC が来たので、もともと使ってた東芝 Dynabook R731/B (windows 7)に CentOS7 をインストールした。 今までは DVD-R に ISO を焼いていたけど、自前の PC の DVD ドライブが壊れていたので USB メモリを使ってインストールしてみた。