CUBE SUGAR CONTAINER

技術系のこと書きます。

Ansible

Ansible: 特定のタスクをグループの全ホスト上で実行する際のイディオム

今回は Ansible を使う際、特定のタスクをグループの全ホスト上で実行する場合のイディオムについて書いてみる。 尚、これは Playbook の hosts にグループを書いて実行するというわけではなく、Playbook の中の特定のタスクを任意のグループの全ホスト上で…

Ansible のモジュールを自作してみる

Ansible には標準で多数のモジュールが用意されているけど、オリジナルのモジュールを自作することもできて、その方法は公式ドキュメントに詳しく書かれている。 http://docs.ansible.com/ansible/developing_modules.html モジュールは基本的に実行ファイル…

Ansible が対象ホストで生成する実行可能ファイルを消さないようにする

Ansible は対象ファイルでモジュールを実行する場合、それを実行可能ファイルに加工して対象ホストに転送した上で実行する。 その際に生成される実行可能ファイルはデフォルトでは消去されてしまうため、Ansible の挙動を調べる際に都合が悪い。 今回はその…

開発版の Ansible 2.0 をインストールする

この記事を書いている時点で Ansible の安定版はバージョン 1.9 系だけど、もうしばらくすると 2.0 系がリリースされそうな雰囲気になっている。 メジャーバージョンが上がるということもあって 2.0 系には一部に後方互換性のない変更も含まれている。 そこ…

Ansible: Dynamic Inventory を使ってみる

通常の Inventory は ini 形式を拡張したテキストファイルで、中には Ansible で管理したいホストと変数の情報が書き込まれている。 しかし、これだとホストの台数や名前などが動的に変化するシチュエーションでメンテナンスが難しい。 あとは、ホストの情報…

Ansible: notify と handlers の使い方について調べた

今回は Ansible の Playbook で使える notify と handlers の使い方について調べてみる。 このふたつはペアになっていて、タスクに notify を書いておくと、そのタスクで状態に変更があった場合にそれと対応する handlers が実行される仕組みになっている。 …

Ansible をシェルスクリプトの代替として使う

構成管理ツールの Ansible を導入するにあたって、まずはシェルスクリプトの代替として使い始めてみようと考えた。 ただ、それにはひとつ問題があって、Ansible は通常 SSH を使ってリモートホスト上でコマンドを実行する点が挙げられる。 それに対して、シ…