ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

macOS-Sonomaへ引っ越し

venturaに切り替えたときの方法 からまたもや1年。昨日にmacOS14のsonomaが公開されてた。 今年も勉強しましょ。 windows11pro上のVMware Player 17にmacOS 14 Sonomaをインストールしてく。 前は16やったけど、いつやったか17に上げてunlockerも入れてた。 appleの公開情報 にはまだSonomaのインストーラのことは書いてへん。 少しググるとyoutubeで sonomaのインストール やってる人の動画があった。 去年ventura入れるのに使ったコマンドラインを少し読み替えたら、やっぱできるんやな。作者さんありがとう。 ホンマはonyxが使えるようになるの待ってるんやけど、やっとこ。 今年からkubernetes使ってるから、そこがすぐには使えへんかもなぁ。 macos14の確認 毎年10月末になったら更新が通知されてたけど、今年は9月末。 今年は猛暑でシャインマスカット安くておいしくなってたな。sonomaの導入はシャインマスカットほど甘くないかも。 おーし、アップデート通知来てるやん。 ここではアップグレードせず、app store起動してダウンロードする。 クリーンアップに使うonyxはsonomaのリリース日の10〜15日後に出てくるはずなので、使いながら待つ。 isoファイルの準備 別ホスト作ってインストールするから、isoイメージを準備。 まずはapp storeでダウンロードすると、10分もかからずすぐに終わる。 インストーラが起動するけど、そのままは使わない。アップデートしたかったらやったらええ。 いったんインストーラは終了。 今年のインストールメディアの作り方 さっきのyoutubeの動画の下に、コマンドラインがあったので参考にして使わせてもらった。 去年とその前はvmdkを作ってやってたけど、/tmpの下に.dmg作って.cdrファイル作ってから.isoにリネームしてる。 ダウンロード待ちながらコマンドラインを準備した。 本質的には毎年変わらん。 旧macos(macos13)で新macos(macos14)のインストールメディア作って、vmwareの中で新ホストにマウントしてインストールするって流れ。 空ディスクを作る(去年は14GB、今年は16GB)。 hdiutil create -o /tmp/Sonoma -size 16G -volname Sonoma -layout SPUD -fs HFS+J 作ったディスクをマウントする hdiutil attach /tmp/Sonoma.dmg -noverify -mountpoint /Volumes/Sonoma インストール用iso作成 sudo /Applications/Install\ macOS\ Sonoma.app/Contents/Resources/createinstallmedia --volume /Volumes/Sonoma --nointeraction 空ボリュームをアンマウントする hdiutil eject -force "/Volumes/Install macOS Sonoma" CDRを作ってisoイメージに変換する 1 2 hdiutil convert /tmp/Sonoma.dmg -format UDTO -o ~/Desktop/Sonoma mv -v ~/Desktop/Sonoma.cdr ~/Desktop/Sonoma.iso 実際にやったらこんな感じ。 ...

 ⭐️

コマンドライン一覧(ファイル操作系)

No 内容 command OS 例 備考 1-1 ファイルの一覧表示 ls -lTFh mac % ls -lTFh /usr/bin/grep -rwxr-xr-x 3 root wheel 182K 9 2 16:35:13 2023 /usr/bin/grep* % 1-2 ファイルの一覧表示 ls -alFh linux % ls -alFh –time-style="+%Y-%m-%d %H:%M:%S" /usr/bin/grep -rwxr-xr-x 1 root root 179K 2022-03-23 22:56:13 /usr/bin/grep* % 1-3 ファイルの一覧表示 dir windows-dos C:\Users\nari>dir C:\Windows\System32\drivers\etc\hosts ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 3088-0C15 です C:\Windows\System32\drivers\etc のディレクトリ 2019/12/07 18:12 824 hosts 1 個のファイル 824 バイト 0 個のディレクトリ 155,162,329,088 バイトの空き領域 C:\Users\nari> 1-4 ファイルの一覧表示 ls -l windows-ps PS C:\Users\nari> ls -l C:\Windows\System32\drivers\etc\hosts ディレクトリ: C:\Windows\System32\drivers\etc Mode LastWriteTime Length Name —- ————- —— —- -a—- 2019/12/07 18:12 824 hosts PS C:\Users\nari>

 ⭐️

コマンドライン一覧(その他系)

No 内容 command OS 例 備考 1-1 OS停止 # sleep 10 ; shutdown -h now mac # sleep 10 ; shutdown -h now Shutdown NOW! *** FINAL System shutdown message from nari@gvis-mac.intra.gavann-it.com *** System going down IMMEDIATELY System shutdown time has arrived # 10秒後にOS停止 1-2 OS停止 # sleep 10 ; shutdown -h now linux # sleep 10 ; shutdown -h now 10秒後にOS停止 1-3 OS停止 shutdown /f /s /t 10 windows-dos C:\Users\nari>shutdown /f /s /t 10 C:\Users\nari>shutdown /a C:\Users\nari> 10秒後にOS停止 “shutdown /a"でキャンセル 1-4 OS停止 shutdown /f /s /t 10 windows-ps PS C:\Users\nari> shutdown /f /s /t 10 PS C:\Users\nari> shutdown /a PS C:\Users\nari> 10秒後にOS停止 “shutdown /a"でキャンセル — —- ——- —- —- —- 2-1 OS再起動 # sleep 10 ; shutdown -r now mac # sleep 10 ; shutdown -r now Shutdown NOW! *** FINAL System shutdown message from nari@gvis-mac.intra.gavann-it.com *** System going down IMMEDIATELY System shutdown time has arrived # 10秒後にOS再起動 2-2 OS再起動 # sleep 10 ; shutdown -r now linux # sleep 10 ; shutdown -r now 10秒後にOS再起動 2-3 OS再起動 shutdown /f /r /t 10 windows-dos C:\Users\nari>shutdown /f /r /t 10 C:\Users\nari>shutdown /a C:\Users\nari> 10秒後にOS再起動 “shutdown /a"でキャンセル 2-4 OS再起動 shutdown /r /t 10 windows-ps PS C:\Users\nari> shutdown /f /r /t 10 PS C:\Users\nari> shutdown /a PS C:\Users\nari> 10秒後にOS再起動 “shutdown /a"でキャンセル

 ⭐️

djangoをdockerコンテナで利用(18) - djangoのインボイス対応

インボイスってのが来月から始まる。 消費税をゴソっと徴収されてまう苦しいルール。 受け取った消費税を、支払った消費税で相殺して払えばええらしいんやけど、この計算けっこう手間がかかる。 売上が1000万円もあるわけないから、時限ルールの2割納税を適用させてもらうけど、計算処理は作っとかなアカン。 djangoで作った帳簿の処理を改造することにした。 目標設定 経費を入力するテーブルに、金額のフィールドがあるのを、8%と10%の消費税を保持させて、月単位集計と年単位集計にその合計を表示させる。 最近受け取ったレシートとかみると、もう適格請求書発行番号を書いてあるものがあった。 なるほど、こうやるんやって横目で見ながら自分のexcel請求書も書式変更した。 結果 だいたいこんなことをやった。 2023autumn pycファイルをgit対象から除外 python3.10を3.11、requirements.txt内モジュールのバージョンアップ カレントデータベース表示の追加 ローカル環境をテスト用mariadbに変えてインボイス対応の実施 インボイス対応 ここが今回の主な作業。 migration(0011_gviskeihi_gvismstkamoku_gvismstkeihishubetsu.py)にうまく追加されないのでpycファイルを手動で削除してから追記しdockerコンテナをビルドしなおし 経費テーブル(GVIS_Keihi)に消費税8%(tax8kng)と消費税10%(tax8kng)の格納項目を追加 モデル(GvisKeihi.py)に経費テーブルの追加列を追記 経費明細のテンプレート(gvis_50x_Keihixxx(Detail/Delete/Update).html)に追記 帳簿のテンプレート(gvis_600_ChoboKensaku.html)に追記 view(gvis_keihi_views.py/gvis_chobo_views.py)に追記 共通処理(common.py)の年間売上経費取得処理(gv_Func_uriageKeihi)を年間売上経費&消費税取得処理に内容変更 共通処理(common.py)に年間受け取り消費税合計取得処理(gv_Func_ukeTaxGokei)と年間支払い消費税取得処理(gv_Func_shihaTaxGokei)を追加 アプリケーションの更新 djangoはpythonのwebフレームワークで、MVT(model・view・template)ってのを組み合わせて作る。 modelはデータベース、templateはhtml、viewは実処理を意味してる。 データ構造を変更するときは、modelを変えてマイグレーションを動かして更新させるんやけど、このやり方が自分にはどうしても気に食わない。 データベース上の列の型とかは自分でコントロールしたいから、マイグレーション使わずに手動で更新した。 データベースのテーブルを更新 もう10年ぐらい前からデータベースを維持してて、最初はphpでwebアプリを作ってた。その頃は navicatのmysql接続版 を使ってた。 5〜6年前やったと思うんやけど、mysqlをやめてmariadbに乗り換えて、去年からphpをやめてdjangoに切り替えた。 今は a5sql を使わせてもらってる。 作者さんありがとう。 昔はa5sqlでテーブルの列追加ってやったことなかったけど、最近見たらめっちゃ楽にできることに気づいた。 テスト用スキーマを開いて、テーブルの設計更新を選ぶとこんな画面が出て、列追加ができる。 金額の列の後ろに消費税8%と10%の列を足してから左上にある「DDL生成」ボタンを押す。ここで右端にある「引き継ぐ値」は何も入れないでおくと、「デフォルト式」の値が設定されるみたい。 すると、新しいsql窓が開いてコメントつきでsqlが作られてビックリ。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 -------------------------------------------------------------------------------- -- `nariDB_Django`.`GVIS_keihi` のレイアウト変更 -- 注意!!:テーブルに依存するオブジェクト(ビューなど)が削除される場合があります。それらのオブジェクトは復元されません。 -- 2023/09/13 nari -------------------------------------------------------------------------------- -- 新テーブルの作成 create table `nariDB_Django`.`$$GVIS_keihi` ( id int(11) auto_increment not null comment 'id' , `workPeriod` datetime comment '業務期間-開始日' , `workShubetsu` char(4) comment '経費種別' , `workPriority` int(10) comment '経費No-優先順位' , `Keihi_date` datetime comment '経費日付' , `Kamoku` varchar(24) comment '科目' , `Tehai` varchar(1000) comment '手配方法・名称・機種' , `Kng` decimal(12,4) default '0.0000' comment '金額' , `Tax8Kng` decimal(12,4) default '0.0000' comment '消費税8%' , `Tax10Kng` decimal(12,4) default '0.0000' comment '消費税10%' , `Biko` varchar(100) comment '備考' , ins_date datetime comment 'データ作成日' , ins_user varchar(100) comment 'データ作成ユーザ' , upd_date datetime comment 'データ更新日' , upd_user varchar(100) comment 'データ更新ユーザ' , primary key (id) ) comment='' engine InnoDB row_format DYNAMIC auto_increment 10554 collate utf8mb3_general_ci / -- 新テーブルへデータ投入 insert into `nariDB_Django`.`$$GVIS_keihi`(id, `workPeriod`, `workShubetsu`, `workPriority`, `Keihi_date`, `Kamoku`, `Tehai`, `Kng`, `Biko`, ins_date, ins_user, upd_date, upd_user) select org.id, org.`workPeriod`, org.`workShubetsu`, org.`workPriority`, org.`Keihi_date`, org.`Kamoku`, org.`Tehai`, org.`Kng`, org.`Biko`, org.ins_date, org.ins_user, org.upd_date, org.upd_user from `nariDB_Django`.`GVIS_keihi` org / -- 元テーブルの削除 drop table `nariDB_Django`.`GVIS_keihi` cascade / -- 新テーブルをリネームして元テーブル名に変更 alter table `nariDB_Django`.`$$GVIS_keihi` rename to `nariDB_Django`.`GVIS_keihi` / -- インデックスとユニーク制約の作成 create index IDX_keihi on `nariDB_Django`.`GVIS_keihi`(`workPeriod`,`workShubetsu`,`workPriority`,`Keihi_date`,`Kamoku`) / テンポラリテーブルに列追加したターゲットテーブルを作って、そこに元テーブルのデータを流し込み、元テーブル削除したらターゲットテーブルを名前変更してキーつけてくれる。 ...

minikubeを利用8-dockerとkubernetesの使いこなし

dockerはもう5年以上、GKEのkubernetesとminikubeは今年の春から使い始めた。 普段使う開発言語はdjango(python)なんやけど、どう扱えば改善・テスト・本番反映・利用がうまくいくかってことを考えてみた。 ちょうどインボイス対応でdjangoの処理書き換えるから、そのための消費税計算機能とかもつけるし。 開発はやっぱりローカルPCでのdocker 自分にはこれが一番しっくりくる。 本番環境のGCPにあるVMもこれと同じ。 フロントエンドマシンはmacやから、ubuntu22でssdドライブに置いたvmdkのデータ領域をsamba共有させてvscodeで編集。 vscodeのremote developmentって方法もあるけど、シンプルやなかったから使ってない。 1 2 3 4 5 6 7 8 9 10 11 12 13 +-local ubuntu22 linux VM-----+ | +-docker---------+ +-vmdk-+ | | | +-container-+ | | data | | | | | Django | | | d1 | | | | +-----------+ | +------+ | | | +-container-+ | | | | | | | mariadb | | | d2 | | | | +-----------+ | +------+ | | | +-container-+ | | | | | | | xrdp-ubu22| | | d3 | | | | +-----------+ | +------+ | | +----------------+ | +-----------------------------+ GKE/EKSのkubernetesで動かすのはどんなとき? s3にデータを溜め込んでるとか、機械学習で大量のデータを作ってpvにcsv置いてるとか、スケーラブルなサーバ運用したいならGKE/EKS使えばええ。 ...

 ⭐️