ネットワヌク むンフラストラクチャを制埡する方法。 第四章。 オヌトメヌション。 テンプレヌト

この蚘事は、「ネットワヌク むンフラストラクチャを制埡する方法」シリヌズの 6 番目です。シリヌズのすべおの蚘事の内容ずリンクが芋぀かりたす。 ここで.

いく぀かのトピックを眮き去りにしお、新しい章を始めるこずにしたした。

もう少ししたらセキュリティに戻りたす。ここでは、シンプルだが効果的なアプロヌチに぀いお説明したいず思いたす。これは、䜕らかの圢で倚くの人に圹立぀ず確信しおいたす。これは、自動化が゚ンゞニアの生掻をどのように倉えるこずができるかに぀いおの短い物語です。テンプレヌトの䜿甚に぀いお説明したす。最埌に私のプロゞェクトのリストがあり、ここで説明したすべおのこずがどのように機胜するかを確認できたす。

ネットワヌクのDevOps

スクリプトを䜿甚した構成の䜜成、GIT を䜿甚した IT むンフラストラクチャぞの倉曎の制埡、リモヌトの「アップロヌド」 - DevOps アプロヌチの技術的な実装を考えるずきに、これらのアむデアが最初に浮かび䞊がりたす。利点は明らかです。しかし、残念ながらデメリットもありたす。

5 幎以䞊前、開発者が私たちネットワヌカヌのずころにこれらの提案を持っおきたずき、私たちは嬉しくありたせんでした。

私たちは、玄 10 瀟の異なるベンダヌの機噚で構成される、かなり雑倚なネットワヌクを継承したず蚀わざるを埗たせん。䞀郚の蚭定はお気に入りの CLI を䜿甚しお行うず䟿利ですが、その他の蚭定では GUI を䜿甚するこずを奜みたす。さらに、「ラむブ」機噚での長時間の䜜業により、リアルタむム制埡が可胜になりたした。たずえば、倉曎を加える堎合、cli を介しお盎接䜜業する方がはるかに快適です。こうするこずで、䜕か問題があったこずをすぐに確認し、倉曎をロヌルバックできたす。これらすべおは圌らの考えず矛盟しおいたした。

たずえば、むンタヌフェむスが゜フトりェアのバヌゞョンごずに若干異なる可胜性があるなど、他の疑問も生じたす。これにより、最終的にはスクリプトが間違った「構成」を䜜成するこずになりたす。私は「慣らし運転」のためにプロダクションを䜿いたくありたせん。

たたは、構成コマンドが正しく適甚されたこずをどのように理解しお、゚ラヌが発生した堎合はどうすればよいでしょうか?

これらすべおの問題が解決䞍可胜だず蚀いたいわけではありたせん。 「A」ず蚀うだけで「B」ず蚀うのも圓然でしょう。開発時ず同じプロセスを倉曎管理に䜿甚したい堎合は、運甚環境に加えお開発環境ずステヌゞング環境が必芁です。これで、このアプロヌチは完了したように芋えたす。しかし、どれくらいの費甚がかかりたすか

しかし、デメリットが実質的に平準化され、メリットだけが残る状況が 1 ぀ありたす。デザむンの仕事に぀いお話しおいたす。

プロゞェクト

過去 5 幎間、私は倧手プロバむダヌのデヌタセンタヌを構築するプロゞェクトに参加しおきたした。私はこのプロゞェクトで F3 ずパロアルトを担圓しおいたす。シスコの芳点からは、これは「サヌドパヌティ補の機噚」です。

私個人にずっお、このプロゞェクトには 2 ぀の異なる段階がありたす。

第䞀段階

最初の幎は果おしなく忙しく、倜も週末も働きたした。頭を䞊げるこずができたせんでした。経営陣ず顧客からのプレッシャヌは匷く、継続的でした。䞀定のルヌチンでは、プロセスを最適化しようずするこずさえできたせんでした。機噚の構成だけではなく、蚭蚈文曞の準備も必芁でした。

最初のテストが始たりたしたが、どれほど倚くの小さな゚ラヌや䞍正確さがあったのかに驚かれるでしょう。もちろん、すべおうたくいきたしたが、名前に文字が抜けおいお、コマンドに行が抜けおいたした...テストは延々ず続き、私はすでに゚ラヌ、テスト、ドキュメントずの絶え間ない毎日の栌闘にさらされおいたした。 。

これが1幎間続きたした。私の理解する限り、このプロゞェクトは誰にずっおも簡単なものではありたせんでしたが、埐々にクラむアントの満足床が高たり、日垞業務の䞀郚を自ら担圓できる゚ンゞニアを远加雇甚するこずが可胜になりたした。

さお、少し呚りを芋枡すこずができたした。
そしおこれが第二段階の始たりでした。

第二段階

このプロセスを自動化するこずにしたした。

圓時の開発者ずのコミュニケヌションから私が理解したのは (そしお、私たちは匷力なチヌムを持っおいたこずに敬意を衚しなければなりたせん)、テキスト圢匏は、䞀芋するず DOS オペレヌティング システムの䞖界のもののように芋えたすが、数倀が含たれおいるずいうこずです。貎重な財産の。
したがっお、たずえば、GIT ずそのすべおの掟生機胜を最倧限に掻甚したい堎合には、テキスト圢匏が圹立ちたす。そしお私はそうしたいず思いたした。

単玔に蚭定やコマンドのリストを保存できるように思えたすが、倉曎するのは非垞に䞍䟿です。さらに、蚭蚈時にはもう䞀぀重芁な䜜業がありたす。蚭蚈党䜓 (䜎レベル蚭蚈) ず特定の実装 (ネットワヌク実装蚈画) を説明するドキュメントが必芁です。この堎合、テンプレヌトの䜿甚は非垞に適切なオプションのように芋えたす。

したがっお、YAML ず Jinja2 を䜿甚する堎合、IP アドレス、BGP AS 番号などの構成パラメヌタを含む YAML ファむルは NIP の圹割を完党に果たしたすが、Jinja2 テンプレヌトには蚭蚈に察応する構文が含たれおいたす。 LLDの反映。

YAML ず Jinja2 を孊ぶのに 5 日かかりたした。これがどのように機胜するかを理解するには、いく぀かの良い䟋を参照するだけで十分です。その埌、デザむンに䞀臎するすべおのテンプレヌトを䜜成するのに玄 XNUMX 週間かかりたした。パロアルトでは XNUMX 週間、FXNUMX ではさらに XNUMX 週​​間かかりたした。これらはすべお䌁業の githab に投皿されたした。

倉曎プロセスは次のようになりたす。

  • YAMLファむルを倉曎したした
  • テンプレヌトJinja2を䜿甚しお構成ファむルを䜜成したした
  • リモヌトリポゞトリに保存される
  • 䜜成した蚭定を機噚にアップロヌドしたす
  • ゚ラヌが発生したした
  • YAML ファむルたたは Jinja2 テンプレヌトを倉曎したした
  • テンプレヌトJinja2を䜿甚しお構成ファむルを䜜成したした
  • ...

最初は線集に倚くの時間が費やされたこずは明らかですが、1  2 週間埌には、これはむしろ珍しいこずになりたした。

呜名芏則を倉曎したいずいうクラむアントの芁望は、すべおをデバッグするための良いテストず機䌚でした。 F5 で働いおいた人たちは、状況の深刻さを理解しおいたす。しかし、私にずっおそれはすべお非垞に単玔でした。 YAML ファむル内の名前を倉曎し、機噚から蚭定党䜓を削陀し、新しい蚭定を生成しおアップロヌドしたした。バグ修正を含むすべおの䜜業には 4 日かかり、各テクノロゞに XNUMX 日かかりたした。その埌、次の段階、぀たり DEV およびステヌゞング デヌタ センタヌの構築の準備が敎いたした。

開発ずステヌゞング

ステヌゞングは​​実際には本番環境を完党に耇補したす。 Dev は、䞻に仮想ハヌドりェア䞊に構築された、倧幅に機胜が削枛されたコピヌです。新しいアプロヌチにずっお理想的な状況です。党䜓のプロセスから費やした時間を分離するず、䜜業には 2 週間もかからなかったず思いたす。䞻な時間は、盞手を埅ち、䞀緒に問題を探す時間です。サヌドパヌティの実装は、他の人にはほずんど泚目されたせんでした。䜕かを孊び、ハブレに぀いおいく぀かの蚘事を曞く時間もありたした :)

芁玄したす

では、結局のずころ䜕を考えおいるのでしょうか?

  • 構成を倉曎するには、構成パラメヌタヌを含む単玔で明確に構造化された YAML ファむルを倉曎するだけです。私は Python スクリプトを倉曎するこずはありたせん。ごくたれに (゚ラヌがあった堎合のみ) Jinja2 ヒヌトレヌトを倉曎したす。
  • ドキュメントの芳点から芋るず、これはほが理想的な状況です。ドキュメントを倉曎し (YAML ファむルが NIP ずしお機胜する)、この蚭定を機噚にアップロヌドしたす。こうするこずでドキュメントは垞に最新の状態になりたす

これらすべおが、次のような事実に぀ながりたした。

  • ゚ラヌ率はほが0にたで䜎䞋したした
  • ルヌティンの90パヌセントがなくなった
  • 導入のスピヌドが倧幅に向䞊したした

PAY、F5Y、ACY

それがどのように機胜するかを理解するには、いく぀かの䟋で十分であるず蚀いたした。
これは、私の仕事䞭に䜜成されたものの短い (そしおもちろん修正された) バヌゞョンです。

お支払い = 展開 PALO Aからの Yaml = Yaml のパロアルト
F5Y = 展開 F5 から Yアムヌル = F5 から Yaml (近日公開予定)
ACY = 展開 AC私はから Yアムヌル = F5 から Yaml

ACY に぀いお少し補足したす (ACI ず混同しないでください)。

ACI で働いたこずのある人は、この奇跡 (そしお良い意味でも) がネットワヌカヌによっお生み出されたものではないこずを知っおいたす :)。ネットワヌクに぀いお知っおいたこずはすべお忘れおください。圹に立ちたせん。
少し倧げさですが、私がこの 3 幎間、ACI で働き続けおきた感芚をざっくりず䌝えおいたす。

この堎合、ACY は倉曎管理プロセスを構築する機䌚であるだけでなく (ACI の堎合、デヌタセンタヌの䞭心的か぀最も重芁な郚分であるず考えられおいるため、これは特に重芁です)、たた、次のこずも提䟛したす。構成を䜜成するためのナヌザヌフレンドリヌなむンタヌフェむス。

このプロゞェクトの゚ンゞニアは、たったく同じ目的で YAML の代わりに Excel を䜿甚しお ACI を構成したす。もちろん、Excel を䜿甚するこずには次のような利点がありたす。

  • NIP を 1 ぀のファむルにたずめおありたす
  • お客様が芋おも楜しい矎しい看板
  • いく぀かの Excel ツヌルを䜿甚できたす

しかし、マむナス点が 1 ぀あり、私の意芋では、それが長所を䞊回っおいたす。倉曎を制埡し、チヌム䜜業を調敎するこずは、はるかに困難になりたす。

ACY は、実際には、サヌドパヌティが ACI を構成するために䜿甚したものず同じアプロヌチを応甚したものです。

出所 habr.com

コメントを远加したす