こんにちは!murotaです!
今回はインフラ系(サーバ周り、ネットワーク周り)の自動化ツールとして広く採用されているansibleについて軽く紹介をしていこうと思います。
私自身、ここ半年くらいでゆっくり学習を行っており、実務でも使用することが増えてきました。その中で、便利さ・必要性をひしひしと感じたのでこれを読んでくれた人のansibleの学習を始める足掛かりになればと思っています!
ansible概要
ansibleとは?
RedHat社が開発しているオープンソースの自動構成管理ツールです。
もう少し具体化すると、ITインフラの構成を管理するためのものです。
コードで書かれたインフラの情報をもとにして、対象機器の設定を自動で変更することが可能です。
特徴
YAML形式
ansibleでは、コードの形式はYAMLが採用されています。
そのため、他の形式と比較すると可読性が高く、学習コストも抑えることができます。
※以下YAMLの記載例(ansibleの公式ドキュメントから引用)
冪等性
ansibleでは、もともと用意されているモジュールを使用することで、冪等性を担保することができるようになっています。
※冪等性とは:同じ操作を何回行ったとしても、必ず同じ結果になること
例えば、ネットワーク機器への設定の投入を行う際に、機器によってはもともと入っていた設定を消さずに設定コマンドを実行すると、既存の設定を上書きしてくものがあると思います。
こういったとき、ansibleであれば必ずYAMLで書かれたコードの通り設定を行ってくれるため、非常に便利です。
エージェントレス
管理対象の機器に、ansibleを実行するために常駐させるプログラムが必要ないため、導入時のコストがあまりかかりません。
学習難易度
私はプログラミングを一切学ばずにansibleに触れてみましたが、全く理解できないということはありませんでした(理解するまでに時間はかかっていますが)
学習教材
あくまで私が使用しているもので、良いなと感じたものをご紹介します。
人によってわかりやすい、使いやすいというのは変わってくると思いますのであくまで参考程度に観ていただけると嬉しいです。
- 公式ドキュメント
- ANSIBLE構築・運用ガイドブック インフラ自動化のための現場のノウハウ
- てくなべ(tekunabe)さんが書かれているブログ
特に、私は2つ目の本から基本的なことを学ばせていただきました。
(本記事を作成するにあたっても参考にさせていただいております。)
今回はここまでです。
今後は、実際にansibleを学習環境の作り方なども触れていこうと思っております。