Fujitsu Cloud Direct ブログ

初心者エンジニア向け技術ブログ

【レポート】Ansible超入門

この記事は、ニフクラブログで2023-02-08に公開された記事を移転したものです。

こんにちは。 ニフクラエンジニアミートアップ事務局の鮫島です。

2022年12月22日(木)に第55回ニフクラエンジニアミートアップを開催しました。

今回は、「Ansible超入門~~来年から始める自動化への第一歩~」というテーマで、インフラ構築の自動化を実現する代表的なInfrastructure as Code(IaC)ツールであるAnsibleを題材に自動化がなぜ必要なのか?何から始めたらいいのか?といった内容をインフラ構築に精通した講師陣がやさしく解説するという内容でした。

fujitsufjct.connpass.com

Ansible超入門

ニフクラエンジニアミートアップでは、少年ジャ●ンプと同じくらいアンケートの「次回聞いてみたいテーマ」を重視しています。中でも、要望の多かったテーマのひとつがインフラ構築の自動化です。

昨今、ビジネス環境の変化に迅速に適応できるITインフラとしてクラウド活用が主流になってきましたが、まだまだインフラ構築の自動化は浸透しているとはいい難い状況です。 ソフトウェアの開発手法では、アジャイルもかなり一般的に知られるようになってきましたが、インフラ構築に関しては、まだまだ手順書ベース(もしくは担当者の脳内マニュアル)で行われているのが現実です。

なぜ自動化するといいのか?何を自動化すればいいのか?そういった、基本的な皆さんの人生相談にこたえつつも、実際にAnsibleでこうやればインフラが簡単に"配備"できてしまうんだよ?というところを、まずは宮原徹氏に語っていただきました。

初期設定

まずは、お手元のサーバーにこの界隈ではおなじみのVirtualBoxをインストールして仮想環境を作成するところからスタートです。

Linuxディストリビューションとか好みで

このあたりはもうひたすら淡々と設定を行って環境構築の準備を進めます。
Ansibleのインストールあたりで、ちょっとづつ注意すべき点がでてきます。

一般的にはパッケージでインストールする方法を選びがちですが、ここはひとつPIPでいったほうがハマらないぞ?というのが宮原氏からのアドバイスです。

詳しくは動画のこのあたりからご覧ください。
www.youtube.com

動かすための設定

意外とAnsibleを動かすまでの道のりが長いな…と感じた人が多いと思います。
そうなんです、Ansibleそのものは難しくないですが導入までにひと手間かかります。

下記のような手順で淡々と進めていきます。

 ・ホストインベントリの作成
 ・動作テスト(pingモジュールを実行)
 ・ユーザー権限の設定

ターゲットノードにSSHで接続してコマンド実行するだけ

詳しくは動画のこのあたりからご覧ください。
www.youtube.com

Playbookを作ってみる

ここからが、本番といいますかPlaybookの作成に入ります。
AnsibleのPlaybookっていったいどんなものか?というと

自動化スクリプトのかたまり

だそうです(宮原氏談)

YAML形式で記述しますが、文法?といいますか記法は素人でも判るシンプルさです。
WebサーバーをインストールするというPlaybookを作ってみると…

こいつ、書けるぞ?(手元に参考書があれば)

このPlaybookのファイルを適当なディレクトリに置いて、下記のようなコマンドを実行すればOKです。

$ ansible-playbook webservers.yaml

www.youtube.com

また、Webサーバーをインストールするだけでなく起動する設定や、CentOS系Linuxディストリビューションに実装されているファイアウォール機能「Firewalld」の設定に関する注意点が説明されました。

ガンダムだと思ってましたがジブリ用語でした

ココまで手間をかけて自動化する意味ってなんだ?というお話ですが、こういうまとめです。

 ・Playbookを作るにしてもExcelで手順書は必要
 ・Playbookならば何となく読めば何をやっているか分かりやすい
 ・要は自分が手動でやっている作業をいかに効率化するか
 ・自分のタスクをいかにシンプルに他人に引き継げるか

こういう観点で、AnsibleのPlaybookで自動化を行っておくと結果的に楽ですし、引き継ぐ側も幸せになれるということでしょうか。

このあたりから、最後までご覧ください。 www.youtube.com

インフラエンジニア向け3daysインターンシップAnsible編

続いて、ニフクラの中の人である富士通クラウドテクノロジーズの柏喬之氏のセッションです。

FJCTの3daysインターンシップとは?

2022年の9月に同社で実施したインフラエンジニア向けの3日間連続のインターンシップで、Ansibleを使って実際にニフクラの裏側でやっている構築作業を体験!というのを実施した話でした。

インフラエンジニア志望者には夢のようなプログラム

このご時世なので、リモート開催でしたがほとんど全員フルリモートで業務を行っている同社ならではのプログラムで、実際の業務に限りなく近い環境を体験できたようです。

www.youtube.com

インフラ構築自動化ワークショップ

まず、Ansibleに関して座学で理解を深めた後に、実際に手を動かすという「インフラ構築自動化ワークショップ」を実施して、何を自動化したらいいのか?を考えて実際にPlaybookを作成して最終的に自動化による成果をチームごとに発表し合うという内容です。

宮原氏のセッションでも出てきましたが、「自動化することで何が良くなるのか?」という視点は非常に重要であり、企業としてインフラ構築の自動化に取り組むにあたっては、まずこれを明確にした方が良さそうです。

この演習で面白いなと思ったのは、「自動化する対象を自分で考える」必要がある点です。

皆さん参加者のレベルの高さに驚いていました

インフラ構築自動化ワークショップについてはこのあたりからご覧ください。

www.youtube.com

富士通クラウドテクノロジーズでは、どのような思想でインフラ構築を自動化しているかが分かる記事がありますので、こちらもぜひご覧ください。

tech.fjct.fujitsu.com

QAセッション

宮原氏と柏氏のセッションに関するかなり具体的な質問が次々に飛び込んできましたが、参加者がSlidoの質問欄を使って他の方の質問に回答する一幕もあって、かなりの盛り上がりでした。

インターンシップの演習に関する質問では、デプロイというのは何を指しているか(Ansibleでどこまで自動化したか?OSのインストールだけでなくネットワークの設定も含めて行っているか?)というものが興味深かったです。

www.youtube.com

また、Ansibleでネットワーク装置に関する設定を自動化することの必要性に関する質問も、「なぜ自動化が必要か?」という今回のテーマの本質を突く内容で、良い質問だな!と思いました。

宮原氏の回答にご期待ください。 www.youtube.com

・・・いうことで、「Ansible超入門」大盛況のうちに終わることができましたが、Terraformなどその他のツールの話などもできるといいな!と考えています。

なお、こちらの記事も合わせてお読みください!

blog.clouddirect.jp.fujitsu.com

これからご参加くださる皆様、ぜひアンケートに「次はこういうテーマのセッションが聞きたい!」という要望をどしどし御寄せください。

それではまた次回をお楽しみに。