四回目の投稿です。先日、参画先の案件にてAnsible(アンシブル)を使う機会がありましたので、
その際の情報共有記事です。本投稿が、今後Ansibleを使う機会のある人の一助となれば幸いです。
◆構成管理ツールとは
Ansibleの概要について説明する前に、構成管理ツールについて言及しておきます。構成管理ツールとは、
システムを構成しているサーバを一元的に管理したり、手動では非効率な設定作業を自動化したりする
機能をもつツールのことです。構成管理ツールを導入することで、サーバ/システム構築における設定
ミスや作業負担の軽減が期待できます。代表的な構成管理ツールには、Ansibleのほか、ChefやPuppet
などの製品があります。
◆Ansibleの概要
Ansibleは、レッドハット社が開発しているオープンソースの構成管理ツールです。構成管理先の
サーバ類にエージェントソフトを導入する必要がない(エージェントレス)という特徴をもち、
構成管理処理をYAMLで記載できることから、導入の容易さの観点で注目されることが多いです。
Ansibleを使う際に意識しておきたい用語(ファイル)を3つ記載します。
・Playbook:適用したい一連の処理が記載されたYAML形式のファイル
・モジュール:Playbookで指定される処理を実行するスクリプトファイル
・インベントリ:Playbookの処理を実行する対象ホストが記載されたINI/YAML形式のファイル
つまり、実行したい様々な処理(OSアカウント操作やソフトウェアインストールなど)ごとに
モジュールが存在し、それらのモジュールをPlaybookで指定することで、インベントリに記載された
サーバに対して処理を走らせることができるということです。
◆Ansibleの利用例
複数台のサーバで構築されているシステムにおいて、メンテナンス用のユーザを各サーバ上に
作成する場合などが利用例として考えられます。Ansibleを使うことで、システム内のAnsibleが
導入されたサーバ(マネージャ的なサーバ)から別の(エージェントレスな)サーバ群に対し、
ユーザの追加といった処理を走らせることができます。Ansibleなどの構成管理ツールを使わない
とすると、各サーバひとつひとつに対してユーザを作成していくことになります。サーバの台数が
数台であれば大した負担にはなりませんが、数十台ともなると手に負えなくなります。
◆使ってみた感想など
製品固有の言語ではなく、YAMLで処理を記載できる点は便利だなと感じました。今後は、他の構成
管理ソフトとの違いを意識しながら使ってみたいと思います。
◆参考
・https://ja.wikipedia.org/wiki/Ansible_(ソフトウェア)
・https://www.kagoya.jp/howto/it-glossary/develop/ansible/
以上です。