Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cooking operations with Salt

Cooking operations with Salt

MasahiroIrie

July 27, 2022
Tweet

More Decks by MasahiroIrie

Other Decks in Technology

Transcript

  1. 2022/7/27 Japan VMUG vExpert が語る #17 @IrieMasahiro Salt で運用に味付けを

  2. 自己紹介 入江 正博 @IrieMasahiro • ヴイエムウェア株式会社 テクニカルアカウントマネージャー • Japan VMUG

    • vExpert 2019-2022 • 先週 Double VCP になりました (DCV2022 / NV2022) 次は DTM? 先は長い…
  3. アジェンダ • Salt のおさらい • Beacons と Reactor • まとめ

    • おまけ ※ 注 本発表内容は発表者個人の調査、検証に基づく見解であり、所属する会社、組織、及び、 その関係者の見解と完全に一致するものではありません。
  4. Salt のおさらい

  5. ここまでやってきた Salt 話 • vExpert Advent Calendar 2021 12/13 投稿分

    ◦ Salt でサーバに味付けを https://vhoge.hateblo.jp/entry/2021/12/13/090516 • VMware DevOps Meetup #11 ◦ Salt でサーバに味付けを (REM@STER VERSION) https://www.youtube.com/watch?v=vqglTqVghZA https://speakerdeck.com/mirie_sd/cooking-the-server- with-salt-rem-at-ster-version
  6. Salt とは • オープンソースの自動化、構成管理ツール ◦ Ansible, Chef, Puppet の仲間 •

    Python で実装 • SaltStack 社が主導で開発 → VMware 社が SaltStack 社を買収(2020/10) ◦ 現在もオープンソースプロジェクトとして開発中 ▪ https://github.com/saltstack/salt • 「サルト」って読みそうだけど「ソルト」
  7. vRealize Automation SaltStack Config 旧 SaltStack Enterprise vRealize のポートフォリオの一つとして取り込み

  8. Salt の構成

  9. Salt の構成 • Master-Minion によるクライアント/サーバ構成 ◦ 管理対象にエージェント (salt-minion) をインストール ◦

    単独ホストなら masterless minion 構成も可能 • Master-Minion 間は ZeroMQ による通信 ◦ Minion → Master へ 4505/tcp, 4506/tcp • Minion が導入できない環境には Proxy Minion ◦ Proxy Minion が管理対象に SSH や REST API で操作 • Salt SSH でエージェントレス構成も ◦ ただし、基本的には salt-minion 推奨
  10. Salt の概念・機能 • Grains ◦ Minion で生成されるシステム情報やユーザ定義情報 ◦ 実行対象のフィルタリング条件に •

    Pillar ◦ Master で管理される情報、変数や Secret 情報 • State ◦ あるべき構成を記述したファイル ◦ salt が state に従ってサーバ構成を実行 • Remote Execution ◦ Minion にて実行するアドホックな処理
  11. ここでデモ

  12. Salt は構成管理ツール… • ここまでなら構成管理ツール ◦ 細かい差はあれど、他のツールでもできそう • Salt の真価は Beacons

    / Reactor → 今日はこの話 ,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; {;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; ヾ;;;ハ ノ .::!lリ;;r゙ `Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が ,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f. 俺にもありました ~''戈ヽ `二´ r'´:::. `!
  13. Beacons と Reactor

  14. Beacons

  15. Beacons すみません、言いたかっただけです…

  16. Beacons • Minion でイベントを検知し、Master に通知する ◦ 例えば… ▪ ユーザのログイン、特定コマンドの実行 ▪

    inotify によるファイル変更 ▪ サービスやプロセスの状態変更 ▪ load avg. や CPU、メモリなどのメトリクス情報 ▪ 他色々 (https://docs.saltproject.io/en/latest/ref/beacons/all/index.html) • 監視する対象を minion の設定に定義 • salt-minion が監視、通知を行う
  17. Salt の構成 • Master-Minion によるクライアント/サーバ構成 ◦ 管理対象にエージェント (salt-minion) をインストール •

    Master-Minion 間は ZeroMQ による通信 ◦ Minion → Master へ 4505/tcp, 4506/tcp • Minion が導入できない環境には Proxy Minion ◦ Proxy Minion が管理対象に SSH や REST API で操作 • Salt SSH でエージェントレス構成も ◦ ただし、基本的には salt-minion 推奨 というわけで… Salt の真価を発揮するなら salt-minion は必須!
  18. Beacons 検知サンプル hostname:saltminion01 で nginx サービスが ruuning:false(=stop) にな ったことを検知して Master

    に通知
  19. Reactor

  20. Reactor 特に思いつかなかった…

  21. Reactor • 検知した Beacon をトリガーにアクションを実行 ◦ reactor 用の sls を記述

    (ex. /srv/reactor/hoge.sls) ◦ どの Minion や何の Beacon かは渡される json から state 内で判断して処理を分岐することが可能 • state を自動で呼び出して実行 ◦ サービスだけの再起動 ◦ 構築用 state に従い、あるべき姿を再構成 ◦ メールや SNMP、Slack などでの通知
  22. ここでデモ

  23. Beacons / Reactor って夢があるよね? • システム監視に ◦ プロセスやサービスの停止を検知してアラート発報 ◦ CPU

    やメモリの値を見てアラート発報 ◦ アラートもメール や SNMP、Slack、自前での実装も etc • 障害対応自動化に ◦ システム停止を検知して所定の手順を実行 ◦ なんならシステム丸ごと再デプロイ • バッチ処理の自動化にも? ◦ ファイル出力をトリガーに後続処理 ◦ スケジュール実行も可能 (Beacons とは関係ないけど)
  24. ただの構成管理ツールではなく ,.ィ , - 、._ 、 . ,イ/ l/  ̄ ̄`ヽ!__

    ト/ |' { `ヽ. ,ヘ N│ ヽ. ` ヽ /ヽ / ∨ N.ヽ.ヽ、 , } l\/ `′ . ヽヽ.\ ,.ィイハ | _| ヾニー __ _ -=_彡ソノ u_\ヽ、 | \ .  ゙̄r=<‐モミ、ニr;==ェ;ュ<_ゞ-=7´ヽ > . l  ̄リーh ` ー‐‐' l‐''´冫)'./ ∠__ ゙iー- イ'__ ヽ、..___ノ トr‐' / l `___,.、 ./│ /_ . ヽ. }z‐r--| / ト, | ,、 >、`ー-- ' ./ / |ヽ l/ ヽ ,ヘ _,./| ヽ`ー--‐ _´.. ‐''´ ./ \、 \/ ヽ/ -‐ '''"  ̄ / :| ,ゝ=< / | `'''‐- 、.._ / !./l .\ ./ │ _ _,> '´|l. ミ:ゝ、 _/,´\ ./|._ , --、 | i´!⌒!l r:,=i . | | l. / |= ヽ/ | .|l⌒l lニ._ | ゙ー=':| |. L._」 l. | l./ .! / | i´|.ー‐' | / | |. ! l . l. |. .! .| / .!.|"'|. l' │-==:|. ! ==l ,. -‐; l | l. .| / | i=!ー=;: l | l. | | / // l | l .|/ !│ l l、 :| | } _|,.{:: 7 l | l ./ .| |__,.ヽ、__,. ヽ._」 ー=:::レ' ::::::|; 7 . l | l / .|. \:::::\::::: ヽ ::::::!′ :::| .:/ . l | .∨ ! /ヽ::: `::: :::: ... つまり Salt は 統合運用自動化ツールだ ったんだよ!! 言い過ぎ?
  25. まとめ • Salt とは OSS の自動化、構成管理ツール • Beacons と Reactor

    でイベントドリブンな 自動化が可能 ◦ Beacons はイベント通知 ◦ Reactor で通知をトリガーに処理を実行 ◦ もはや統合運用自動化ツール? • やはり知名度(情報量)がネックか…? ◦ 個人的には運用全てを All-in-one でやりきらなくてもツールチェインでもい いのではないのかな…とも
  26. おまけ • vRealize Automation SaltStack Config

  27. おまけ • vRealize Automation SaltStack Config ◦ Salt の管理 GUI

    (RaaS:Returner as a Service) ◦ アプライアンス VM とは別に RHEL/SLES への手動 インストール(※)も可能 ※ただし非推奨 ◦ salt-master を内包、既存の salt-master をぶらさげ ることも可能 ◦ Master 管理の構成ファイル(State や Pillar 等)の閲覧 編集も可能
  28. おまけ

  29. おまけ

  30. 試してないけど…

  31. EOP