問題タブ [salt-stack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mercurial - ソルトスタックは自己更新してからハイステートに更新できますか?
ソルト スタックはビット バケットで使用されています。ときどき更新をプッシュするのは 2 ~ 3 人です。ソルト スタックがビット バケットから最新の変更を取得し、ハイステートにする方法はあるのでしょうか。もしそうなら、あなたはそれをどのように行いますか?
windows - Windowsで未署名のpowershellスクリプトを実行するSaltStack
スクリプトを実行するために作成された powershell プロンプトにスイッチ オペレータを渡す方法はありますか。基本的に、powershell スクリプトを実行する状態ファイルがあります。
しかし、これはうまくいきません。
汚い解決策は、cmd を介してスクリプトを実行することです: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -executionpolicy Bypass -File
状態ファイル自体に executionpolicy フラグを設定する方法はありますか?
ありがとう!
salt-stack - 辞書の柱属性の値をどのように照合できますか?
柱の値に一致する状態ファイルを作成しようとしていますが、辞書の柱の属性の値に一致する方法 (または可能かどうか) がわかりません。salt.module.match API docs はそれについて詳しく説明しておらず、明白なアプローチはどれも実りがありません:
状況をデバッグする私の試みは、match.py に a を貼り付けてpdb_trace()
、フォアグラウンドで salt-minion を実行するところまで行きましたが、それはまったく役に立たず、おそらく、Salt と ØMQ との奇妙な相互作用が原因で、デバッグ シェルの代わりに通信エラーが発生しました。:)
/srv/salt/top.sls
明確にするために、目標は私のファイルに次のようなものを入れることです:
このミニオンの柱にいるとき、私のセットアップで動作することを確認しsalt clowder match.pillar "foo:bar"
ました(リターンTrue
) 。foo: bar
また、これは別の角度から見た同じ問題だと思います。
これまでに受け取った唯一の提案は「-I」フラグを使用するためです。:)
deployment - 必要条件は必要ですか、それとも注文で十分ですか?
Salt ドキュメントには、この種のパターンがたくさんあります。
この繰り返し (「apache をインストールし、apache がインストールされているかどうかを確認する」) は、don't-repeat-yourself (DRY) に違反しているようです。それで必要ですか?
「状態の順序を理解する」から:
古典的な命令型システムが機能する方法と同様のことを達成するには、すべての必要条件を省略し、マスター構成で failhard オプションを True に設定します。これにより、障害の最初のインスタンスですべての状態の実行が停止します。
これは、あらゆる場所での必要条件の使用が実際にはオプションであることを暗示しているようです (宣言の順序が正しいと仮定して) - しかし、私は確かに知りたいです.
salt-stack - 「configure make install」用のソルトスタック
私はSaltStackで足を濡らしています。最初の状態 (静的構成の Vim インストーラー) を作成し、2 つ目の状態に取り組んでいます。
残念ながら、州にインストールしたいアプリケーションの Ubuntu パッケージはありません。私は自分でアプリケーションを構築する必要があります。Salt を使用して「configure-make-install」タイプのインストールを行うための「ベスト プラクティス」はありますか? または、cmdを使用する必要がありますか?
特に、手作業で行っている場合は、次のようにします。
python - イベントとソルトコールを介して集計/しきい値を管理およびクエリしますか?
apcを使用してphpアプリケーションを実行している 100 を超える Web サーバー インスタンスがあり、ときどき (フリート全体で週に 1 回の順序で) キャッシュの 1 つが破損し、独特のエラー ログ メッセージが表示されます。
これが発生すると、アプリケーションはそのノードで停止し、ルーティングされたトランザクションはすべて失敗します。
私は単純なラッパーを作成しました。tail -F
これは、ログ ファイルに表示されるたびにパターンを見つけ、反応するシェル コマンド ( bashを使用) を評価することができます。 これには、 salt-stackのコマンドeval
を使用して、 nginxサーバーをシャットダウンし、キャッシュをウォームアップ (更新) し、もちろん Web サーバーを再起動するカスタム モジュールの処理をトリガーします。(実際には、このラッパーと Python の 2 つの形式があります)。salt-call
bash
これは問題なく、イベントの頻度は問題になる可能性が低いものです。しかし、私の上司は、非常に合理的に、共通モード障害パターンについて懸念しています...正規表現がこれらのログの多くに一度に表示され、サイト全体が取り壊される可能性がある.
私が最初に考えsalt-call
たのは、redisチェックでラップすることです (キャッシングやその他の特定のデータ構造に使用される Redis インフラストラクチャが既にあります)。これは、有効期限付きの整数として実装されます。チェックは INCR を呼び出し、結果をチェックし、N を超える値が返された場合 (または Redis サーバーに到達できない場合) はスリープします。結果がしきい値を下回った場合はsalt-call
ディスパッチされ、サーバーがバックアップされて実行された後にデクリメントが呼び出されます。(Redis キーの有効期限が切れると、おそらく 1 日または数時間後に古いインクリメントが削除されます...アラート システムは既にサーバーのダウンを通知しており、応答時間はそのような時間枠に対して十分です)。
ただし、Saltstack イベント処理機能について読んでいて、代わりにそれを使用する方がよいかどうか疑問に思っていました。(利点として、ノードにはredis-cli
コマンド ツールも Python Redis ライブラリもありませんが、明らかに、salt-call
必要なサポートが既に存在します)。そのため、Salt で何かを使用すると、これらのシステムに追加のパッケージと依存関係を追加する必要性が最小限に抑えられます。(別の方法として、すべての Redis 処理を別の PHP コマンド ライン ユーティリティとして記述し、シェル スクリプトでそれを呼び出すこともできます)。
単純な Saltstack モジュールを作成するための HOWTO はありますか? ドキュメントは、オリエンテーションなしで参照の詳細に深く入り込むようです。どの用語で検索するかについてのいくつかの提案も役に立ちます (柱、穀物、ミニオンなどの用語の使用はやや不透明に見えるため)。
salt-stack - ファイル/ディレクトリの存在に応じた状態の定義
次のようなものを実行するにはどうすればよいですか。
ZIP ファイルからソフトウェアをインストールするために必要です。ミニオンで解凍したいのですが、インストールにのみ必要なライセンス ファイルの残りを残したくありません。