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

AWSでEBSを識別

ec2-windowsホストを作ったとき、同じサイズのEBSを複数作ってしもたことがある。 EBSボリュームはデフォルトでNameが空やから、どれがどれかわからんようになってまうやんけ・・・。 作った後に識別する方法がある。これで名前つけられるな。 識別のためにpower shellで動かすと、リストが表示できる。 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 # List the disks for NVMe volumes function Get-EC2InstanceMetadata { param([string]$Path) (Invoke-WebRequest -Uri "http://169.254.169.254/latest/$Path").Content } function GetEBSVolumeId { param($Path) $SerialNumber = (Get-Disk -Path $Path).SerialNumber if($SerialNumber -clike 'vol*'){ $EbsVolumeId = $SerialNumber.Substring(0,20).Replace("vol","vol-") } else { $EbsVolumeId = $SerialNumber.Substring(0,20).Replace("AWS","AWS-") } return $EbsVolumeId } function GetDeviceName{ param($EbsVolumeId) if($EbsVolumeId -clike 'vol*'){ $Device = ((Get-EC2Volume -VolumeId $EbsVolumeId ).Attachment).Device $VolumeName = "" } else { $Device = "Ephemeral" $VolumeName = "Temporary Storage" } Return $Device,$VolumeName } function GetDriveLetter{ param($Path) $DiskNumber = (Get-Disk -Path $Path).Number if($DiskNumber -eq 0){ $VirtualDevice = "root" $DriveLetter = "C" $PartitionNumber = (Get-Partition -DriveLetter C).PartitionNumber } else { $VirtualDevice = "N/A" $DriveLetter = (Get-Partition -DiskNumber $DiskNumber).DriveLetter if(!$DriveLetter) { $DriveLetter = ((Get-Partition -DiskId $Path).AccessPaths).Split(",")[0] } $PartitionNumber = (Get-Partition -DiskId $Path).PartitionNumber } return $DriveLetter,$VirtualDevice,$PartitionNumber } $Report = @() foreach($Path in (Get-Disk).Path) { $Disk_ID = ( Get-Partition -DiskId $Path).DiskId $Disk = ( Get-Disk -Path $Path).Number $EbsVolumeId = GetEBSVolumeId($Path) $Size =(Get-Disk -Path $Path).Size $DriveLetter,$VirtualDevice, $Partition = (GetDriveLetter($Path)) $Device,$VolumeName = GetDeviceName($EbsVolumeId) $Disk = New-Object PSObject -Property @{ Disk = $Disk Partitions = $Partition DriveLetter = $DriveLetter EbsVolumeId = $EbsVolumeId Device = $Device VirtualDevice = $VirtualDevice VolumeName= $VolumeName } $Report += $Disk } $Report | Sort-Object Disk | Format-Table -AutoSize -Property Disk, Partitions, DriveLetter, EbsVolumeId, Device, VirtualDevice, VolumeName

 ⭐️

azure 仮想マシンの試験利用(dockerコンテナ利用をgoogle cloudと比較)

今年のGWの勉強はazure利用。 前にもやりかけたことあったけどwebページ見て概要掴むだけやった。 実際に30日トライアル使わせてもらう。 価格比較もしたいから、普段google cloudでやってるdockerコンテナ稼働を目指す。 Azureでサーバ作ってみる 普段はGoogle cloudのubuntuでデータ本番利用しといて、ローカルのubuntuにもdocker入れて使ってる。 DjangoとmariadbはときどきLTSのバージョンが上がってくからローカルでモジュールを変更してテストしてgitlabでバージョン管理してる。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +-local ubuntu22 linux--------+ +-GCE ubuntu22 linux----------+ | +-docker---------+ +-vmdk-+ | | +-docker---------+ +--pv--+ | | | +-container-+ | | data | | | | +-container-+ | | data | | | | | Django | | | d1 | | | | | Django | | | d1 | | | | +-----------+ | +------+ | | | +-----------+ | +------+ | | | +-container-+ | | | | | | +-container-+ | | | | | | | mariadb | | | d2 | | | | | mariadb | | | d2 | | | | +-----------+ | +------+ | | | +-----------+ | +------+ | | | +-container-+ | | | | | | +-container-+ | | | | | | | xrdp-ubu22| | | d3 | | <- | | | xrdp-ubu22| | | d3 | | | | +-----------+ | +------+ | <- | | +-----------+ | +------+ | | | | | <- | | +-container-+ | | | | | | | | | gitlab | | | | | | | | | +-----------+ | | | | +-container-+ | | | | +-container-+ | | | | | https | | | | | | https | | | | | +-----------+ | | | | +-----------+ | | | +----------------+ | | +----------------+ | +-----------------------------+ +-----------------------------+ 今回は、ローカルのubuntuで使ってる環境をazureに展開できるかやってみる。 ...

 ⭐️

djangoをdockerコンテナで利用(19) - ログアウト画面で真っ白

定期更新してたらdjango5があることに気づいた。 来年に5.2のLTS出るんやな。 予定として6.0のことも書いてある。 2026年のことまで書いてあるのは気ぃ早いなぁ。 4.2.7を使ってたのを、勇気を出して5.0.2に変えてみた。 バージョン上げてみる pip3で普通にやってみる。 おお、他にも色々上がっとるやん。 テストしてだいたいOKやったけど 2015年頃からデータベースに帳簿とか画像とかpdfが入ってて、読み書きはできた。 帳簿も2020年のを見比べると金額あってたから、データベース関連の処理とか集計の処理は大丈夫っぽい。 見た目一緒やから別ページのリンク画像やけど、円グラフも表示できてた。 LTSやないから期待してへんかったけど、django5でも行けるんとちゃうか。 と思ってたら、最後のログアウトしたところで画面真っ白。 なんかヤな予感。 前にdjango3をdjango4にあげたときにどっかのページ表示でこんなんあったような、なかったような・・・。 だいたい真っ白のときにはサーバからまともなhtmlが戻ってきてへんのな。 調べてみた 検索してみると、logoutviewでgetが非推奨になったらしい。5.0になったらなくなってまうってよ。 Djangoの認証システムを使用する | Django ドキュメント | Django docs.djangoproject.com 脆弱性対応とかなんやろけど、どないしたらええんやろか。 ログアウトできんと困るやん。 対処方法探す 同じ様なことをやってる人がいた。 getの代わりにpostメソッド使えばええみたいやけど、getメソッド許可するの? 侍テラコヤ(SAMURAI TERAKOYA) - 日本最安級のサブスク型オンラインITスクール terakoya.sejuku.net そういえば自分のログアウト処理の箇所はこう書いてた。 1 <a href="https://nafslinux.intra.gavann-it.com:30443/gvisWebApp/logout/" >イントラwebDjangoログアウト</a> ほなこう書いてpostメソッド指定してみよ。 1 2 3 4 <form action="{% url 'gvisWebApp:logout' %}" method="post"> {% csrf_token %} <input class="darkmode-ignore" type="submit" value="ログアウト"> </form> そやけど、これだけやったらアカンかった。 まだ真っ白画面になった。 ...

html内で画像埋め込みと日付差

簡単な処理をhtmlで作るメモって案外やってないからやってみた。 もうすぐxx日とか表示させてみる。 URLで画像だけでなく、埋め込み画像もやってみよか。 埋め込み画像はhtmlに入れる時base64でエンコードしたものをimg srcってタグに展開する。 base64って7ビット表現やったかな。 元のjpgとかpdfよりもサイズが膨らんでまう。 pdfとかもインライン表示できるし、djangoの処理で日常的にやってるんやけど、一回書いたら問題出たときしか見いひんからここでメモ。 base64変換やってくれるサイトあるんかなって探したらすぐあった。 作者さんありがとう。 画像Base64エンコード - 画像をBase64文字列へ変換 | Web ToolBox web-toolbox.dev 結論 こうなる。 画像は、左が自分のサイトにある4kBぐらいのjpeg画像で、右がそれをbase64エンコードしてhtmlに埋め込んだもの。 下の方に今日の日付との日数差が出てる。 書いた内容 こんな感じ。 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 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>gvis sample</title> </head> <body> <div class="header"><font size="8"><center>期限までもうすぐ!!(左がURL指定、右が埋め込み)</center></font></div> <br> <div class="main" style="text-align: center"> <img src="https://gavann-it.com/wp-content/uploads/2021/10/mac-Monterey009.jpg"/> <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAFCAT8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5UooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiirOnWN3qV5Haadaz3d1KcJDBGXdj6BRyaAK1Fdf4q+G3i3wnoVvrHiLRpdPsLiYQRvLIm4uVZgCgbcOFbqB0rkKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOl+Hfg7UvHfiu00LSFAlmO6WZhlYIx9529h+pIHevv74a/Dnw/8PdIW00O0X7SygXF7IAZpz/tN2Hoo4H615T+xj4YhsPA9/wCIpEBu9TuDCjkciGPjA+rl8/Qele0+NvFmj+C9AuNX1+6W3tYh8q9XlbsiL/Ex9PxOACaAPAP23ddiTRvDmgK4M8tw986jqqopRSfqXf8A75NfJFdT8S/GV7498Y32vagNhmOyGEHIhiH3UH0HU9ySe9ctQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFer+BvgH458W28d0tjFpVjIMrPqLGLcPUIAX+hIAPrXtf7M/wVtdN02z8W+K7VZtUuFE1jazLlbZDysjA9XPUZ+6Md+n0lQB8gv8Asm60LfMfibTmnx9xrdwuf97JP6V5t41+B/jvwmry3OkNf2acm504mdQPUqBvA9yoFfoPRQB8H/Dv40eN/Dvhmz8IeFNKs7h4Wk8oi0kmuCXcscKGwcFj/DXSD4NfFb4m3yar41v0s8j5P7QlyyKeyQxghPodtfZKQxJI8iRosj/eYKAW+pp9AHye/wCyRcCHKeMYjNj7p04hfz83+leeeOP2efHHhi3kuoLaDWbNBuZ9PYs6j1MZAb/vndX3nRQB+VjAqSGBBHBB7UlfTv7YnhvwjY3NrqtjcwWnim5fM9lEv/HzGf8AlqwHCsD3ON3PUivmKgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACu++BfhVPGPxR0TS7lA9kshublSMgxRjcVPsxAX/gVcDX0X+xNaLJ49127YZaHTfLX23yof/ZKAPskAAYHAooooAKKKKACiiigArjfi542g+H/gW/1yVVkuFAhtYW6STN90H2GCx9lNdlXy1+3FqEq23hLTlJEEj3Nw47FlEar+QZvzoA+X9d1e/wBe1e61TV7mS6vrpzJLLIclif5AdABwAMCqFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR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Nr+x7L/p5/7+L/8AE0f2PZf9PP8A38X/AOJrF/tG9/5/Ln/v63+NH9o3v/P5c/8Af1v8aANr+x7L/p5/7+L/APE0f2PZf9PP/fxf/iaxf7Rvf+fy5/7+t/jR/aN7/wA/lz/39b/GgDa/sey/6ef+/i//ABNH9j2X/Tz/AN/F/wDiaxf7Rvf+fy5/7+t/jR/aN7/z+XP/AH9b/GgDa/sey/6ef+/i/wDxNH9j2X/Tz/38X/4msX+0b3/n8uf+/rf40f2je/8AP5c/9/W/xoA2v7Hsv+nn/v4v/wATR/Y9l/08/wDfxf8A4msX+0b3/n8uf+/rf40f2je/8/lz/wB/W/xoA2v7Hsv+nn/v4v8A8TR/Y9l/08/9/F/+JrF/tG9/5/Ln/v63+NH9o3v/AD+XP/f1v8aANr+x7L/p5/7+L/8AE0f2PZf9PP8A38X/AOJrF/tG9/5/Ln/v63+NH9o3v/P5c/8Af1v8aANDUtLt4LN5oGlBTGQ7A5yccYArFqae6uJwBPPLIByA7k4/OoaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z" /> <br> <br> <center><font size="6"> <script> //比較する日付オブジェクトを2つ用意する const today = new Date(); const year = today.getFullYear(); const month = today.getMonth() + 1 ; const date = today.getDate(); var dayToday = `${year}/${month}/${date}`; document.write("---今日は",dayToday,"なので4月1日まで、"); var day1 = new Date(dayToday); var day2 = new Date("2024/4/1"); //差日を求める(86,400,000ミリ秒=1日) var termDay = (day2 - day1) / 86400000; document.write("あと",termDay,"日---"); </script> </font></center> </div> </body> </html> javascriptで日付計算けっこう面倒やねんな。

ascii文字で大きな表示

業務ではボツネタになったけどせっかく作ったので置いとく。 active directoryに参加している企業内のPCには、ログイン時に特定の処理をさせることができる。 バッチ処理動かすとか、パワーシェル動かすとかね。 そんな中でカウントダウン表示したいから「文字を大きく表示させて欲しい」なんてのがあった。 習作として作っておいたもののメモ。 結論 こんなのが表示できる。 なぜかwindowsのハードコピーうまくmacに持って来れんかったから、いったん写真。 練習のアスキーアート アスキーアートってのがある。 jpegをアップロードしたらテキスト表示してくれるサイトあるので、練習でやってみた。 作者さんありがとう。wordで「wordアート」使って臨時で作った文書を変換してみた。 AA変換(アスキーアート生成)|Web便利ツール@ツールタロウ tool-taro.com 最初はこんなん作った。 なんか砂ボコリ上がってるようにも見えるし、目がチカチカする。 wordアート作戦はやっぱやめとこ。 文字を作る macの中でkubernetesを動かすときにminikube使う。 けっこう勉強で使わせてもらってて、dockerコンテナとして動いてるminikubeにsshするときこんな表示が出る。 その中ではminikube sshってコマンドライン打つと、バナーが表示される。 こんな感じ。 1 2 3 4 5 6 7 8 nari@gvis-mac minikube % nari@gvis-mac minikube % minikube ssh _ _ _ _ ( ) ( ) ___ ___ (_) ___ (_)| |/') _ _ | |_ __ /' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\ | ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/ (_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____) こんな感じで作りたかったんやけど、文字を変更してくれるサイト見つけられず・・・。 ...