運用自動化ツール(Ansible)について

株式会社テイクーワンのT.Kです。

普段はサーバーの運用監視をしております。日々の業務に、ファイアウォール設定(ポート開放やユーザー追加など)での手動作業を専用の設定サイトやWindowsの管理画面を開き、マウスを使って一つ一つ項目をチェックし、ポート番号やユーザー名を入力する……という、いわゆる「手作業(GUI操作)」が当たり前でした。最近この作業がAnsibleによって自動化され、興味を持って調べたのでその話をしたいと思います。

運用自動化とは?

運用自動化とは、サーバーやネットワークの設定変更、ソフトウェアのインストール、定期作業などを「人の手」ではなく「仕組み」で実行することです。
ポイントは、「同じ結果を、同じ手順で、誰がやっても再現できる」ことにあります。

手作業では、設定漏れや入力ミス、手順の解釈違いが起きがちです。
自動化することで、こうしたヒューマンエラーを減らせる点が大きなメリットだと感じました。

Ansibleとは?

「サーバーやネットワーク機器の設定を、あらかじめ書いた『指示書』通りに自動でやってくれるツール」です。

ポイントは以下の3つです。

エージェントレス: 管理したいサーバー側に特別なソフトを入れる必要がありません。SSHなどの標準的な通信さえできれば、すぐに自動化を始められます。

「Playbook」が読みやすい: 指示書(Playbook)はYAMLという形式で書かれます。プログラミングの知識がなくても「何が書いてあるか」が直感的にわかります。

冪等性(べきとうせい):同じPlaybookを何度流しても、サーバーの状態が変わらない(正しい状態に保たれる)これを冪等性と呼ぶそうです。

Firewall設定はどう自動化できるのか?

例えば、

  • 特定ポートの許可
  • 特定ユーザーの通信許可
  • 同じ設定を複数環境に適用

こうした作業を、AnsibleのPlaybookとして定義しておけば、ボタンひとつ、あるいはコマンドひとつで反映できます。「設定内容がファイルとして残る」ため、変更履歴の管理やレビューがしやすくなる点も魅力だと感じました。firewall設定が自動化されたことで、数分かかっていた作業が数秒で終わり、作業証跡もログとして残るようになります。

まとめ

今回のfirewall設定のように、

  • 作業内容が決まっている
  • 何度も繰り返す
  • ミスが許されない

業務ほど、自動化の効果は大きいのではないかと思いました。

前へ

Azure仮想マシンのWindowsライセンス認証