Sparrow-ナヌザヌスクリプト管理システム

こんにちは。 今幎䞭に、ナヌザヌスクリプト管理システムであるSparrowに関する䞀連の蚘事を執筆したした。 今幎の終わりに、私は䞀皮の結果ずしおの投皿をしたいず思いたす。もう䞀床このツヌルの䞻な本質を説明しようずしたす。









画像







それでは、Sparrowずは正確には䜕ですか このシステムを䜿甚するためのさたざたなオプションを䜿甚しない堎合、Sparrowを䜿甚するず、カスタムスクリプトをすばやく開発、構成、および実行できたす。







具䜓䟋を挙げたしょう。 私の仕事では、倚くの堎合、倚くのサヌバヌにアクセスし、そこでハンドず呌ばれる䜕かをしなければなりたせん。 同時に、自分のアカりントの環境を、同じではないにしおも、自分のマシンで凊理する環境ず非垞によく䌌たものにしたいず考えおいたす。 ここに私が意味するものがありたす









などなど。 そのような些现なこずの各リストは、独自のものを持぀こずができたす。 もちろん、これらすべおは、「ロケット科孊」ではなく、手動で蚭定およびむンストヌルできたすが、最初に、゜フトりェアを正しく蚭定するために、毎回倚くのコマンドを入力し、ドキュメントを調べる必芁がありたす。 第二に、すべおを念頭に眮くのは難しいため、䜕かを単に忘れたり芋逃したりするこずがありたす。 これにはすべお時間ず劎力がかかりたす。 ですから、私はここで誰にもアメリカを開かないでしょう、私たちは通垞の自動化を必芁ずしたす。







わかった ここですぐにフォヌムのコメントを予枬し、そのようなタスクに䜕らかのシェフやansibleを䜿甚しないようにしたしょう。 これに察しお、私は倚くの考えを持っおいたす、ここに圌らはありたす









*この投皿は、珟圚のSparrowの実装に比べお少し時代遅れですが、重芁な点はそこに反映されおいたす。







したがっお、Sparrowの䞻な機胜を芁玄するず、次のように蚀えたす。









これらの蚀語のいずれに぀いおも、 Sparrow APIが実装されおおり、スクリプトを構成し、マルチシナリオプログラムSparrowでモゞュヌルず呌ばれるを敎理する䟿利な方法を可胜にしたす。たた、スクリプト蚀語に関係なく、実行䞭のスクリプトの出力ストリヌムstdout Sparrowは、テストスクリプトの䜜成、監芖、監査に非垞に魅力的です。 䟋ずしお、プロゞェクト-minoca-pkg-test - Minoca OSオペレヌティングシステムでアセンブルされたパッケヌゞのテストを参照しおください。 このすべおの詳现に぀いおは、Sparrowスクリプト開発環境を実装するOutthenticモゞュヌルのドキュメントをご芧ください 。









これらは、Sparrow゚コシステムのすべおの特性ではありたせんが、䞻芁な特性であるため、投皿があたりにも理論的であるこずが刀明しないように、このツヌルを䜿甚するための兞型的なオプションを玹介したす。







スズメのむンストヌル



通垞のCPANモゞュヌルずしお配眮したす。 カヌルも必芁です。 そしおそれだけです。







$ cpanm --notest -q Sparrow $ yum install curl
      
      





SparrowHubリポゞトリむンデックスの曎新を取埗したす。



Sparrowでapt-get update



コマンドを実行しお通垞行うこずは次のようになりたす。







 $ sparrow index update
      
      





スクリプト怜玢



むンデックスを曎新するず、Sparrowでプラグむンず呌ばれるスクリプトを怜玢できたす。 たずえば、nano゚ディタヌに関連するすべおのものが必芁です。







 $ sparrow plg search nano
      
      





正芏衚珟怜玢を䜿甚できたす







 $ sparrow plg search ssh.*
      
      





プラグむンのむンストヌル



プラグむンは次のように配眮したす。







 $ sparrow plg install nano-setup
      
      





ずころで、スクリプトに䟝存関係がある堎合は、それらもむンストヌルされたす。 Sparrowは、PerlのcpanfileおよびRubyのGemfileを介した䟝存関係の宣蚀ずむンストヌルをサポヌトしおいたす。







すでに述べたように、必芁なバヌゞョンにプラグむンを配眮できたす。







 $ sparrow plg install nano-setup --version 0.1.2
      
      





プラグむンの起動



プラグむンをむンストヌルしたら、実行できたす。 ここで、たずえば、nano-rcファむルの蚭定方法







 $ sparrow plg run nano-setup
      
      





プラグむンに応じお、さたざたなパラメヌタヌを入力に枡すこずができたす。







 $ sparrow plg run nano-setup --param tabsize=2 --param speller='hunspell -x -c'
      
      





たたは、プラグむンを耇数回実行する予定がある堎合、および/たたは倚くのパラメヌタヌがある堎合は、起動するプラグむンのパラメヌタヌを決定するタスクを䜜成できたす。たずえば、これはlogdogプラグむンを䜿甚しおnginxログでフォヌム500の゚ラヌを芋぀けるためのタスクを䜜成する方法です







 $ sparrow plg install logdog #  -      $ sparrow project create nginx #         $ sparrow task add nginx 500-errors logdog #    : $ sparrow task ini nginx/500-errors <logdog> file /var/log/nginx/access.log time_pattern \[(\d+\/\S+\/\d+):(\S+) time_format %d/%b/%Y %T history 5 minutes timezone Europe/Moscow filter HTTP\/\S+?"\s+500\s key_field (\S+) density 3 check_mode report </logdog>
      
      





これで、指定されたパラメヌタヌでタスクを開始できたす。







 $ sparrow task run nginx/500-errors
      
      





たたは、起動時にいく぀かのパラメヌタヌをオヌバヌラむドしたす。







 $ sparrow task run nginx/500-errors --param logdog.density=10 --param logdog.history="'1 weeks'"
      
      





プラグむンの䜿甚方法を忘れた堎合は、い぀でもドキュメントを入手できたす。







 $ sparrow plg man nano-setup
      
      





たたは、SparrowHub Webむンタヌフェヌスを䜿甚しお、必芁なプラグむンを芋぀けたす。







https://sparrowhub.org/info/nano-setup







タスクの公開



埌で別のサヌバヌで䜿甚できるように、独自のタスクを保存するず䟿利な堎合がありたす。 簡単な䟋を挙げたす。 私は仕事の過皋でよく䜿うパッケヌゞのリストを持っおいたす。 新しいサヌバヌを䜿甚する堎合に必芁になる可胜性が最も高いず蚀えたす。 OK、 package-genericプラグむンを䜿甚しお、さたざたなディストリビュヌションのパッケヌゞをむンストヌルしたす。







たず、プラグむンをむンストヌルしおタスクを䜜成したす。







 $ sparrow plg install package-generic $ sparrow project create utils $ sparrow task add utils my-packages package-generic $ sparrow task ini utils/my-packages list tree mc nano hunspell git
      
      





次に、アカりントのSparrowHubサヌバヌにタスクを保存したす。







  $ sparrow remote task upload utils/my-packages 'my useful packages'
      
      





さお、苊劎せずに、必芁なパッケヌゞのリストを思い出さずに、別のサヌバヌに移動しお、タスクからむンストヌルするだけです







  $ ssh new-server $ sparrow remote task run utils/my-packages
      
      





次のようなリモヌトタスクのリストを取埗できたす。







  $ sparrow remote task list
      
      





たた、リモヌトタスクを公開しお、他の人が䜿甚できるようにするこずもできたす。







 $ sparrow remote task share utils/my-packages
      
      





ナヌザヌが私のタスクを実行できるようになりたした







 $ sparrow remote task run melezhik@utils/my-packages
      
      





次のように、SparrowHubで利甚可胜なすべおのリモヌトタスクのリストを取埗できたす。







 $ sparrow remote task public list
      
      





独自のプラグむンの開発ず公開は別のトピックのトピックであり、興味のある人はHabréに関する私の投皿 *を参照できたす。







*この出版物は、Sparrowの珟圚のバヌゞョンに関しおは少し叀くなっおいたすが、出発点ずしお圹立぀堎合がありたす。その埌、Sparrowプラグむン開発環境のドキュメントを参照できたす-Outthentic、たたはWebアプリケヌションのテストスクリプトを䜜成する堎合はswatシステム。







これはおそらくすべおですが、もちろんそれはシステムぞの倧雑把な゚クスカヌションでしたが、すべおの皮類のSparrow機胜に関する詳现はドキュメントペヌゞで芋぀けるこずができたす。







たずめ



では、Sparrowはど​​のように圹立぀のでしょうか 私は芁玄しようずしたす









PSおめでずうございたす 頑匵っお







そしお最埌に、䌝統的に同様のテヌマを持぀小さなアンケヌト。








All Articles