■ はじめに
みなさん、はじめまして。システム基盤サービス事業本部 技術開発部 自動化グループの横地(@akira6592)です。 普段は、主にネットワーク自動化に関する業務を行っています。
その他、個人ブログ「てくなべ」を書いたり、Ansible ユーザー会、JANOG、DevLOVE などのコミュニティにおじゃましたりしています。
好きなものは、ネットワークと Ansible です。
先日、Ansible の認定試験である EX407 (Red Hat Certificate of Expertise in Ansible Automation)に合格しました。この記事では、私の学習方法や感想などをまとめます。
【目次】
※試験の出題内容そのものには触れません。また、同じ学習方法で合格を保証するものではないのでご了承ください。
■ EX407 とは
EX407 では
Ansible を使用してシステムおよびアプリケーションの設定を自動化する能力をテスト
します。
引用元: https://www.redhat.com/ja/services/training/ex407-red-hat-certificate-expertise-ansible-automation
4時間というボリュームのある試験です。範囲は説明ページに掲載されています。
関連のトレーニングとしては DO407があります。トレーニングと試験がバンドルされたDO408もあり、まとめる分お得な価格設定になっています。 トレーニングは必須ではなく、いきなり受験することもできます。
受験費用
40,000円(以前は 90,000円でしたが、最近値下げされました。)
申込み方法
Red Hat 社のサイトや販社、教育サービス提供会社(例: 日本サードパーティ) などを通じて申し込みます。
スケジュールと会場
会場受験のスケジュールは RED HAT トレーニングのページの右上にある「スケジュールPDF」から確認できます。月に1回あったりなかったりといったところでしょうか。
会場は、品川御殿山と大阪江坂にあります。オンサイトやオンラインでも受験可能のようです。
その他、トレーニングに関するQ&Aはこちらから。
■ 学習方法
学習し直す方針に
試験対策を始める前の私の状態としては、Ansible のネットワークモジュールの使い方や、比較的最近のバージョンの新機能などはある程度知っていたものの、知識がとても偏っていました。Linux と vi に関しては基本的な操作はできる状態でした。
この状態では、体系的な知識が求められるであろう試験に太刀打ちできないと感じたため、基礎から学習し直す方針にしました。
大きく分けて以下の3つの方法で学習し直しました。
- (1) 書籍の再読
- (2) よく利用されそうなモジュールのおさらい
- (3) Linux Academy の EX407 対策コース
以下、それぞれ具体的にご紹介します。
(1) 書籍の再読
ある程度読んだことのあった 以下の 2冊を再読しました。
内容が詰まっていますので、全てを完全に理解しながら再読することは難しいです。そのため、基礎的な箇所に絞りました。クラウドや仮想化、OpenStack、コンテナなどのプラットフォーム固有の箇所は、流し読み程度に抑えました。
再読しながら、重要だと思ったこと、あいまいだったこと、間違えそうなことなどを自分用のメモに書き残していきました。
(2) よく利用されそうなモジュールのおさらい
前述のように、自身の知識にかなり偏りがあったため、よく利用されるであろうモジュールにも不慣れなものがありました。
オプションが多いモジュールもあり、すべてのオプションを把握するのは難しいです。そのため、各モジュールの説明ページの Examples (yum モジュールの場合はこちら)のうち上から2〜3個目程度の使い方を、何も見ないで使えるようにしました。
試験中、ansible-doc
コマンドなどでモジュールの説明を参照できることを見込んでいましたが、毎回調べていると試験時間がなくなってしまうため、ある程度は体になじませておきました。
具体的におさらいしたモジュールは以下のとおりです。一部は、個人ブログにアウトプットもしました。
モジュール名 | 個人ブログ記事 |
---|---|
setup | |
file | 記事あり |
template | 記事あり |
copy | |
replace | |
lineinfile | 記事あり |
archive | |
unarchive | |
get_url | |
command | |
shell | |
script | |
yum | 記事あり |
service | 記事あり |
user | 記事あり |
他、モジュールではありませんが、せっかくなので学習中にブログに書いたものがあります。
機能名 | 個人ブログ記事 |
---|---|
YAML によるインベントリ | 記事あり |
custom facts | 記事あり |
(3) Linux Academy の EX407 対策コース
Linux Academyという有料のオンライン学習サービス(英語)があり、さまざまなコースや用意されています。EX407 対策として Red Hat Certified Specialist in Ansible Automation (EX407) Preparation Course というコースがあったので、こちらを取り組みました。
内容
アドホックコマンド、インベントリ、Plyabook、ロール、Vault など広い範囲をカバーしていて、それぞれ「解説」「クイズ」「ハンズオンラボ」があります。
解説は一通り聞いて、知らなかったこと、あいまいだったこと、間違えそうなことなどを自分用のメモに書き残していきました。
クイズは選択問題になっていて、繰り返し何度も解きました。再チャレンジすると知らない問題が出てきたりしたので、全問正解だったとしても繰り返し解きました。
ハンズオンラボも繰り返し取り組みました。最後の「Hands-On Lab: Red Hat Certified Specialist in Ansible (EX407) Practice Exam」は 4時間コースです。本番試験も 4時間なので、本番を想定した通しのコースのようだったので、特に重点的に取り組みました。最終的には、問題と解答を覚えてしまいそうだったこともあり、1時間以内で終わるようになりました。
なお、一緒に学習を進めていた同僚にも確認しましたが、ハンズオンラボには解答が間違っているところもありました。
価格
Plans & Pricing というページの記載どおり2つ価格プランがあります。7日間は Free Trial 期間です。 また、チーム用のプランもあるようです。
■ その他気を付けたこと
自分の悪いクセを知る
Playbook を書いたりしていると、自分がよく忘れたり間違えたりするポイントが分かってきました。それらのポイントを書き残して、気をつけるようにしました。私の場合、具体的には以下のポイントでした。
become
忘れがち- ユーザー、サービス、パッケージなどの管理時
copy
やfile
モジュールでmode
、owner
、group
オプション忘れがち- シェルスクリプトの実行権限や、鍵のパーミッションなど
- ディレクトリ作り忘れがち
unarchive
モジュールのdest
オプションは絶対パスrescue
のスペルをrescure
に間違いがち
Playbook 用の .vimrc
を決めておく
試験で vim しか使えないことを想定して、自分なりの Playbook 記載用の .vimrc
を予め考えておきました。Playbook は YAML 形式なので、スペースによるインデントの数が重要です。YAML としてミスなく、効率的に Playbook を書くためにこれらの設定をすることにしました。
set expandtab set softtabstop=2 set shiftwidth=2 set autoindent
詳細は、個人ブログの方に書いておきました。 [Ansible] Playbook(YAML)のための vim のインデント関連設定 - てくなべ (tekunabe)
■ 感想・まとめ
ひとことで言うと、私にとってはなかなかヘビーな試験でした。
試験当日は制限時間ギリギリまで見直しを行いました。残り5分くらいで、 Playbook の書式自体には問題ないものの、要件上致命的なスペルミスを発見し慌てて直しました。Playbook がエラーなく実行できただけで安心せずに、一問ずつきちんと結果を確認すれば防げたものでした。
過去の自分へアドバイスするとしたら、
- 基礎をしっかりすること
- 確認もしっかりすること
- ある程度は体で覚えて早く Playbook を書けるようにしておくこと
といったところです。
試験範囲としては広い印象で、体系的に身につけるきっかけとして良い試験だと思いました。
ところで、RED HAT CERTIFIED ENGINEER LEARNING PATH という資料(PDF) には「Advanced Automation: Ansible Best Practices DO447」や「Red Hat Certified Specialist in Ansible Best Practices exam EX447」が Coming Soon とあります。こちらも少々気になっております。
[2019/07/10 追記] DO447/EX447の説明ページができていました。