日記

日々のことと、Python/Django/PHP/Laravel/nodejs などソフトウェア開発のことを書き綴ります

Ansible と導入障壁などの悩み

説明とか導入とかを説明するときに、うーん。と思うことがあったので、つらつら書いていきます。取り留めの無い話になっちゃったので、時間を捨てても良い人だけ読んでね。

Ansible の導入方法や、チュートリアルなどについては書いてません。下記の記事とか本を参考にしてください。

エージェントレスでシンプルな構成管理ツール「Ansible」入門 - さくらのナレッジ

時間を有効に使いたければ、「入門 ansible」を買って読むのが良いと思います。

バックグラウンドの違い

chef / puppet / capistrano / fabric を使っていた人には、スムーズに受け入れられる。

割と困っているのが

  • サーバ構築した後に、引き継ぎなどはしないで自分で面倒を見ている。
  • 手作業でコマンドを叩くことを妙に信頼している。そしてそれを疑問には思っていない。
  • 旧来の手順書的なものを作っている。

これらが当てはまる場合は、導入の擦り合わせには苦労しそうな気がする。

その理由としては、Playbook の準備や学習などで、一時的に作業量が増えてしまうこと。そして、既にやっていることを別のやり方に置き換える必要がある点が消極的になる理由か…。

このあいだ参加した ansible セミナーでもやっている人が居たけど、スポットの対応(セキュリティパッチ当て)の時に、複数台まとめて処理を行えるので、そういうのから試してもらうのが良い気がする。重荷にならないし。

環境の違い

  • プログラマなんで、インフラのことはインフラエンジニアが勝手にやってくれます。
  • どんなサーバ構成なのかも気にしたことありません。
  • ミドルウェアの構成・設定変更の管理なんて知りません。勝手にやってください。

m9

…。

何も言いますまい…。

そして、そういう意味の環境ではない…。

現実問題としては、マインドよりもインフラ環境の違いによって、適用できる範囲が限られてしまうケースが多い。ちょいちょい話を聞くのは

  • 本番環境が隔離されていて、in bound のみで、 out bound の通信が出来ない。→ パッケージアップデートも FW に穴開けてもらって行う
  • VPN 接続しても踏み台サーバからしか本番サーバにはアクセスできない。(まぁ良くあると思う)
  • ポートフォワードは、ポリシー上禁止。
  • デプロイするにも踏み台サーバにファイルコピーしてから展開
  • コードのリポジトリは、踏み台含めて本番環境からのアクセスできないところにある。もしくは別会社が管理している。

プログラムは、他で固めて転送すれば良いとして、踏み台に ansible を入れたとしても playbook バージョン・履歴管理が大変そう。こういう環境って良くありそうなので、どうしているか気になる。

どうしてこの前のセミナーの時に気が付かなかったんだろ。

導入して最初の実行がコワイ問題

超分かる。自分も怖かった。でも、実行していくうちに慣れてった。

  • Vagrant で起動した仮想サーバに、まずはテスト実行
  • OKだったら、ステージングとか本番サーバに実行

この流れが重要。ansible-playbook コマンドを叩くだけなので、手作業で何度もコマンドを実行するときとは違い、手間が掛からない。

そして入門 ansible の著者は言いました。

「そんなときは --step だろ JK」

ステップ実行オプション…。その通りだと思いました。

クライアントが Windows 問題

正直言うと、これが一番痛い問題。一度、チャレンジした身としては

というのが、正解だと思っている。

最近の Windows の対応状況ってどうなんだろう。(構成管理対象側じゃなくて ansible 実行側)

あー、なんか日記っぽい記事になったなぁ。