Photo by Sai Kiran Anagani on Unsplash
みなさん “Ansible” ってご存知ですか? 最近、エンジニアをやっていると良く耳にする名前かもしれません。それと合わせて、“Infrastructure as code” なんでいうのもよく聞きますよね。
“Infrastructure as code” というのは、文字通り “インフラをコード化する” ということをさしており、コードで管理するツールを “構成管理ツール” なんて呼ばれ方をしています。
代表的な “構成管理ツール” には、”Chef” や “Puppet” などがよく取り上げられます。そのツール類の中でも、とりわけ最近人気があるのが、“Ansible” です。
簡単にいうとサーバとかネットワークの構成をコードで管理するためのツールが “Ansible” となります。
今回、私が実際に “Ansible Expert” 向けのセミナーを受けにいってきました。セミナー受けてみて、そしてEX407試験を受けてみてどのようなことを感じたのかについて、次のようなs視点で書いていこうと思います。
- そもそもAnsible Expertって何?
- どんな試験なの?
- どんな対策が出来そう?
- 試験時間/難易度はどんな感じ?
など
Ansible Expert(EX407) について
文字通りAnsible のエキスパートであることを証明してくれるRedhatの認定試験の1つです。
“Ansible Expert” になるためには、4日間の教育を受講後に1日ラボ試験を受けるというのが一般的な流れのようです。
私の場合も、5日間(4日間の教育受講+1日試験)の教育をみっちり受けてきました。
魅力的なセミナーがあったとしても、やはり気になるのが、受講費だと思います。正直な話、自費で受講するのは勘弁していただきたい金額です。私の場合、幸いなことに会社で出していただけました。
ちなみにご参考情報ですが、本日時点(2018/09/24)でのセミナー費用は、次の金額です。
・セミナー費用:\265,000(税抜き)
これはよっぽどの覚悟がないと、一般的なサラリーマンには出すのが惜しい金額ですね。
ふーん。それでどんな内容を勉強できるの?と気になると思いましたので、主な受講内容を拾ってきました。気になる方はご参照ください。
以下、ご参考
教育コースの主な内容
- コース概要
コース概要の確認 - Ansible の概要
Ansible の用語とアーキテクチャの説明 - Ansible のデプロイ
Ansible のインストールとアドホックコマンドの実行 - Playbook の実装
Ansible Playbook 作成/実行 - 変数とインクルードの管理
変数のスコープと優先順位、Playbook中の変数やファクトの管理
インクルードの管理の説明 - タスク制御の実装
Ansible Playbook のタスク制御、ハンドラー、およびタグの管理 - Jinja2 テンプレートの実装
Jinja2 テンプレートの実装 - ロールの実装
ロールの作成および管理 - 複雑な Playbook の設定
接続タイプ、デリゲーション(権限移譲)、および並列処理の設定 - Ansible Vault の実装
Ansible Vault による暗号化の管理 - Ansible のトラブルシューティング
Ansible 制御マシンおよび管理対象ノードのトラブルシューティング - Ansible Tower の実装
Ansible Tower の実装
※ほぼAnsible Tower機能の説明が中心です。Ansible Tower向けに別コースがあります。 - DevOps 環境での Ansible の実装
DevOps 環境における Vagrant を使用した Ansible の実装 - 理解度の確認
Automation with Ansible のタスクの復習
Ansible Expert 試験の難易度
資格を取ろうとなったとき、事前に知っておきたいのが難易度だと思います。超難関なら諦めもつきやすいし。。。望む覚悟も変わります。
私が感じた試験のレベル感の話をすると、CCNAよりも簡単で、IPAの応用情報試験と同じくらいな感覚です。
正式な合格率についてはベンダーから公表されていませんが、周囲の合格者数/ネットでのクチコミ/セミナー講師の話を勘案すると、合格率は30%~40%※といったところでしょう。※あくまでも私見です。
試験の難易度って実際どのくらい?
さきほど、個人的にはIPAの応用情報レベルと書きましたが、もう少し考えてみると、Linuxの操作スキルレベルもちょっと関係あるかなと思います。
- Linuxをほとんど触ったことない人(基本的なLinuxコマンドもほとんど知らない。)
⇒ ちょっと難しいかも。 - Linuxをある程度使いこなせる人(Shellスクリプト含む)
⇒ ansible-docとか見ながら、プレイブックを組み立てることが容易にできるので、比較的難易度は低め。 - プログラムのデバッグとかできる人
⇒ コードのミスを見つけやすいので若干有利
たとえば、Linux の chmod(change mode)の設定(0755とか0644)とかも知らないと試験中に迷ってしまいます。
試験の内容以外で重要なこと
試験では、個人ごとに専用の仮想環境が用意されますが、そのときに、emacs などのエディタは入っていません。
そのため、必然的にテキストエディタは、vi (vim)になります。そのため、viで操作ができないと試験で苦しむことになるので、vi 操作スキルはほぼ必須です。
試験の前にやっておきたいこと
上記のとおり、vi(vim)を使うことになるので、viの初期設定をできると少しでも有利に試験を進めることができるようになります。実際の試験では、下記設定が入っていないため、設問を解く前にいれておくことをオススメします。
vi(vim)の初期設定
- set tabstop=2
タブキーをスペースで入力することができます。
Ansible のPlaybookはタブが使用できないため、タブがコード中に入っているとエラーになります。見た目では判断しにくいところなので、間違って入力自体しないようにしましょう。
また、インデントの位置をスペースキーで頑張るより圧倒的に楽です。 - set cursorline
コードが長くなってくると、インデントの位置が分かりにくくなってしまうため、この設定を追加するとコードが見やすくなります。 - set number
必須ではないですが、行番号が表示されるので、デバッグなどが行いやすくなります。
設定ファイルは下記にあります。
・vi の環境ファイル ~/.exrc
・vim の環境ファイル ~/.vimrc
Linuxのコマンド知識
あとは、基本的なLinuxコマンドを知っていて、実際に使ったことがあれば、試験的には困ることはないと思います。
- cd(チェンジディレクトリ)
- copy
- mkdir(メイクディレクトリ)
- wget/curl
- cat
- man
- systemctrl start/enableなど
試験について
具体的な試験内容については書けませんが、試験を進める上で有利になりそうな参考情報をいくつか書いておきます。
試験時間:4時間
一般的なベンダー試験に比べると長丁場での試験になりますが、試験問題を解きつつ、デバックをしながらいくと、意外と短く感じると思います。
1つの問題に躓いてしまい、そこにばかり時間をかけてしまうと、あとで時間が足らなくなってしまうので、出来るところからやっていくことをオススメします。
詳しいことは書くことはできませんが、前後の問題が直接関連するようなことは少ない気がします。
※ホストリストをうまく設定できませんとか、そのレベルだとそもそも動作確認とかができないので、試験を受けるのはやめておいた方が良いです。
ただし、Ansibleを頻繁にさわるような人なら1時間あれば終わるような試験な気がします。
試験におけるヒント
- 一通り解き終わったら、対象ノードを初期化して再度Playbookを実行する
試行錯誤して問題を解いていくような形になりますので、間違った設定をいれてしまい。想定どおりの結果になっていないことが多々あります。そんなときは、つまらないミスを防止する上でも、再度実行する方が良いです。 - 試験中に頻繁に使うコマンドはalias を設定する
特にPlaybook のデバックコマンドは、何度も打ち込むことになるのでalias登録しておくと便利です。◆設定例:Playbookのデバッグコマンド追加alias <登録したいエイリアス名> ='ansible-playbook --syntax-check'
◆使い方:下記コマンドでデバッグ可能
<登録したエイリアス名> Playbook-sample.yml
- 設問全部の解答ができなくても記述できるところは、記述する
実際の採点基準は良くわかっていませんが、完全な解答ができていなくても配点があるような気がします。
最後に一言
現時点では、日本での取得者数があまり多くなさそうなので、そこまで情報が回っていなそうです。今回書いた記事が、今後試験を受験する方の助けになれば、うれしく思っています。
コメント
詳しい試験対策ありがとうございます。すごい勉強になりました。
私は来週EX407を受けるものです。
一つお聞きしたいことがありますが、大丈夫でしょうか。
試験場ではグーグルなどは使えず、
ansible-docしか頼れない環境ですか?
個人的には「docs.ansible.com」をよく参考しながら、作業してきたので・・・。
試験前に返事できず申し訳ありませんでした。全然気づきませんでした;
いまさらの返信になって申し訳ないのですが、docs.ansible.com は見れなかったはずです。