オープンソース活用研究所 | 第二回目「Ansibleの使い方と、そのベストプラクティス」

第二回目「Ansibleの使い方と、そのベストプラクティス」

オープンソース活用研究所

2017年05月30日
オープンソース活用研究所 所長 寺田雄一

2017年3月、都内でTIS株式会社レッドハット株式会社による共催セミナー「Ansibleを活用しインフラ構築を自動化(Infrastructure as Code)した、プロジェクト工期短縮事例 ~インフラエンジニアの働き方をSHIFTする~」が開催されました。

レッドハット社が提供するAnsibleは、既存ツールの弱点を克服し、IaC (Infrastructure as Code:インフラのコード化)を具現化するための自動化実行エンジンです。自動化プラットフォームである「Ansible Tower」とともに、システムの運用自動化を目指す企業のIT担当者、システムインテグレーターから注目を浴びています。

このセミナーでは、Ansible及びAnsible Towerの概要紹介をはじめ、TIS社によるAnsible導入事例とベストプラクティス、さらにはインフラエンジニアのみならずIT業界全体の働き方改革についての提言もなされました。本レポートでは、このセミナーの概要を3回にわけてご紹介します。

第2回目のテーマは、TIS株式会社 IT基盤技術推進部 主査 浪川英雄氏によるセッション『【SIerも逃げられない】Ansibleによる自動構築事例と活用のスタンダード化』です。

Ansibleが求められる背景

構成管理ツールとしてのAnsible誕生の背景についてご紹介します。

従来から根強く存在しているシステムインテグレーターの課題には、ヒューマンエラー、属人化、デグレードなどがありました。ビジネスのスピードが加速するなかで、より早く品質のよいシステムの構築が求められる反面、QCD(品質・コスト・納期)のトレードオフは許されず、これまでのやり方では限界が見えてきました。

一方インフラ側の技術的な進化は、ダウンサイジングやオープン化の後に、ストレージやネットワークも含めて仮想化されクラウドファーストになり、さらにカプセル化されてコンテナとなりました。すなわち、インフラとそのオペレーションはソフトウェアに抽象化されたと言えます。

このソフトウェアを基軸としたインフラ運用を踏まえて登場したのが、「DevOps」という開発手法と、IaCという概念です。

そして、このような時代背景をもとに、コードによるインフラ構成管理などの自動化を行うことができるツールとして誕生したのがAnsible、そしてそのベストプラクティスとなります。

まとめ

Ansible導入におけるベストプラクティス

実際のAnsible導入にあたっては、「開発・利用者の学習・育成コストがかかる」、「PJ規模が小さいためコストを回収できない」などの課題があり、結局、従来の手法を踏襲してしまう企業も少なくありません。

TIS社では、こういった課題のソリューションとして、「Ansibleを簡単に使えるようにする」ことと、「インフラエンジニアのスキルを向上させる」というふたつの方向性からAnsibleのベストプラクティスを構築しました。

Ansibleベストプラクティス:コードライブラリ・シェアリポジトリ

コードライブラリ

TIS社では、ベストプラクティスとして実績検証済みのコードライブラリ・シェアリポジトリを作成しました。汎用化されたAnsibleのコードライブラリを簡単にそのまま実行したり、リファレンスとして利用することができます。

Ansibleベストプラクティス:フレームワーク化

Excel2YAML

TIS社では、ベストプラクティスとしてAnsibleのフレームワーク化を行いました。周辺機器を加えたフレームワークによって、エンジニアのスキルに依存することなく、Ansibleの実装を可能にしています。

たとえば、設定したいパラメータをExcelの項目に記入するだけで、Ansibleを記述する言語であるYAMLフォーマットに自動変換する機能があります。設定したパラメータのチェック結果をCSVに出力することもできます。

Ansibleベストプラクティス:人材育成・運用サポートツール

さらにTIS社では、ベストプラクティスとしてAnsibleを活用するための人材育成ツールも構築しています。社員がブラウザ上でセルフスタディできるセルフハンズオンサービスであり、実際にサーバにコマンドを打って試すことができます。

そのほかにも、勉強会やOJT、QAサポート等をメニュー化して、必要に応じてサポートやトレーニングを行っています。

同社では、組織のなかで自動化できる仕組みを構築するために、企業ごとにカスタマイズできて品質を向上させることができるようなソーシャル開発も目指しているとのことです。

Ansibleベストプラクティスまとめ

インフラの構成定義・構成管理をより効率的、効果的に活用するためにAnsibleが求められています。

TIS 社のAnsibleベストプラクティスを活用したAnsible導入事例では、構築費用を7割に抑えたという声も届いています。

TIS 社のAnsibleベストプラクティスは、今後サービスとしての提供も検討中で、オープンソース化も含めたノウハウ公開も視野に入れているとのことです。

いかがでしたでしょうか。

次回は、TIS株式会社 倉持氏によるセッション『インフラエンジニアの働き方を「SHIFT」する~撲滅!長時間労働~』をご紹介します。

ご参考

Ansible紹介ページ
本セミナーの講演資料は、マジセミからダウンロードできます(無料)。

過去の同一連載記事

第一回目「注目の運用自動化ツールAnsibleとAnsible Towerとは」


OSSNEWSに広告を掲載しませんか?

著者プロフィール

オープンソース活用研究所 所長 寺田雄一

1993年、株式会社野村総合研究所(NRI)入社。 インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。 2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。 2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス 「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。 オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。 2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。

最新TOPICS

【講演資料を掲載】7/19『OSSの統合監視ツール「Zabbix」の紹介と、北海道自治体向けクラウドサービスでのZabbix採用事例』(2017年08月18日 09:15)

2017年07月19日(水)14:00~17:00 TKP札幌カンファレンスセンター にて 『OSSの統合監視ツール「Zabbix」の紹介と、北海道自治体向けクラウドサービスでのZabbix採用事例』と題したセミナーを開催しました。 当日は、マジセミ初の北海道開催でスタッフ一同若干の不安はありましたが、Zabbixにご興味をお持ちの方々が次々にご来場くださり、おかげさまで大盛況となりました。あり...

関連オープンソース

Beats(ビーツ)

  • 運用管理・運用自動化

Beats(ビーツ)。オープンソースデータ収集/転送プラットフォームです。Elastic社のプロダクト群で、サーバからあらゆる種類のオペレーショナルデータを収集して、Elasticsearch/Logstashなどに情報を転送します。

Draft(ドラフト)

  • 運用管理・運用自動化

Draft(ドラフト)とは、「Docker」コンテナデプロイサポートツールです。Microsoftが提供しています。「Kubernetes」クラスタ上へのデプロイと継続的インテグレーション機能を提供します。

Juju(ジュジュ)

  • 運用管理・運用自動化

Juju(ジュジュ)とは、Ubuntu専用のデプロイツールです。各種環境(AWS、Azure、OpenStackなど)のUbuntuサーバに各種サービスをデプロイします。

Consul(コンサル)

  • クラスタリング

Consul(コンサル/コンスル)とは、クライアントサーバ型のクラスタ管理ツールです。同様ツール「Serf」よりも汎用的で、サービス検出(ヘルスチェック)用途などにも活用できます。

Serf(サーフ)

  • クラスタリング

Serf(サーフ)とは、非集中/分散型のクラスタ管理ツールです。対象サーバにバイナリを1つ配置して軽量エージェントを起動するだけで、手軽にクラスタを構成できます。

Terraform(テラフォーム)

  • 運用管理・運用自動化

Terraform(テラフォーム)とは、インフラストラクチャ用プロビジョニングツールです。コードからインフラの構築/変更/バージョン管理を行えます。

Packer(パッカー)

  • 運用管理・運用自動化

Packer(パッカー)とは、マシンイメージの自動生成/管理を行なうコマンドラインツールです。マシンイメージ作成に関するさまざまな問題を解決するためのサポートを行います。

Vagrant(ベイグラント)

  • 運用管理・運用自動化

Vagrant(ベイグラント)とは、仮想環境構築/共有ツールです。仮想化ツール(VirtualBoxなど)のフロントエンドラッパーとして機能し、数行のコマンドのみで簡単に仮想化環境を構築できます。

Itamae(イタマエ)

  • 運用管理・運用自動化

Itamae(イタマエ)とは、サーバ管理を自動化する構成管理ツールです。「Chef」ライクなRuby DSLで記述するツールで、必要最低限の機能のみを揃えており、非常にシンプルに使用できます。

Serverspec(サーバスペック)

  • 自動テストツール

Serverspec(サーバスペック)。サーバ状態のテスト自動化フレームワークです。UNIX/LinuxサーバとWindowsサーバに対応します。

CDIR Collector(シーディーアイアールコレクター)

  • インシデント管理

CDIR Collector(シーディーアイアールコレクター)。セキュリティインシデント初動対応時の適切なデータ保全をサポートするツールです。調査対象端末汚染を最小限に抑えながら安全にデータを収集します。

Apache ZooKeeper(アパッチズーキーパー)

  • 運用管理・運用自動化

Apache ZooKeeper(アパッチズーキーパー)。分散環境運用サポートサービスを提供するコーディネーションエンジンです。各ノード(システム全体)を集中保守管理するための機能を提供します。

Apache Ant(アパッチアント)

  • 運用管理・運用自動化

Apache Ant(アパッチ アント)。ビルドツールです。複雑なコンパイル作業を自動化します。「XML記述」「Javaベースであるためプラットフォームに依存しない」などの特徴があります。

Nagios(ナギオス)

  • 運用管理・運用自動化

Nagios(ナギオス)。統合監視フレームワークです。サーバ/ネットワーク/リソース/サービスなどの稼働状況を監視し、異常時に通知を行います。

CuMAS(カマス)

  • ITIL管理

CuMAS(カマス)。オープンソースの問い合わせメール情報管理/運用システムです。受信メールを問い合わせ情報として登録し、進捗/対応状況の管理が可能です。

Kubernetes(クーベルネイテス)

  • 運用管理・運用自動化

Kubernetes(クーベルネイテス)。Dockerコンテナ群管理フレームワークです。コンテナ群のデプロイ/オーケストレーション/クラスタリング管理/運用管理などの各機能を提供します。

Pandora FMS(パンドラエフエムエス)

  • 運用管理・運用自動化

Pandora FMS(パンドラエフエムエス)。オープンソースの高機能統合監視ツールです。ネットワーク/コンピュータシステム/アプリケーション稼働状況などの監視を行います。

Hatohol(ハトホル)

  • 運用管理・運用自動化

Hatohol(ハトホル)。システム全体を一元的に監視する統合運用管理ツールです。複数の運用管理ツール(Zabbix、Nagiosなど)のハブとして統合的に機能します。

Embulk(エンバルク)

  • ログ管理

Embulk(エンバルク)。オープンソースの並列データ転送フレームワークです。「fluentd」のバッチ版のようなバルク処理に特化したプラグインベースのデータローダーです。大規模データセットのバルクインポートを行えます。

Puppet(パペット)

  • 運用管理・運用自動化

Puppet(パペット)。オープンソースの構成管理ツールです。サーバの環境設定/インストールなどを自動化します。

Chef(シェフ)

  • 運用管理・運用自動化

Chef(シェフ)。構成管理(プロビジョニング)ツールです。ユーザ作成、パッケージインストール、設定ファイル編集などの展開作業を自動化します。物理環境/仮想環境/クラウド環境などの各種インフラに対応します。

Logstash(ログスタッシュ)

  • ログ管理

Logstash(ログスタッシュ)。Elastic社が提供するオープンソースログ収集管理ツールです。ログを収集し、1つのサーバに集約して管理します。主に、Elastic社のリアルタイム検索エンジン「Elasticsearch」とのセットでの使用を想定されています。

Ansible(アンシブル)

  • 運用管理・運用自動化

Ansible(アンシブル)。多数の構築管理対象に対して、アプリーケーション/システムのデプロイ作業を容易にする構成管理ツールです。

SyLAS(シラス)

  • ログ管理

SyLAS(シラス)。システムログを高速検索できるソフトウェアです。複数サーバログの一元管理も可能です。Webインターフェースから操作を行えます。

EasySCP(イージーエスシーピー)

  • 運用管理・運用自動化

EasySCP(イージーエスシーピー)とは、仮想ホスティングコントロールパネルです。Linux系サーバの各種管理/設定をサポートします。

fluentd(フルエントディー)

  • ログ管理

Fluentd(フルーエントディー)。オープンソースログデータ収集管理ツールです。ログなどのデータを収集/JSON変換/転送します。「スキーマレス」「プラグイン機構」「バッファリング機構」などの特徴があります。

Bacula(バキュラ)

  • バックアップツール

Bacula(バキュラ)は『世界で最も利用されているオープンソースのバックアップ&リカバリソフトウェア』であり、様々な種類のコンピュータOSに対応したネットワークバックアップ・リカバリー・データ監査ソフトです。

OTRS(オーティーアールエス)

  • ITIL管理

OTRS(オーティーアールエス)。ヘルプデスク機能+ITIL対応運用管理機能を備える高機能オープンソースのチケット管理ソリューションです。「Open source Ticket Request System」の略で、日本語版ウィキペディアも採用しています。

Zabbix(ザビックス)

  • 運用管理・運用自動化

Zabbix(ザビックス)とは、オープンソースの統合監視ツールです。サーバ/ネットワーク/アプリケーションなどを高度に集中監視し、アラート通知/パフォーマンス可視化などを行えます。

Hinemos(ヒネモス)

  • 運用管理・運用自動化

Hinemos(ヒネモス)。複数のコンピュータ群を単一のコンピュータのようなイメージで管理することを可能とする国産オープンソース統合運用管理ソリューションです。

Apache log4j(アパッチログフォージェイ)

  • ログ管理

Apache log4j(アパッチログフォージェイ)。オープンソースのJava プログラム用ロギングユーティリティ(API)。

バックナンバー

関連記事

  • オープソース書籍(サイド)

facebook

twitter