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

Cooking the server with Salt (REM@STER Version)

Ccb58352bdd1be66ebb2daf12ba1b993?s=47 MasahiroIrie
December 15, 2021

Cooking the server with Salt (REM@STER Version)

Ccb58352bdd1be66ebb2daf12ba1b993?s=128

MasahiroIrie

December 15, 2021
Tweet

More Decks by MasahiroIrie

Other Decks in Technology

Transcript

  1. 2021/12/15 VMware DevOps Meetup #11 @IrieMasahiro Salt でサーバに味付けを (REM@STER Version)

  2. 自己紹介 入江 正博 @IrieMasahiro • 某情報通信系企業 クラウド/インフラコンサルタント • VMUG 仮想インフラ部会 •

    vExpert 2019-2021
  3. 本発表は… • vExperts Advent Calendar 2021 12/13 投稿 “Salt でサーバに味付けを”の使い回しリマスター

    ◦ https://adventar.org/calendars/6689 • こぼれネタやデモを添えて
  4. 本旨アジェンダ • Salt とは • Salt のアーキテクチャ ◦ Master -

    Minion ◦ Salt SSH ◦ デモ 1 • Salt の機能 ◦ Grains ◦ Remote Execution ◦ State ◦ Pillar ◦ デモ 2 • まとめ
  5. Salt とは

  6. Salt とは • オープンソースの自動化、構成管理ツール ◦ Ansible, Chef, Puppet の仲間 •

    Python で実装 • SaltStack 社が主導で開発 → VMware 社が SaltStack 社を買収 ◦ 現在もオープンソースプロジェクトとして開発中 ▪ https://github.com/saltstack/salt
  7. 時は2020年10月 VMware社によるSaltStack 社の買収完了を発表

  8. vRealize Automation SaltStack Config 旧 SaltStack Enterprise vRealize のポートフォリオの一つとして取り込み

  9. Salt って有名なの? • 歴史は結構長い ◦ 2011 年初版リリース、Ansible (2012 年)より前 •

    自分は割と最近に初めて知った… ◦ Ansible, Chef, Puppet は聞いたことあったけど… ◦ 世の中的には有名?
  10. Google トレンド調べ • Salt, Ansible, Chef, Puppet で調査 • 過去

    5 年分
  11. Google トレンド調べ • Salt, Ansible, Chef, Puppet で調査 世界的に大人気ではないか!(白目)

  12. Google トレンド調べ2 • この結果、絶対ノイズ混ざってるだろ… ◦ Salt とか Chef とか料理の話かと ◦

    Puppet も… ※ 一般的なイメージ • カテゴリを”コンピュータ”で絞ってやり直し
  13. Google トレンド調べ2 • カテゴリを”コンピュータ”で絞ってやり直す やっぱり圧倒的ではないか!(白目)

  14. Salt はググラビリティが低い… • コンピュータで Salt というと暗号化の話が… • 何となくお察しの通り、知名度はそこまでない? ◦ “SaltStack”

    で検索 ↓ 多分こんなものかと ※ 個人の感想です
  15. Salt のアーキテクチャ

  16. Salt の構成

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

    対象は Linux / Windows / UNIX などサーバ系が中心に • Master-Minion 間は ZeroMQ による通信 ◦ Minion → Master へ 4505/tcp, 4506/tcp • Minion が導入できない環境には Proxy Minion ◦ vCenter や NW 機器など、汎用的な OS 以外の環境 ◦ Proxy Minion が管理対象に SSH や REST API で操作
  18. Minion のインストール面倒… • そんなあなたに Salt SSH • エージェント (salt-minion) 不要の構成

    ◦ Master から ssh 接続でゴニョゴニョしてくれる ▪ Master での対象ホスト指定 (/etc/salt/roster) ▪ Salt SSH 用のユーザ + sudo 用 NOPASSWD ▪ Salt SSH 用公開鍵 (/etc/salt/pki/master/ssh/salt-ssh.rsa.pub) • Minion に比べるとモッサリ感… ◦ 基本的には salt-minion 推奨 ▪ 初回の salt-minon インストール時に ▪ どうしても Minion が使えない場合に
  19. ここでデモ

  20. Salt の機能

  21. Grains • 管理対象のハードや OS 、ネットワークなど、 あまり変更されない静的に近い情報 ◦ Minion で生成される情報 •

    Master から参照が可能 • システム情報だけでなく、ユーザ任意の値も可能 ◦ サーバグルーピングやメタ情報の付与 → タスク実行時の対象ホスト指定の条件フィルタに
  22. Remote Execution • 指定した管理対象でコマンドを実行 ◦ pssh とか Fabric と同じようなもの •

    汎用的な操作や API を叩くようなものは Execution Module として用意されている ◦ https://docs.saltproject.io/en/latest/ref/modules/all/index.html#all-salt-modules ◦ 足りなければ独自拡張も可能
  23. State • 構成をファイルに記述 (/srv/salt) • Salt がファイル内容に従って処理を実行 • 構成を記述するファイルが State

    と呼ばれる ◦ パッと見 YAML 形式 ◦ Jinja2 テンプレートなので制御を仕込むことも可能 • どの Minion にどの State を適用するかも記述 ◦ top.sls に Minion 名や Grain での条件指定と適用する State 名のマッピング記述
  24. Pillar • 変数や Secret をファイルに記述 (/srv/pillar) • Master 上で定義、格納して管理 ◦

    Grains と Pillar の違い • Grains は Minion 上で生成、管理 • Pillar は Master 上で生成、管理 • State からは実行時に Pillar を参照 ◦ {{ pillar[‘hoge’] }} で参照 • State と同様に top.sls で Minion やグループ毎に 値の定義が可能
  25. ここでデモ

  26. まとめ • Salt とは OSS の自動化、構成管理ツール • Master-Minion のクライアント/サーバ型 ◦

    Salt SSH によるエージェントレスも可 • State と Remote Execution による構成管理 ◦ Minion 上の Grains に静的情報 ◦ Master 上の Pillar に変数やシークレット情報 • 他にも beacon や reactor、salt-runner など ◦ 機会があればそのウチ…(まだ触ってない) • 知名度(情報量)がネックか…?
  27. ところで vRealize Automation SaltStack Config Download 不可能なので何も試せず… そのウチ試用できればなぁ…

  28. EOP