LoginSignup
5
4

More than 5 years have passed since last update.

オレオレ Ansible Best Practices 2015年8月版(1月版からの変更点)

Last updated at Posted at 2016-08-01

はじめに

2015年も半分以上終わって、年明けに苦労してたサービスも無事ローンチされ、Ansible の再整理をする時間が取れてるくらいなので、オレオレベストプラクティスを再整理。
ってゆうことを書いていて1年間寝ていた下書きを発見したので2016年になった今頃とりあえず公開してしまうという手抜き。
2016年8月版 を書い(た)ているので、そのベースにコレが必要なので。

1月版からの主な変更点

オレオレ Ansible Best Practices 2015年1月版 からの主な変更点

  • Ansible のバージョンアップに伴い ansible.cfg を少し変更
  • inventory ファイルを統合して1つにした(サービスで1つのファイルのほうが管理しやすい)
  • roles のうち、各機1回実行したらもうやらないようなもの(yum リポジトリやi18n設定など)を roles/init/XXX として1段下げて整理しなおした
  • 各タスクから notify やサーバ別分岐などを排除して、各ファイルをすっきりさせた

説明

Ansible のバージョンアップに伴い ansible.cfg を少し変更

以前は hostfile として inventory ファイルを指定していたが、バージョンアップに伴い1.9から、 inventory となったようだ。
ただ、hostfile のままでも使えるので特に問題ない。

バージョンアップとは直接関係ないが、 forks の値を 50 にしてもしっかり動いたので、最近は 50 にしたままにしている

また、コントロール機をこっそり社内に移動して、管理下にある他のサービスのサーバも管理可能なように ssh_args に .ssh/config を渡すようにし、ssh proxy 経由でも作業できるようにした。参考

inventory ファイルを統合して1つにした

1サービスで本番、開発、共用と、NWが分かれている環境だったため、inventoryファイルをそれぞれ分けていたが、運用フェーズに入りいちいち切り替えるのが面倒になってきたので1つに統合しなおした。
プレイブック実行時に -l を付けないで実行することのほうが少ないので(たいていは単独のサーバに処理を行うため)inventoryファイル内できちんとコメントを付けて全てのサーバを管理するほうが運用的に楽

roles のうち、各機1回実行したらもうやらないようなもの(yum リポジトリやi18n設定など)を roles/init/XXX として1段下げて整理しなおした

ざっと数えて50個のロールが出来上がり、見難くなってしまったので階層を下げることにした。カテゴリ化したとも言える。

  • init 初期処理用(旧phase01)
  • lang 開発言語等(旧phase02)
  • tools 監視ツール類(旧phase03,09)
  • common 共通用(Heartbeatなど)
  • web Webサーバ用(nginx,httpdなど)
  • db DBサーバ用(MySQL,MHA)
  • cache Cacheサーバ用(Redis,Memcachedなど)
  • monitor 監視サーバ用(munin,zabbixなど)
  • util 設定回収タスクなどいろいろ

って感じにした。それぞれの下にロールを丸ごと移動している。かなりすっきりして見やすくなったと思う。

各タスクから notify やサーバ別分岐などを排除して、各ファイルをすっきりさせた

1月版の時も書いたけど、タスクはシンプルなのが一番なので、インストールタスクと設定タスクは別々にした。
notifyでrestartしていたところも全部削って、シンプル化した。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4