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

Cooking operations with Salt

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Cooking operations with Salt

Avatar for MasahiroIrie

MasahiroIrie

July 27, 2022
Tweet

More Decks by MasahiroIrie

Other Decks in Technology

Transcript

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

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

    • おまけ ※ 注 本発表内容は発表者個人の調査、検証に基づく見解であり、所属する会社、組織、及び、 その関係者の見解と完全に一致するものではありません。
  3. ここまでやってきた 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
  4. Salt とは • オープンソースの自動化、構成管理ツール ◦ Ansible, Chef, Puppet の仲間 •

    Python で実装 • SaltStack 社が主導で開発 → VMware 社が SaltStack 社を買収(2020/10) ◦ 現在もオープンソースプロジェクトとして開発中 ▪ https://github.com/saltstack/salt • 「サルト」って読みそうだけど「ソルト」
  5. 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 推奨
  6. Salt の概念・機能 • Grains ◦ Minion で生成されるシステム情報やユーザ定義情報 ◦ 実行対象のフィルタリング条件に •

    Pillar ◦ Master で管理される情報、変数や Secret 情報 • State ◦ あるべき構成を記述したファイル ◦ salt が state に従ってサーバ構成を実行 • Remote Execution ◦ Minion にて実行するアドホックな処理
  7. Salt は構成管理ツール… • ここまでなら構成管理ツール ◦ 細かい差はあれど、他のツールでもできそう • Salt の真価は Beacons

    / Reactor → 今日はこの話 ,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; {;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; ヾ;;;ハ ノ .::!lリ;;r゙ `Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が ,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f. 俺にもありました ~''戈ヽ `二´ r'´:::. `!
  8. Beacons • Minion でイベントを検知し、Master に通知する ◦ 例えば… ▪ ユーザのログイン、特定コマンドの実行 ▪

    inotify によるファイル変更 ▪ サービスやプロセスの状態変更 ▪ load avg. や CPU、メモリなどのメトリクス情報 ▪ 他色々 (https://docs.saltproject.io/en/latest/ref/beacons/all/index.html) • 監視する対象を minion の設定に定義 • salt-minion が監視、通知を行う
  9. 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 は必須!
  10. Reactor • 検知した Beacon をトリガーにアクションを実行 ◦ reactor 用の sls を記述

    (ex. /srv/reactor/hoge.sls) ◦ どの Minion や何の Beacon かは渡される json から state 内で判断して処理を分岐することが可能 • state を自動で呼び出して実行 ◦ サービスだけの再起動 ◦ 構築用 state に従い、あるべき姿を再構成 ◦ メールや SNMP、Slack などでの通知
  11. Beacons / Reactor って夢があるよね? • システム監視に ◦ プロセスやサービスの停止を検知してアラート発報 ◦ CPU

    やメモリの値を見てアラート発報 ◦ アラートもメール や SNMP、Slack、自前での実装も etc • 障害対応自動化に ◦ システム停止を検知して所定の手順を実行 ◦ なんならシステム丸ごと再デプロイ • バッチ処理の自動化にも? ◦ ファイル出力をトリガーに後続処理 ◦ スケジュール実行も可能 (Beacons とは関係ないけど)
  12. ただの構成管理ツールではなく ,.ィ , - 、._ 、 . ,イ/ 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 は 統合運用自動化ツールだ ったんだよ!! 言い過ぎ?
  13. まとめ • Salt とは OSS の自動化、構成管理ツール • Beacons と Reactor

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

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