DevOpsツール:SaltStackの利点とそれで解決できる問題







Habréのブログでは、会社でのDevOpsカルチャーの構築について引き続き説明しています。以前に作成した継続的インテグレーションシステムと、 ソフトウェアの公開およびライセンスのメカニズムについて説明しました 。 今日は、環境管理システムの選択と、サーバーへのソフトウェアの配信と展開に焦点を当てます。



問題は何ですか



使用する階層をよりよく理解するために、 この分類に従ってtype3とtype5が混在していると考えることができます。 私たちには独自の開発、サービスがあり、他の人、チームにそれらを提供し、「鉄」の部分はOPSによって私たちに供給されます。



歴史的に、当社では、プロセス自動化へのアプローチはやや混somewhatとしていました。 ライトに対する典型的なアクションを自動化する必要が生じたとき、松葉杖がしばしば生まれました。つまり、仮想マシンのクローン作成やソフトウェアのインストールなどのアクションを実行する独自のスクリプトを多数作成しました。



これは永遠に続くことはできませんでした-会社の成長とその製品の数に伴い、一般的なアクションを自動化し、使用するサービスの環境を準備するためのより信頼性の高いソリューションを作成する必要に直面しました。



タスクを解決できる専用の自動化プラットフォームが必要であることが明らかになりました。 Puppet、Ansible、SaltStackの3つのオプションから選択しました。



何を選んだのか



その結果、設定は次のように配布されました。





システムのアーキテクチャを検討してください。 SaltStackの用語では、システムサーバーはマスターと呼ばれ、クライアントはミニオンと呼ばれます。



トランスポートプロトコルとして、システムはZeroMQ永続暗号化接続テクノロジーを使用します-多数のシナリオを実行すると、速度が大幅に向上します。 代替のRAETトランスポートが開発中です。 私たちはそれを使用しませんでした。あなたがそれについてのヒント/警告を持っているならば、我々はコメントでそれらを見てうれしいです。



画像






以下、画像はSALTSTACK COMPONENTSの公式文書から取られています



穀物は、IPアドレスなどのシステム情報の単位です。 AnsibleとPuppetは、事実のローカルな類似物です。



画像






状態ファイルは、Ansibleのプレイブックに類似しています。 それらでは、 state.modulesを使用して、ミニオンをどの状態にする必要があるかが記述されています。



画像






また、SaltStackにはトップファイルの概念が存在します。 これは、実際には、いくつかの属性に従ってミニオンをグループ化し、再生する状態またはロール(ロールモデルを使用する場合)を示すのに役立つ辞書です。 各環境(dev、test、prod)には、独自のトップファイルを含めることができます。



画像






また、システムには、データ転送( Pillar )の観点から保護されたリポジトリと、パスワードなどの秘密情報があります-このメカニズムを使用すると、ログインとパスワードに関する情報が誤って間違った場所に「アップロード」されるエラーを防ぎます。 どのモジュールも情報源として機能できます。 各環境(dev、test、prod)は、独自の柱ファイルを持つことができます。



画像






実行モジュール-アドホックモードでAnsibleと比較できます。 エージェントとの手動作業に必要です。



画像






多くの場合、 塩鉱山は注意を奪われており、「穀物」とは異なり、任意の間隔で更新できます。 このツールを使用すると、別のミニオンの状態の実行時に、あるミニオンのグレインを使用できます。 SaltStackの記事:依存または参照サービス構成の作成に、ケースが詳しく説明されています。 著者(@ eugenechepurniy )には、他のSaltStackの記事があります。



Salt Returners-デフォルトでは、ミニオンでの実行結果が「マスター」に返されます。 リターナーを使用すると、この出力をオーバーライドできます。 「小売業者」の完全なリスト



画像






他の一般的なSCMシステムにない別の便利な機能はReactorです。 このモジュールは「リスナー」として機能し、タグ付きメッセージをフィルタリングし、この件名でいくつかのアクションを開始します。



画像






SaltStackは、エージェントなしで(SSH経由で)動作します。 最近、ハブの使用例とともに記事がハブに公開されました。



公式ドキュメントには、システムの使用に関する優れたステップバイステップのチュートリアルがあります。 SaltStack Fundamentalsから始めることをお勧めします



SaltStackはどこで使用しますか?



Positive Technologiesでは、SaltStackを使用して次の問題を解決しています。





もちろん、SaltStackにはいくつかの欠点があります。 たとえば、すぐに理解するのが難しい非常に難しいドキュメント、および他のシステム(クライアントではなく同じミニオン)でよく知られているもののためのまったく新しいアナログ用語を作成することに対する開発者の愛。



SCMの選択は、エディターの選択に似ています。 各企業には独自のニーズがあります。

いくつかのオプションを試して、あなたのウィッシュリストをカバーする「あなた」を選択することをお勧めします。



PS SaltStackを使用した経験に関するストーリーは、最近モスクワで開催されたDevOpsミーティングの一部として紹介されました。







リンクには、イベント中に提示された16のレポートのプレゼンテーションが表示されます。 このトピック発表の最後に、すべてのプレゼンテーションとビデオプレゼンテーションがテーブルに追加されます。



著者ドミトリー・ミロシュニチェンコ



All Articles