投稿

ついにサポート終了したData Ontap 7modeを供養する

Netapp ontap.md はじめに 古のNetappOSであるDataOntap7mode(以下7mode) お世話(苦しめられた)になった人も多かったOSですがCluster Ontapで完全刷新され、今ではOntap9となり過去の遺物と成り果てて2022年末にサポートが完全終了されました。 と、言われながら今年移行作業を行なった事もあり、 さようなら7modeということで最後に完全版の移行手順を特級呪物として残しておきます。 この手順が二度と陽の目を見ませんように。。。 1. 7modeの情報取得 移行元の情報を引っ張らないと話にならないです。そんな時はJavaで動作するOncommand managerの出番です。 と思いきやそんなわけ無い!もはや最新OSにセットアップする事すら困難です。 頑張って動かしてもすぐに固まり、設定変更もままならない。という事でCLIベースでやるしかないわけです。 ただ今のOntapとは色々と差異があるので、コマンドとOption、構成ファイルのマッピングはここで確認しておきます。 7-Mode 管理者用の clustered Data ONTAP のコマンド、オプション、構成ファイルの対応マップ 基本情報収集 ざっくり基本的な構成情報を取得。 >sysconfig -A >ifconfig -a >ifgrp status >options >rdfile /etc/rc >rdfile /etc/resolv.conf >rdfile /etc/hosts >rdfile /etc/rc >rdfile /etc/resolv.conf >rdfile /etc/hosts >snapmirror status >snapmirror status -l >rdfile /etc/snapmirror.conf >df -h >df -i >cifs domaininfo >cifs shares vfiler情報収集 vfiler毎のOptionsやShare設定とか普通に打っても意味がない。 vFiler側を指定して情報を取っておきます。(現行の...

モックサーバーを簡単準備 WireMockノススメ

イメージ
  こんにちは。 調子こいてTafs Adventカレンダー2023に2日目の投稿のMPPAです。 今日は開発によく必要とされるモックサーバーを準備しようという記事です。 👹 お品書き 👺 1. 本日のゴール 2. モックサーバーってなに? 3. 環境準備 4. WireMockを用意して起動してみよう 5. WireMockに準備したAPIを呼んでみる 6. さいごに 1.本日のゴール 本日のゴールはモックサーバーWireMockを起動して、設定を行ったAPIをコールしてみます。 2.モックサーバーってなに? モックサーバーとは。。「スタブ(Stub)」っていうとしっくりくる人もいるでしょうか。色々調べてみましたがREST APIの値を疑似的に返すサーバーという定義でよさそうです。 やろうと思えば 普通にHTMLも返却できます。Apacheで設定ファイルいじってパスを再現するよりも私は楽かなと考えますが、これもきっと慣れでどっちでもOKかと。 自分なりにモックサーバーの使い道考えてみました。 開発している自APIが他サーバーのAPIをコールしてる時のスタブとして。 WebUI開発時にサーバーサイドAPIのスタブとして。 要件定義~基本設計にてユーザーに見せるためのWebUIの紙芝居をあたかも 動作しているかのように見せるためのスタブとして。 開発が遅い○○プロジェクトで、ダミーを返すインターフェースすら作られていない状況でのスタブとして (これは実現できないでしょう) 一番最初に書いた使い道がメインです。 3.環境準備(要リンク埋め込み) 今回も 第一弾 に引き続き、AWSを使って試してみます。 Dockerコンテナを利用するのが実用的ではありますが、 今回サーバーは。。。 第一弾「RD Gatewayを使ってかっこよくクラウド上のWindowsVMに接続する」 で作成したVMをそのまま使ってみます。 不安点とすれば今回題材とするWireMockがJavaベースなので、t2.microでちゃんと動いてくれるのかってところですが😓 正直、コンテナだろうがVMだろうが動けばいいと思います。 4.WireMockを用意して起動してみよう まずは WireMock公式サイト からWireMockを入手。 Maven、Gradle、Dockerなど様々なテンプ...

分散仮想スイッチで簡単ポートミラー

イメージ
分散仮想スイッチで簡単にポートミラー設定し、Wiresharkでパケットを確認してみたいと思います。 主にネットワークの切り分けなどでパケットが届いているのかどうかなどを確認する際に便利です。 今回確認で利用する環境の構成は以下です。 なお各仮想マシンのIPアドレスは以下です。 通信をするマシン ・windows 172.20.64.52 ・cent 172.20.64.53 パケットをキャプチャするマシン ・windows-mirror 172.20.64.51 ポートミラーリングの設定にも種類があります。 今回は「分散ポートのミラーリング」を設定します。 詳しくはこちらをご確認ください。 https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.networking.doc/GUID-C3970893-9328-430C-A440-F22B7E26280A.html 事前に分散仮想スイッチを作成し、ESXiを追加して分散ポートグループ「mirror-DPortGroup」と「workload-DPortGroup」を作成済みです。 確認をしていきたいと思います。 仮想マシンのインベントリはこの状態です。 ポートミラーリングの設定をやっていきましょう。 分散仮想スイッチを選択し、「構成」を表示し「新規」をクリックします。 セッションタイプの選択で「分散ポートのミラーリング」を設定します。 基本的にデフォルトのままで大丈夫ですが、ステータスが「無効」となっているのでここを「有効」に変えます。 ソースの選択で、どの仮想マシンのポートを対象とするかを選択します。 今回はcentを対象にしました。 ターゲットの選択では同様に、どの仮想マシンへパケットをミラーリングするのかを選択します。 こちらはWiresharkをインストールしたwindows-mirrorを対象にしています。 最後に「完了」をクリックして終了です。 作成したポートミラーリングの設定が表示されます。 では実際に仮想マシンcentから仮想マシンwindowsへpingを実行して、windows-mirrorでパケットを確認でき...

人工知能(AI)と機械学習(ML)の導入事例から学ぶ、失敗から得た教訓

  導入事例1: 顧客サポートの自動化プロジェクト 企業Aは、AIを活用して顧客サポートを自動化するプロジェクトを立ち上げました。しかし、プロジェクトは期待された効果を得ることができず、逆に顧客の不満が増加しました。なぜなら、機械学習モデルが一般的でない質問や複雑な問題に対応できなかったためです。結果として、顧客対応の品質が低下し、信頼性も損なわれました。 教訓: 導入前に十分なトレーニングデータを用意し、特に現実的なユースケースに焦点を当てることが重要です。また、初期段階で人間の介入が必要な場面を正確に把握し、それに対応する仕組みを設けることが成功の鍵となります。 導入事例2: 製造業における品質管理システム 企業Bは、機械学習アルゴリズムを使用して製造ライン上の品質管理を改善することを目指しました。しかし、導入されたシステムは、製品の欠陥を正確に検知できず、誤検知が多発しました。これにより、製造プロセスが停滞し、品質向上どころか逆に品質が低下しました。 教訓: モデルの訓練に使用するデータの質と量が極めて重要です。過去の品質データだけでなく、最新のデータや異常事象に焦点を当てることが必要です。また、機械学習システムを導入する前に、現場のスタッフと連携し、彼らの経験と知識を適切に組み込むことが必要です。 導入事例3: 財務予測モデル 企業Cは、AIを使用して財務予測を行うモデルを構築しましたが、予測の精度が低く、結果として誤った意思決定が多発しました。モデルは市場の急激な変動に対応できず、投資や資金調達の判断に影響を及ぼしました。 教訓: ファイナンス関連の予測モデルを構築する際には、業界の専門家や経験豊富なアナリストとの密な協力が必須です。単なる数値の予測だけでなく、外部要因や市場の変動にも対応できる柔軟性を持つモデルの構築が求められます。 これらの事例から得られる教訓は、機械学習プロジェクトにおいては慎重な計画と現場との連携が不可欠であることです。成功例もあれば、失敗例から得られる教訓もしっかりと取り入れ、将来のプロジェクトに活かすことが重要です。 以上は、すべてChatGPTから出力された「AI導入による失敗事例の記事」です(罫線・太字化含め)。 記事内では狭小的な空間での利用失敗が主例となっていますが、 ブログ記事の執筆においては情報の収集・...

Burp Suiteをご存じですか?

Webアプリケーションのセキュリティテストツールとして、その界隈ではメジャーなソフトです。 類似製品にZed Attack Proxy(ZAP)やFiddlerなどがあります。 私は10年ほど前にとあるセキュリティ勉強会に参加して、このツールの存在を知りました。 ツールはローカルプロキシとして動作し、トラフィックを透過的に監視・変更ができる機能や、過去のリクエストを再送信するテストに便利な機能、セキュリティスキャン機能などがあります。 初めて知った当時、ユーザリクエストやサーバレスポンスを変更できるというところに衝撃を受けました。 もちろんそれまでも知識としては知っていましたが、体験するとインパクトは大きかったです。 WebUIで入力値の制限をかけるだけではいくらでも改変できてしまうんだな…と。 興味のある人は無料のCommunity Editionがありますので試してみてください。 インストールは「次へ」だけでほぼ進めますし、設定・使用方法はググれば出てきます。 設定を変更しなくてもデフォルトでも動きますのでそのあたりは省略します。 ちょっと書くと、プロキシのリスナーポートがデフォルトだとループバックアドレスの8080なので、他と被ってるなど変更したい人は変更しましょう。 あとはブラウザのプロキシ設定を変更するだけです。 最後に2つほど注意点を。 テストに使用するブラウザは「綺麗」なものを使用しましょう プラグインてんこ盛りやアカウント同期などを使っていない素のブラウザを使いましょう。 余計な通信がなくて見やすいです。 テストは自身所有のサーバに対して行いましょう 当たり前ですが、よそ様のサーバに対して行ってはいけません。 犯罪とみなされる恐れがあります。

Google Apps Scriptを使ってメールの自動送付を設定してみた

イメージ
些細なこと、面倒なこと、忘れることは自動化だ!  はじめに 毎月のタフス会の後に開催される社内業務委員会では、各チームが順番に司会を担当しています。5か月に一度、チームに当番が回ってくるのですが、毎度、当番を忘れそうになります。都合により順番が変わることもあるので、毎度、確認するのも覚えておくのも面倒です。そこで、Google App Scriptsを利用して毎月1日に司会当番のお知らせをメールを自動送付するスクリプトを作成しました。 司会がやること 司会の当番が開催前にやることは、以下の2つです。 アジェンダ表の作成 開催の周知と事前起案の依頼 担当の当番表とアジェンダ表は、異なるスプレッドシートを使用しています。 開催前の周知は、Google Chatスペースに投稿していました。 いざ、自動化 Google App Scriptsを利用して自動化してみました。 スクリプトの動作は以下の通りです。 日付の特定 スクリプト実行時の日付から年・月を抽出 司会当番の特定 司会当番表のスプレッドシートで該当行を特定 特定した行から担当名を取得 担当名が”開催なし”になっている場合は、処理を中断 アジェンダ用スプレッドシートの作成 アジェンダ用スプレッドシートのテンプレートシートをコピー コピーしたスプレッドシートのシート名を変更 コピーしたスプレッドシートを一番左から2番目に移動 メール送信 Google Docsのメールひな形を置換してメールを送信 自動実行の設定 毎月1日に動作するようにトリガーをセット 使用するスプレッドシート 以下2つのスプレッドシートを使用します。 毎月の司会当番が記載されている担当が記載されているスプレッドシート 毎月の社内業務委員会のアジェンダ&議事メモのスプレッドシート 担当を特定するのに使うスプレッドシート Google Apps ScriptsでA列の日付をからB列の担当名を特定します。 毎月のアジェンダで使用するスプレッドシート シート名”Template”をコピーしてシート名をMM_YYYYへ名前変更、そのあとシートを左から2番目に移動します。 メールで利用したGoogle Docs 以下のファイルを用意しておき、変数で置換してメール送信しています。 ファイル名:{開催月} 月度 社内業務委員会開催のお知らせ ファイル本文:...

Flutter を触れてみる

イメージ
 どうも、ysです。 Flutter がずっと気になっていたので、今日は Flutter に触れてみるため、公式ドキュメントの Get started をやってみようと思います。 モバイルアプリ、デスクトップ、Webアプリを作れますが、今回はモバイルアプリ(Android)の画面を立ち上げるところまでやります。 開発環境のOSは Windows 10 です。 それでは早速始めていきます。 まずは、公式ドキュメントに沿ってセットアップしていきます。 https://docs.flutter.dev/get-started/install Flutter SDK をダウンロードして以下に展開します。 展開先:C:\_work 環境変数の「Path」に、展開したファイル内にあるbinディレクトリを登録します。 登録したPath:C:\_work\flutter_windows_3.16.0-stable\flutter\bin コマンドプロンプトで flutter を実行できるか確認してみます。 Dart も実行できるか確認してみます。 問題なさそうですね。 では、Flutter の Doctor コマンドで、環境が整っているか確認してみます。 「Android toolchain」、「Visual Studio」、「Android Studio」が無いって表示されましたね。 今回はデスクトップアプリ作りませんし、エディターは VSCode 使うので、「Visual Studio」はいらないですね。 というわけで、他の2つの環境を整えていきます。 まずは 「Android Studio」をダウンロード&インストールします。 https://developer.android.com/studio?hl=ja ※インストーラは全てデフォルト値でインストール。 一回起動する必要があるそうなので、起動して空のプロジェクトを適当に作って開きます。 Flutter の Doctor コマンドをもう一回実行すると。。 「Android Studio」は完了ですね。「Android toolchain」がまだ無い状況です。 「Android toolchain」については、2つやらないといけないことがあるようです。 まずは sdkmanager のコマンドラインツールを使える...