0. この記事は何か
いろいろあって、Dockerとdbtを評価してみたくなりまして。
ということで、これまでExcelマクロ等で行っていた、担当システムのインシデント分析を、ざっくりdbt on Dockerに移そうとしています。
本記事は、その開発環境(評価環境)のセットアップ手順で、一般に公開する意味があるのか微妙なのですが、まあ、誰かの参考になればと。
構成は、ローカルWindowsのWSL上にDockerの開発コンテナを立てる形で、 DBはPostgreSQLを使用しています。
あまり詳しくない担当者も想定しているので、まっさらな状態から状態からの手順になっています。識者にとっては冗長だと思うので、そのあたりは適当にすっ飛ばしてください。
0. WSL2の導入
開発環境はDockerで動かしたく、かつ、Docker Desktopは有料で使いたくないので、手元のWindowsにWSLでLinux乗っけて、その上で開発コンテナを動かします。ということで、まずはWSLの導入。
ホストOS(Windows)のPowershellで以下を実行します。このコマンド一発で、機能の有効化だけでなく、Linux OS(Ubuntu)イメージの展開まで行われます。
wsl --install
あと、好みに応じてですが、以下のページの「Ubuntuの配置先を変更」も実施してください。
0. VPN(GlobalProtect)対応の実施
GlobalProtectのSIG(Secure Internet Gateway)の影響で、SSL通信がうまく行かない場合は、以下の作業を実施してください。通常は不要です。
0. Dockerのセットアップ
0.0 Dockerセットアップ
ゲストOS(Ubuntu)にDockerをセットアップします。
以下の参考記事の「Dockerエンジン(Linux側)のインストール」を実施してください。
0.0 ユーザ権限の調整
WSLのデフォルトユーザにDocker関連の操作の権限を付与します。
WSL上で以下を実行してください。
※「rabut」の部分をWSLのデフォルトユーザ名に置き換えて実施してください。
sudo usermod -aG docker rabut
0. Visual Studio Code のセットアップ
0.0 Visual Studio Code のインストール
とりあえず、Visual Studio Codeをインストールします。
やり方がわからなければ、以下のページなどを参考に。
0.0 アドイン
アドインをインストールします。
ひとつ前の「Japanese Language Pack」のインストールと同じ手順で実行できます。
0. 資産の展開と起動
Visual Studio Codeを起動して、左下の「リモートウィンドウを開きます」ボタンをクリックし、表示された選択肢から「WSLへの接続」を選択します。
左下のステータスが「WSL: Ubuntu」に変わったことを確認します。
Ctrl + Shift + P でコマンドパレットを開き、「git clone」を入力します。選択肢が表示されるので「Git Clone」をクリックします。
以下のURLを入力し、表示された「リポジトリのURL」をクリックします。
「https://github.com/rabut001/qatools.git」
リポジトリの展開先の選択画面欄が表示されるので、適当なディレクトリを選択してください。一応、初期値(ユーザのホームディレクトリ)でも大きな問題はないかと思います。
「クローンしたリポジトリを開きますか?」と聞かれるので「開く」をクリックします。
作成者を信頼しますか?と表示されるので、「はい。作成者を信頼します」をクリックします。
「コンテナーで開発するフォルダをもう一度開きます」と表示されるので、「コンテナーで再度開く」をクリックします。
開発コンテナーに接続した状態で環境が起動しますので、以下のフォルダに分析対象のシステムに対応した各ファイルを配置してください。とりあえずは直下の「sample」フォルダから全ファイルをコピーしてくる形でよいです。
workspace/app/conf
workspace/app/seeds
「Ctrl + @」でターミナルを起動し、以下のコマンドを実行しseedを作成します。。
※このコマンドはインシデント管理システムと接続できる状態でないとエラーになるため、一般の方は実行しなくて大丈夫です。
python /workspace/app/scripts/generate_seeds_from_qaweb.py
同じくターミナルから、以下のコマンドを実行します。
cd /workspace/app
dbt build