kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Ansible デビュー!Python じゃなくて YAML 書いた /「入門 Ansible」を読んだ

Ansible デビュー!

以前から Ansible を試してみたいなーと思ってたけど使ったことなくて,先日の Docker ハンズオンの懇親会で「Ansible オススメ!」っていう話を聞いたので「よしやるぞ!」って意気込んで試してみた.勝手な偏見で Ansible って Python だし苦手だって思ってたけど,結局 YAML しか書いてなくて Python 出てこなかったwww

kakakakakku.hatenablog.com

入門書と出会う

Kindle で「入門 Ansible」っていう電子書籍を買って読んでみた.ただし 7章 と 8章 はまぁ実際に使うときに調べれば良いと思って,軽く目を通すだけにしておいた.

  • 7章. 変数ファイルの暗号化 -- ansible-vault
  • 8章. 公開されているroleを使ってみよう -- Ansible Galaxy

2時間で試しながら読める分量になってるし Ansible の雰囲気を感じるならオススメの1冊!

入門Ansible

入門Ansible

試してみた

今回は Vagrant 上にホストを用意して Ansible を流してみた.

ちなみに inventory ファイルのデフォルトパスは /etc/ansible/hosts って書いてあったけど,brew でインストールした Mac の環境だと /usr/local/etc/ansible/hosts だった.

あと /usr/local/etc/ansible/hosts のパーミッションは 666 にしておかないと以下のエラーが出た.

ERROR: The file /usr/local/etc/ansible/hosts is marked as executable, but failed to execute correctly. If this is not supposed to be an executable script, correct this with `chmod -x /usr/local/etc/ansible/hosts`.

試してみた結果は雑に push しておいた.

github.com

汎用的な SSH ツール?

最初に CLI で uptime を投げてみて,汎用的な SSH ツールっていう意味で Fablic に似てるなという印象だった.プロビジョニング以外の用途でも気軽に使えそう.

ansible vagrant01 -m command -a 'uptime'

覚えておくこと

.yml を読むために以下のセクションを覚えておけば十分!

セクション名 概要
targets 対象ホストの設定など
vars 変数設定など
tasks Playbooks で実行するモジュール設定など

モジュールは実行する処理のことで,マニュアルを見ると大量に用意されてて何でもできそうな気がする.

シンプル

良くも悪くもシンプルで,シェル芸を Ansible に移行して,そこからモジュールに置き換えていくこともできそうでメリットかなと思った.

IntelliJ + YAML/Ansible Support

IntelliJ にプラグインがあったので導入してみた.そこまで大きな変化はないけど vars を追跡できたりして便利かなと思った.

基本的に RubyMine で Rails アプリを書いてるので,可能なら RubyMine に導入してみたかったんだけど,RubyMine に Import Project の機能がなくて Ansible プロジェクトと認識してくれなかった.どうやるんだろう?

マニュアルなど

ドキュメントを見ればモジュール一覧などは確認できるけど,愛用してる Dash にも Ansible のドキュメントが入ってて便利!

f:id:kakku22:20150730175051p:plain

まとめ

2時間で Ansible の良さを体験できるならもっと早く試しておけば良かったと後悔した!

今回は Vagrant 上のホストを構築してみたけど,次は EC2 などの実環境で試してみようと思う.あと Mac を Ansible で構築するのが流行ってるらしく,かなり良さそう!

大好きなドットインストールにもレッスンがあったし観てみよう!