Ansible

Ansible Night Online 2021.02に参加しました!

アイキャッチ

Ansible Night Online 2021.02に参加したので、感想を書いていきます
ブログ枠ではないです。わからない情報が多かったので、情報を整理する目的です

今回は運用にフォーカスを当てた会とのことで、運用に関わる最新情報や成功話・苦労話が中心になっていました

よくわからなかった箇所が多く、何度も配信を見直して理解した上での感想です
ご了承ください

投稿者のAnsibleレベル

一人で構築作業を自動化するために使っているだけです…
OSの設定からミドルウェアのインストールまではAnsibleで自動化して作業の効率化ができるレベルです。Ansible完全に理解した

現状、インフラチームは私しかいないのでコーディング規約など存在せず、自分がわかればいい雑環境でございます

そもそもSier勤務なので、運用には一切関わることができません!
障害時の保守だけ担当している状態です

『AnsibleFest2020 Recap』さいとうひでき さん

Japan Ansible User Groupに所属されている、全Ansible Nightに参加されているすごい人
AnsibleFestの技術トピックから運用に関するものをピックアップして解説して頂きました

AnsibleFestとはAnsibleコミュニティの最大のカンファレンスで、2016年から北米を中心に年1回ほど開催されている
今年は情勢からオンライン開催

AnsibleFestは2020年の10月に開催されたようなのですが、私はまったく把握できていませんでした…
ここで内容を少しでも聞くことができたのでありがたかったです

登録すれば見れるようになるらしいですが、英語ですよね…

Private Automation Hubについて

Private Automation Hubは次世代のAnsible Galaxyプロジェクトで、GalaxyとAutomation Hubのポータルをオンプレミス環境に構築することができるとのこと
そもそもAnsible Galaxyとは?Automation Hubとは?の雑魚でしたのであまり理解できませんでした…
なので、まずはわからないことを理解します

Collectionsとは?

Playbook、Role、moduleおよびプラグインを含むことのできるAnsibleコンテンツのディストリビューション形式とのこと

Ansible2.9まではいろいろあったモジュールがAnsibleに同梱されていたが、Ansible 2.10からコアな機能以外は分離されてCollectionという形で導入することになったらしい
Red Hatのサイトを読む限り、Ansible自体のリリースサイクルとモジュールのリリースサイクルを分離するためっぽいですな

そのため、Ansible2.10では基本機能はansible-baseという名前に、分離されたCollectionのセットはansibleでインストールできる

この分離されたCollectionを配布しているのが、Ansible GalaxyAutomation Hubらしい

この前提を理解していないからよくわからなかったんだわ

Ansible Galaxyとは?

Ansibleのコミュニティが開発したロールの検索やダウンロード、共有を行うことができるGalaxyのWebサイトのこと

つまり、他人が作成したAnsibleのroleを簡単に利用するためのハブということ
車輪の再開発をしなくて済む!
もっと早く知っておくべきだったわ!!

Automation Hubとは?

Collectionを導入するとAnsibleのコンテンツの提供がやりやすくなる
しかし、どのコンテンツをどのユーザーにどのバージョンで提供するかなどを管理する必要がある
これを解決するのがAutomation Hub

Red Hatがサポートするテスト済みのコンテンツをユーザーに提供するので、信頼性が高い!Red Hatのサポートもある!
個人でも勉強のために見ることできるのかな?⇒Red Hat Ansible Automation Platformサブスクリプションが必要そう。評価版は60日のみ…

そもそも、Automation HubはSaaSサービスなのでクローズド環境で利用できない
これを解決したのがPrivate Automation Hub

Private Automation Hubについて

オンプレ環境にハブを作ることができ、Collectionsをクローズな環境を提供でき、外部に公開しない社内用のCollectionsの配布も可能になる

GalaxyとAutomation Hubをキャッシュしておける環境
コンテンツをこのHubで一括管理することで、どのコンテンツをどのユーザーにどのバージョンで提供しているかはわかりやすくなりますね

Playbook Runtime Enviroment

コンテナのようにAnsibleの実行環境が作れるようになるらしい
それがAnsible Runner, Ansible Builder, Receptorでできる?

Ansible Runnerが実行環境を提供し、Ansible Builderがその環境をお手軽にBuildする役割
今月のsoftware designにやり方が載っているとのこと!

確かに今はVMやVirtualBox上の仮想マシンでAnsibleの実行環境を作っていた。コンテナとしては実行環境を作ったことがなかった
Ansible実行環境すらも作っては壊して運用するようにしようという感じなのかな

Receptor

分散実行を提供するもの
コントロールノードからReceptorを経由してワーカーノードに対して実行することができる

大規模なシステム用なのかな
Ansible Towerを使ったことがないので、何が良くなったのかあまり理解でき
ませんでした…

感想

そもそもの前提知識が足りていなかったので、初見ではさっぱりわかりませんでした!
わからない箇所を理解しながら聞くとだいたいはわかりました

Galaxyは名前を聞いたことはあったのですがちゃんと理解できていなかったことがわかったので、今後活用して生産性をUPさせていきます

とりあえずソフトウェアデザイン 2021年2月号を買って、Builderを体験してみようと思いました!!

『組織で自動化に着手する前に行うべきだと感じた3つの下拵え』鎌田 健司 さん

Network業務の自動化をされている鎌田さんのお話でした
気になった言葉があったので、まずはそれをしらべました

Pets Model vs Cattle Model:『サーバはペットではなく家畜として扱え』

検索でできたページでよく理解できました:ペットと家畜 [和訳]

従来はどのサーバも愛情を注いでペットのようにお世話をしていました。しかし、クラウド時代では家畜のように病気になったら元気な家畜と入れ替えればよい状態にできる

ペットサーバは障害が起きてダメになった場合は手動で再構成など非常に手間がかかります。復旧するまでにどれくらいの時間がかかるのでしょうね

家畜サーバは障害が起きてダメになった場合はすぐに終了させて新しいサーバを再構築して入れ替えれば済みます。自動で補填する機能を実現しておけば、サーバがいなくなるのはものの数分程度でしょう

今の私が働いているところだと、ペットサーバしかいませんでした
そもそも全てがオンプレ環境なので、物理サーバが壊れれば新しく手配して手動で構築してデータをリストアさせて必要があります。なんという愛情でしょうね

やっぱりクラウドすかね。オンプレエンジニアからクラウドエンジニアになるしかねぇ

感想

運用にかぎらずチームの心理的安全性は大事ですよね
過去の自分を振り返ると、心理的安全性はまったく考えられていないことが多かったのでとても心に刺さります

自動化を進めるだけではなく、他の業務改善とかでも同じことが言えそうだと思いました
根回し的な感じですかね

Ansibleは銀の弾丸ではないはその通りですね。一人で使っていてもなんでもできるわけではないというのを感じています
4台のサーバしか作らないので、AnsibleでIaCする意味がないとかは経験しましたねー

自動化といってもAnsibleをただ導入するだけではなく、ちゃんと業務改善なんですね
だから業務分析は必須!大事じゃなくて必須と感じました

手法としてのバリュー・ストリーム・マッピングは聞いたことがあるけど、SIPOCやLogic Treeは聞いたことがなかった
勉強しないとなー

チーム開発でAnsibleを使ったことがないので、チームでの下拵えについてはピンときませんでしたが、Coding規約などは未来の自分のためにも決めておいた方が良さそうでした

ずっと一人でAnsibleを使っているので、チームで業務改善をする仕事もしてみたいなと思いました

『極度自動化したいといわれて困った話 ~某自動化推進チームの場合~』ウォーカー イアン さん

組織で自動化を推進する際の苦労と成功のお話でした

感想

自分は一人で寂しくやっている状態ですね…
大きいそうな会社でも10年以上かかっているので苦労がすごそうです

そして、ここでもpetとCattleモデルのお話ということは、サーバは大事にするのではなく作っては壊す時代になっているのだなと感じました

鎌田さんのお話でもありましたが、Ansibleは銀の弾丸ではないので現状の業務分析が必須
何が問題で何を改善する必要があるか、つまりゴールの明確化

開発手法はプログラミングの領域と思っていた自分でしたが、プログラミングではなくプロダクトに対して必要でしたね
イアンさんのお話では自動化推進というプロダクトで、ビルド・テスト・プロモートのサイクルをまわしていく

組織で自動化を推進することは、業務を変えてしまうことになるから色々なことを考える必要があってものすごく大変そうだと感じました
一人で小さくやっている現状では、なかなか想像もつきません…
それでも、会社で働いている人がハッピーになりつつ利益も上がる状態に持っていくために頑張っていくしかないのかなーと感じましたね

『チームでPlaybook開発する時の心構え/仕組みづくり』jiro01030 さん

大規模システムをPlaybook化した際の反省点などのお話しでした
一部わからないところは先に理解しておきます

Lintとは

コーディング規約チェックツールです
ansible-lintやyamllintなど、様々なプログラミング言語に限らず専用のものが存在しているようです

akira6952さんのつまずきAnsibleが良いそうです!

スペースやインデントなどは目で見るのはつらい指摘になるので、機械に任せてしまうという考えですかね
書き方が統一されていると、個々人の差が減って読みやすくなるのかな

Moleculeとは

Ansible roleをテストするツール
roleの構文チェック、実行環境構築、実行テスト、実行環境削除までやってくれるとのこと

テストや実行環境生成など毎回個別のツールを実行する必要がなくなり、Molecule1つでできるようになる

すごい便利だな!!!

感想

コーディング規約に沿っていないなどの細かな指摘が多くなり、メンバー間の心理的安全性がなくなってしまったのかなと思いましたね

そこでLintを導入して機械に指摘してもらうようにしたというのは、なるほどと感じました
規約自体は機能に影響がないので機械に任せ、本質的部分だけを人が見るようにしたんですね

Lintの導入から先に進んで、インフラCIパイプラインまで構築されているのはすごいと思いました
Ansibleコマンド叩いているだけじゃだめですね。自分も精進します

『Ansible Towerをみんなで使うためにやったこと』hito58 さん

Ansible Towerを運用で使う際のお話でした

感想

Ansible Towerを使ったことがないので知りませんでしたが、インベントリに登録するhostsの数でライセンスの費用が決まるんですね!
groupは数に含まれないとのこと

リポジトリを1つにして、管理の手間を減らしたのかなと感じました
全員がユニークな処理をしているわけではないので、車輪の再開発をしなくなることにもなるのかな?

『MSP企業でAnsibleを浸透させる難しさ』10key3 さん

Ansibleを浸透させることの難しさについてのお話でした

感想

本題とは関係ありませんが、スライドのデザインが凝っていて、非常に記憶に残りました
デザインも軽視してはいけませんね

鎌田さんとイアンさんのお話を聞いた後だと、組織へのAnsibleの導入はなんだかんだ言ってもできるものなのかなーという印象を持ってしまっていました
100%の信頼性がないのと同じで、うまくいかないこともありますよね

ボトムアップとトップダウンの両方から頑張る必要もあり、組織を変化させることができる勇気が必要なのかなと感じました

Ansibleは楽しい!
自分もみんな使えばいいのにと思っています

『モジュール開発と運用』naka-shin1 さん

Ansible Moduleを開発している上で、運用を考えて工夫している点のお話でした

感想

私は基本的に使う側なので、作る側の人がどのように考えているかを知ることができたのは面白かったです

アジャイルではないですけど、作っただけでは終わりじゃなくてフィードバックをもらってより良くするのはどこでも大事ですね

『AnsibleとCloudFormationの組み合わせでトレーニング環境を運用している話』 mito さん

Ansibleのトレーニングで使用するトレーニング環境の構築についてのお話でした
またまたわからない単語がでてきたので調べます

CloudFormationとは

AWSのシステム構成をJSONのテンプレートで定義し、管理・修正・再利用を容易に行えるサービス

JSON形式なので、Gitなどで管理がしやすいとのこと
IaCですな

Ansibleを使ってCloudFormationが操作できるのかって疑問ができましたが、Moduleが提供されているようなので問題ありませんでした!!
めちゃくちゃ便利ですね!!!

感想

やっていること自体がすごくて、すげーって感想ばっかりでした

ここでも家畜モデルですね
みんなが好きに使ってよいサーバだとどんな状態となっているかわからないので、新しく構築したほうが速い
クラウドで好きに作ったり壊したりできるからこそですね

そもそもオンプレ環境で仕事している私には縁遠いな
と思いましたが、KVM上でVMを立てる際はkickstartファイルでOSを作ってSSHだけできるようにしたらAnsibleとしていたのでできなくはなさそうです

『自滅のAnsible』しゃうち さん

大規模案件特有の自動化の難しさ、失敗談と改善策のお話でした
自らも自滅されかけていたのは笑うポイントですかね笑

リーフ・スパインネットワークとは

リーフスイッチスパインスイッチの2層構成ネットワーク
リーフスイッチとスパインスイッチはお高いに全てつながっているが、リーフ同士、スパイン同士は繋がっていない

そのため、従来のコア・ディストリビューション・アクセスの3層構造より遅延が少なくなる

仕事でリーフスイッチとかの名前を聞いたことがありましたが、たぶんこのリーフ・スパインネットワークのリーフスイッチですね
完全にただのスイッチの名前だと思っていました

感想

失敗話を話題作と組み合わせることで楽しく聞くことができました!!

OSI参照モデルのさらに上に金銭層政治層があるのに笑ってしまいましたね
確かに、組織にいる以上は避けて通れません

私はネットワーク機器を設定したことはありませんが、ルーティングやセキュリティのためにネットワーク機器の設定を確認することはあります
VLANを消してしまうなど、とても恐ろしい話です…

開発の知識もインフラの知識もよく学んでいこうと思いました

クロージング

もくもく会

ネットワーク機器を仕事で触る機会がないので、ネットワークのもくもく会に参加したいですね!!!
まぁ炎上中なんで3月ぐらいでなんとか…

Ansible Towerも興味があるし、ほぼほぼネットで場当たり的に知識を仕入れていたのでサーバ編も興味があります

毎月第3木曜日とのことなので、予定を空けようね!!

Katacoda Ansibleコース

ブラウザだけでAnsibleを学べるコースは初めて知りました
ちょっと見てみようと思います。

Ansible Trailmap

Red Hatさんから提供されている学習コンテンツですね
名前を聞いたことがありましたが、完全に忘却の彼方でした

Mt.YAMLではなくMt.BUTTONが近々公開されるようなので、とっととYAML山は登っておきます!!!!!!

Mt.YAML:PlaybookのYAMLに入門

Mt.BUTTON:自動化のボタン化(サービス化)に入門

まとめ

しらない単語がそれなりにでてきていたので、何度も見返せるオンライン開催は非常に助かりました
おかげで分からない箇所をつぶすことによって新たな知識を得ることができました

まだまだ知らないことばかりなので、つよつよエンジニアになるために精進していきます!!