logo-sm

お電話はこちら 03-6912-0139

ブログ

Ansibleで環境構築の自動化・作業効率の改善を!

2020.11.16

1.はじめに。Ansible(アンシブル)とは

最近良く耳にするようになりました。Ansibleとは、多数の構築管理対象に対してアプリケーションとシステム導入を容易にした、シンプルなIT環境構築自動化プラットフォームです。

 

特徴としては、

・「使いやすい」

・「設定ファイルが簡潔」

・「管理対象サーバへのエージェントソフトウェアのインストールが不要」

など、最小限の手間で各種設定を自動化できる特徴がある、構成管理ツールになります。

 

2.インフラ構築の現状と問題点について

インフラ構築の現状は以下のようだと思います。

・設計書に基づいて、パラメータシートや構築手順書を作成する。作成するツールはWordまたはExcelが主となる。

・構築手順書を参照しつつ、構築作業を実施する。

・運用開始後、設定変更が発生した場合は、パラメータシート(Excelなど)に変更履歴を記入する。

問題点は以下が考えられます。

・ドキュメント作成に時間がかかってしまう(表紙、改版履歴、誤字脱字、印刷設定、PDFでの見切れチェックなど体裁を整えるための作業に時間がかかる)。

・大量の構築時に、同じことの繰り返しがある場合は、時間がかかってしまう。

・構築時に手入力した場合、オペミス発生によるリスクが高くなってしまう。

・ドキュメントと実機の整合性を確保するのが難しく手間がかかる。

ともすると、サーバの操作をしている時間よりも、ExcelやWordと格闘している時間の方が圧倒的に長くなっています。

 

3.構成管理ツールの目的について

最大の目的は、インフラ構築の現状や問題点を踏まえ、効率化による時間短縮にあります。

導入する事によるメリットは以下が考えられます。

・構築時の、特にOS及びMWに係る作業時間が劇的に短縮される。

・構成管理ツールの設定ファイルにコメントを入れると、変更履歴が管理できる。

・構成管理ツールの設定ファイルを流用すると、一定の品質確保や属人化の排除が行われ、誰が作っても同じサーバを構築することができる。

企業システムの設定作業は、誰が何回やっても同じ結果になる事が理想です。属人化した自動スクリプトは、負の遺産になる可能性が高くなってしまいます。

優秀なエンジニアが作った自動化スクリプトは、あらゆる作業をスクリプトに実装してしまい、巨大化する傾向にあります。優秀なエンジニアが部署異動などをした場合に、自動化スクリプトの保守ができず、ブラックボックスになる可能性もあります。

また、各チームや個人が異なるスクリプト言語を使用してしまい、部署間での共有が出来なくなってしまいます。運用管理の手法が孤立し易く、部署間で同じ作業を別の手法で行ってしまう可能性もあります。

 

4.自動化を表現する「Playbook」について

PlaybookというYAMLファイルにタスクを記述して、Ansibleに実行させることにより様々な処理が行えるようになります。

設定したい状態を記載するだけで、あとは自動的に設定が完了します。

YAML形式で記述されたパラメータと手順

Playbookには冪等性があるため、何回同じファイルを実行しても同じ結果になります。

(「冪等性」=操作を1回行っても複数回行っても結果が同じだという概念)

 

5.Ansibleはエージェントレスな仕様

ChefやPuppetなどのツールは、管理対象のサーバに「エージェント」と呼ばれる専用のソフトウェアをインストールしておく必要があります。設定ツールのエージェントはセキュリティホールの温床となり、実作業に負担がかかる事があります。

一方、Ansibleはエージェントレスと呼ばれるタイプの設定ツールのため、設定側にエージェントをインストールする必要がありません。SSHでサーバから接続出来るものなら、基本的にAnsibleで設定する事が可能になります。

これまで自動ツールの対象になりにくかったネットワーク機器やベンダー特有のソフトウェアにも、Ansibleでの設定が可能となりました。

また、多くのクラウドサービスがAnsibleに対応しているので、オンプレ、仮想化、パブリッククラウド、プライベートクラウドに関係なく利用出来ます。

6.Ansible Towerとは

同じ会社内には似たような処理が多く存在する場合があります。サーバやネットワークの設定作業は全社で共有出来ることが沢山あります。AnsibleではPlaybookを多くの人で共有する仕組みが提供されており、それをAnsible Towerと言います。

これは、組織内の円滑なナレッジ共有を実現できるマネジメントツールになります。

機能紹介:https://www.redhat.com/ja/explore/ansible/ansible-tower

 

7.最後に

Ansibleを導入する事で、作業時間の短縮を行う事が期待出来ると思います。Ansibleは多くのエンジニアが理解し易く、効果が出るのが早いとも言われています。海外の事例では、Ansibleで数百ノードを自動化した後に、数年後何万ノードの自動化が行われたそうです。
作業ミスを減らし、残業時間を減らしていければと思いました。

関連記事

  • 自社サイトにお手軽チャット機能を実装してみた
    こんにちは。 以前弊社で保守契約させていただいているお客様のWebサイトに『Messengerカスタマーチャッ […]

    2020.11.18

  • Vue.jsを使用するための優れたUIフレームワークを紹介する
    はじめに こんにちは、クロスメディア課のベトナム人エンジニア ティエンです。 9月に入ってから急激に寒くなりま […]

    2020.10.13

  • CloudFront+S3+Route53以外のドメイン管理でSPAをSSL化する
    はじめに こんにちは。 季節はそろそろ梅雨も明けて初夏の装いに差し掛かっておりますが、いかがお過ごしでしょうか […]

    2020.07.09

  • パートナー

  • 人材育成