Ansible デビュー!
以前から Ansible を試してみたいなーと思ってたけど使ったことなくて,先日の Docker ハンズオンの懇親会で「Ansible オススメ!」っていう話を聞いたので「よしやるぞ!」って意気込んで試してみた.勝手な偏見で Ansible って Python だし苦手だって思ってたけど,結局 YAML しか書いてなくて Python 出てこなかったwww
入門書と出会う
Kindle で「入門 Ansible」っていう電子書籍を買って読んでみた.ただし 7章 と 8章 はまぁ実際に使うときに調べれば良いと思って,軽く目を通すだけにしておいた.
- 7章. 変数ファイルの暗号化 -- ansible-vault
- 8章. 公開されているroleを使ってみよう -- Ansible Galaxy
2時間で試しながら読める分量になってるし Ansible の雰囲気を感じるならオススメの1冊!
- 作者: 若山史郎
- 発売日: 2014/07/30
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
試してみた
今回は 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 しておいた.
汎用的な 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 のドキュメントが入ってて便利!
まとめ
2時間で Ansible の良さを体験できるならもっと早く試しておけば良かったと後悔した!
今回は Vagrant 上のホストを構築してみたけど,次は EC2 などの実環境で試してみようと思う.あと Mac を Ansible で構築するのが流行ってるらしく,かなり良さそう!
大好きなドットインストールにもレッスンがあったし観てみよう!