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で変わる運用管理の現場
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
5
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
6
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
7
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
10
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー