第12章 コードとしてのインフラ :Ansibleによる自動デプロイ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
自動化せよ、自動化せよ、自動化せよ。
Cay S. Horstmann
サーバが起動して動作している状態になったので、 Dockerイメージとコンテナを使ってアプリをインストールする。
手動で行うことも可能だが、 現代のソフトウェアエンジニアリングにおける重要な知見は、 小規模で頻繁なデプロイが必須だということだ。
注記
頻繁なデプロイの重要性に関するこの知見は、 ニコール・フォースグレンと DevOpsレポートに負っている。 これらはソフトウェア工学分野において、数少ない確固たる科学的知見だ。
頻繁なデプロイは自動化に依存する。1 そこでAnsibleを使う。
自動化は、デプロイに対するテストの信頼性を確保する上でも重要だ。ステージングサーバを構築する手間をかけるなら、2 本番環境と可能な限り類似性を確保したい。 デプロイ方法を自動化し、ステージングと本番で同じ自動化を活用することで、 我々はより大きな信頼性を得られる。
近年のデプロイ自動化の流行語は「コードとしてのインフラ」(IaC)だ。
注
サイトが公開されたら、 私にメールで知らせてくれないか? URLを送ってくれ。 いつも温かい気持ちになるんだ…メールはobeythetestinggoat@gmail.com まで。
Ansibleプレイブックによるデプロイの初歩
Ansibleをもう少し本格的に使ってみよう。ただし最初から最後まで一気に進めるわけじゃない。 いつも通り、小さな一歩から始めるんだ。 サーバ上でシンプルな「hello world」Dockerコンテナを実行できるか試してみよう。
古い「ping」関連のコンテンツを削除し、 次のような内容に置き換える:
infra/deploy-playbook.yaml (ch12l001)
----hosts:alltasks:-name:Installdockeransible.builtin.apt:name:docker.iostate:latestupdate_cache:truebecome:true-name:Runtestcontainercommunity.docker.docker_container:name:testcontainerstate:startedimage:busyboxcommand:echohelloworldbecome:true
Ansibleプレイブックは一連の「タスク」で構成される。現在複数存在する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access