logo-sm

お問い合わせは Webフォームから

ブログ

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で数百ノードを自動化した後に、数年後何万ノードの自動化が行われたそうです。
作業ミスを減らし、残業時間を減らしていければと思いました。

関連記事

  • 自宅に構築!仮想環境 ~BIG-IP VE導入編~
    【導入】 前回は、自宅サーバにProxmoxを導入しました。 今回はその上に仮想マシンとしてBIG-IP VE […]

    2024.09.30

  • 自宅に構築!仮想環境 ~Proxmox導入編~
    【導入】 以前から学習用に自宅仮想環境をつくりたく思っていたところ、BIG-IP(の仮想版)に触れる必要が出て […]

    2024.09.30

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • パートナー

  • 人材育成・採用情報