Infrastructure as Codeで変わる運用管理の現場【最終回】
「Vagrant」と「Ansible」でInfrastructure as Codeを体験してみよう(2/2 ページ)
2.AnsibleでWebサーバ構築の手順をコード化
Ansibleについても簡単におさらいしておこう。Ansibleはプログラミング言語のPythonで実装されたオープンソースの構成管理ツールである。上述の通りコード化された手順書はPlaybookといい、「YAML」という構造化テキストで記述する。プログラミング経験のない情報システム担当者でも使い始めることができるだろう。
今回は一般的なWebサーバである「Apache HTTP Server」(以下、Apache)を、パッケージ管理コマンドの「apt」でインストールした後、テンプレートから生成したWebページを配置し、Apacheを再起動するという手順をコード化してみる。テンプレートを使うことで、ファイルの中にAnsibleの変数を埋め込むことが可能になる。例えば、サーバごとに異なる設定を変数化しておくことで、Playbookやテンプレートを共通化できる。
# 作業ディレクトリを移動
$ cd ~/techtarget
# エディタでPlaybook(playbook.yml)を作成
$ vi playbook.yml
# ここからplaybook.ymlの内容
- hosts: all
# root(管理者)権限でPlaybookを実行
become: true
# my_nameという変数を定義
vars:
- my_name: "Akihiko Horiuchi"
# サーバで実行する手順をリストアップ
tasks:
- apt: # aptコマンドを抽象化したモジュール(ひとまとまりの機能を持った部品)
name: apache2 # apache2パッケージを操作対象に指定
state: latest # 最新バージョンをインストール
- service: # serviceコマンドを抽象化したモジュール
name=apache2 # apache2サービスを操作対象に指定
state=restarted # サービスを再起動
- template: # テンプレートからファイルを生成
src=index.html.j2 # ローカルのテンプレートを指定
dest=/var/www/html/index.html # リモートの配置先を指定
# エディタでindex.html.j2を作成
$ vi index.html.j2
# ここからindex.html.j2の内容
Hello, my name is {{ my_name }} !
Ansibleではテンプレートエンジン(テンプレートから設定ファイルを作成するライブラリ)に「Jinja2」が利用でき、Jinja2の記法に沿ってテンプレートを記述する。{{}の部分で変数を埋め込んでいる}
Vagrantで構築した仮想サーバに、Ansibleを使って実際に構成変更を実施する。通常Ansibleを実行する場合は「ansible-playbook」コマンドを使用するが、今回はVagrantに同梱されているAnsible用のプラグイン(拡張機能)を使って実行する。
# Vagrantで構築した仮想サーバに構成変更を実施
$ vagrant provision
Vagrantは主要な構成管理ツール用のプラグインを同梱しているため、構成変更が簡単である
Ansibleを実行した後に、Webブラウザで仮想サーバ(IPアドレス: 192.168.1.2)にアクセスすると、「Hello, my name is Akihiko Horiuchi !」と表示され、変数が埋め込まれていることを確認できる。playbook.ymlの「my_name」を自身の名前に変えて再度「vagrant provision」を実行してみると、Webページの内容が更新され、Ansibleの動作についてより理解が進むはずだ。
このように手順書をコード化しておくことで、環境構築をコマンド1つ実行できるようになったり、他のサーバで使えるように汎用(はんよう)化、共通化できるようになったりする。Ansibleには他にもさまざまなモジュールが用意されているので、ぜひ試してみてほしい。英語ではあるが、公式ドキュメントが充実していることも大きな手助けになるだろう。
3.連載の終わりに
本連載では、Infrastructure as Codeの概要から構成管理ツールの紹介、チュートリアルと実施してきた。仮想サーバなどのインフラや、構築の手順書などをツールを使ってコード化することで、自動化やバージョン管理ができるようになる。
今後、「DevOps」(開発担当者と運用担当者が連携してサービスを開発、運用する概念)やクラウドと関わる上で、Infrastructure as Codeは重要な要素になってくるだろう。本連載をきっかけに、ぜひお手元の手順書をコード化して、Infrastructure as Codeを実践していただければ幸いである。
堀内晨彦(ほりうち・あきひこ)
生まれも育ちも香川県。香川大学大学院 情報科出身。学生時代は研究の傍ら、勉強会やコミュニティー活動に積極的に参加し、「Hubot×ChatOps勉強会」などを主催。2016年4月からは上京し、ICT企業でクラウドエンジニアの見習い中。趣味は料理とカメラ。
Copyright © ITmedia, Inc. All Rights Reserved.
Infrastructure as Codeで変わる運用管理の現場
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
9
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
10
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー