かいてなかったですな...。お仕事的に過去のあれこれを思い出したので書いておきます。したい物理的・論理的な構成変更要求に対して、一部または全部の操作を自動実行したいみたいなことがありますよね。機器へ自動投入する、みたいな話じゃないかと思います。いう話について、設定(コンフィグ)生成のための情報をどう持ってどう管理するか......というのはまあ状況によりけりだとは思いますが......形はどうあれ、何らかのデータストアを持つようにしたりしますよね。スイッチのコンフィグを生成するマクロを作ってみたりとかをやったことがあります。パラメタ一覧として作って、それに機材の情報(コンフィグ生成のためのメタデータ)も含めておいて、コンフィグテンプレートを自動的に組み合わせ、もうちょっといろんなコンフィグを自動生成する......というのも見たことがあります。大きなシステムを扱っているところだと、構成管理データベース(CMDB)みたいなのを用意して、そこの情報を元に操作の自動化(そのためのコマンドやコンフィグの生成)なんてことをやってたり、というのもあるでしょう。した「人にとってわかりやすい台帳情報(情報形式、インタフェース)」あるいは「人にとってわかりやすいポリシ定義」を「実際に機材に入れるコマンドや設定情報」に変換・デプロイするようなケースでは、たいていこういう問題点がくっついてきます。実機(ネットワーク実体)へのデプロイという操作フローについてフローが一方校で固定されなければいけない(これ以外の設定フローを例外として認められない)設定情報の配布によって生じるエラーハンドリングが正しく実行できなければいけない「一方向」も「エラーハンドリング」もどちらも似たような話なんですが。誰かが実機を直接操作する、みたいなことをしちゃった瞬間に、元のポリシ・台帳・インベントリ情報と「実体」との内容に乖離が生じてしまう。どこかでその自動化システムまで含めたところに問題がある...「設定自動化システム」自体にバグがある、みたいなところも疑うよね。落ちちゃって、処理が中断しちゃうとか、そういったエラーが発生するなんてことが考え得る。実際、何かしらの都合で処理が完全に終わらない・エラーが起きて中断する・みたいな状況が起きることがある。いうのを考えないといけない。多くのネットワーク実機操作において、そうしたエラー処理を適切にハンドルさせるのは非常に難しい。結局エラーメッセージを正規表現で引っかけてごにょごにょやったりするんだよね...。これはものすごく面倒くさいし、エラーハンドリング実装がさっぱり拡張性がない。実際問題、CLI操作のほとんどがステートレスだし、DBクエリみたいにエラーが起きたらロールバックできる、みたいな話もない。トランザクション処理とかできたらいいなあと思うんだけどね...実体操作の中でそうした処理を入れるのはすごく難しい。コマンド投げればそれで動いちゃうしね。よくても特定の機器に対する操作(一つのデバイスに対する操作)だけで、複数の機器を順に設定変えていくような、もうちょっとシステム全体に関わるような操作についてだとさらに難しい。期待にはこの辺の観点があるよね。信頼性、送受信データ(エラー情報含む)の構造化と処理...などなど。いう双方向の操作が必要になる。パラメータシート(CSVとか)に落とすみたいなスクリプトを書いたりしたこともある。双方向にやれるようにしても、これはこれでやっぱりいろいろやっかいなところがあるんですよね。情報同期タイミングをどう設定するか。マスターデータをどれにするか。今この機材に設定されているこの情報は「正しい」のか?結局取れる情報が機材(ハードウェア)ごと、バージョンごととかで違ったりするので、そうしたバリエーションをどうやって吸収していくか...ビュー/汎用性の選択肢と実装コスト同じような情報が、違う見方で、異なるドキュメントにあり、相互に情報の整合性がとれていなければならないというものがある。したい情報が変わるわけで、案件ごととかシステムごととかで作ってそれで終わりになってしまいがち。汎用的な話にしにくい。汎用性を考えようとすると、そもそもベンダごと・製品ごとに使える機能や管理情報(情報モデル)がことなるわけで、個別の管理データの話をたくさん集めて積み上げていかないといけない。異なるベンダの製品を共通のデータモデルでやりとりできる...というところも実際できていないし、特定製品の特定機能を使うケースだと、どちらにしろ個別にどうにかしないといけないだろうし。etc)もあるけど、たいていすごく高額で、見合うようなシステム規模がないと採用しにくい。(製品機能の何割もつかえてないとかになりがち。効果とコストのバランス取るのが難しい。)物理実体の管理情報ってそもそも電気的・ネットワーク上で情報取れないって話が出てくる。どのラックに何がおいてあるみたいな話を自動的で取れるかというと難しいよね。台帳上機材があるからって見に行ったらだいぶ前に故障して撤去されてた...とか。マスターデータ問題、情報同期タイミング問題)ネットワークケーブルのパッチパネルの情報とかもね。(高いパッチパネルだとパッチ間の接続情報取れるようになってるのもあるけどねえ)ケーブルラベルはがれてる...とかあると泣きそうになるよね。あげくオペミスして断線・障害発生、とか。私は過去パッチ接続をミスってDCでアラート飛ばしたことがありますね。ファシリティ系とか、通信回線系とかの情報管理とかね。書いてみましたが特に結論があるわけでもないです。一筋縄ではいかないですよね、という話でした。参加してきたのでいつものメモです。