銀河の歴史がまた1ページ(日記)

Last Update (2020/07/23 16:06:54)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

ページ内目次


■ 宇宙暦 2018.06.01

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180601

2018.06.01(金) minikube v 0.25.2 を Windows 10 Pro 1803 と hyper-v で使ってみる

minikube v 0.25.2 を Windows 10 Pro 1803 と hyper-v で使ってみる

tag: minikube,hyperv

だいたい上の記事の通りでOK。

ウチではminikube用仮想ネットワークスイッチを作成すると、なぜかWindows側のDNSの設定が消えてしまったので、 コントロールパネル→ネットワークとインターネット→ネットワーク接続→minikubeNATのプロパティを開く →インターネットプロトコルバージョン4(TCP/IPv4)のプロパティ→次のDNSサーバのアドレスを使う からDNSを手動で設定した。

外部ネットワーク側に仮想スイッチを作っているので、LANというかWindows PCの外側からminikubeが見えることに注意。minikube自体はセキュリティとか考慮してないのでNATの内側に建てるのが基本。

minikubeのIPアドレスは、LANにあるDHCPから取得しており、LAN内のIPアドレスを消費している点にも注意。

hyper-vを使う場合は、管理者権限を持つPowerShellからminikubeを起動する。

上で作った仮想スイッチの名前が「Primary Virtual Switch」の場合、起動コマンドの例は以下。

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch" --memory 4096 --disk-size 30G

hyper-vを使っている時と、virtualboxを使っている時でminikubeの起動オプションが違うので、PowerShellから判定。

Get-VM
if ( $LastExitCode ) {
    minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch" --memory 4096 --disk-size 30G
} else {
    minikube start --memory 4096 --disk-size 30G
}

Docker for Windowsの2018.02 Edge版にはKubernetesが搭載されているようだけど、Docker for Windows 2018.03通常版には まだKubernetesが載っていないので、今しばらくminikubeには頑張ってもらわねばなるまい


■ 宇宙暦 2018.06.02

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180602

2018.06.02(土) HTTP Range Request (レジュームダウンロード) 実装してみた

HTTP Range Request (レジュームダウンロード) 実装してみた

tag: wiki,http

参考資料

要約

実装後、ブラウザからのPDFファイルの表示で実験してみた

スマホからPDF見る時に、部分的に取得してくれたら通信量節約できるかなぁ・・と思って実装してみたが、そんなことは無かった(涙)

以下詳細。

tomcat8にRange機能があるか確認

# rootになる
sudo -i

# テストデータを置く
mkdir -p /usr/local/apache-tomcat-8.0/webapps/resumedata
cat > /usr/local/apache-tomcat-8.0/webapps/resumedata/index.html << "EOF"
<html><body><h1>It's works!</h1></body></html>
EOF
chown -R www /usr/local/apache-tomcat-8.0/webapps/resumedata

# テストアクセス tomcatに対して直接
curl -v http://localhost:8180/resumedata/

実験結果。tomcat8にもRange機能があった。

root@n3050 /usr/local/apache-tomcat-8.0/conf $ # テストアクセス
root@n3050 /usr/local/apache-tomcat-8.0/conf $ curl -v http://localhost:8180/resumedata/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8180 (#0)
> GET /resumedata/ HTTP/1.1
> Host: localhost:8180
> User-Agent: curl/7.59.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Accept-Ranges: bytes
< ETag: W/"47-1527404419000"
< Last-Modified: Sun, 27 May 2018 07:00:19 GMT
< Content-Type: text/html
< Content-Length: 47
< Date: Sun, 27 May 2018 07:01:06 GMT
<
<html><body><h1>It's works!</h1></body></html>
* Connection #0 to host localhost left intact
root@n3050 /usr/local/apache-tomcat-8.0/conf $

続いて、apache側から叩いた時の挙動。

# テストアクセス apacheからajp経由でtomcatに対して取得した場合
curl -v http://localhost:80/resumedata/

ajp経由でもAccept-Rangesは有効だった。

root@n3050 /usr/local/etc/apache24/Includes $ # テストアクセス apacheからajp経由でtomcatに対して取得した場合
root@n3050 /usr/local/etc/apache24/Includes $ curl -v http://localhost:80/resumedata/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /resumedata/ HTTP/1.1
> Host: localhost
> User-Agent: curl/7.59.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 27 May 2018 07:07:28 GMT
< Server: Apache/2.4.33 (FreeBSD) OpenSSL/1.0.2k-freebsd
< Accept-Ranges: bytes
< ETag: W/"47-1527404419000"
< Last-Modified: Sun, 27 May 2018 07:00:19 GMT
< Content-Type: text/html
< Content-Length: 47
<
<html><body><h1>It's works!</h1></body></html>
* Connection #0 to host localhost left intact
root@n3050 /usr/local/etc/apache24/Includes $

続いて、部分的な取得の実験。

# テストアクセス 部分的に取得してみる
curl -v -H 'Range: bytes=0-10' http://localhost:80/resumedata/

おおー。とれた。

root@n3050 /usr/local/etc/apache24/Includes $ # テストアクセス 部分的に取得してみる
root@n3050 /usr/local/etc/apache24/Includes $ curl -v -H 'Range: bytes=0-10' http://localhost:80/resumedata/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /resumedata/ HTTP/1.1
> Host: localhost
> User-Agent: curl/7.59.0
> Accept: */*
> Range: bytes=0-10
>
< HTTP/1.1 206 Partial Content
< Date: Sun, 27 May 2018 07:11:28 GMT
< Server: Apache/2.4.33 (FreeBSD) OpenSSL/1.0.2k-freebsd
< Accept-Ranges: bytes
< ETag: W/"47-1527404419000"
< Last-Modified: Sun, 27 May 2018 07:00:19 GMT
< Content-Range: bytes 0-10/47
< Content-Type: text/html
< Content-Length: 11
<
* Connection #0 to host localhost left intact
<html><bodyroot@n3050 /usr/local/etc/apache24/Includes $
root@n3050 /usr/local/etc/apache24/Includes $

メモメモ


■ 宇宙暦 2018.06.03

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180603

2018.06.03(日) やべぇ。ウチのHyper-Vの仮想スイッチマネージャー壊れたww

tag:hyperv

やべぇ。ウチのHyper-Vの仮想スイッチマネージャー壊れたww

「仮想スイッチの一覧の取得中にエラーが発生しました」というエラーが出てなんもできん。

操作する前に以下のページで勉強する必要があったようだ

復旧マジムリ。OS再インスコしないとダメなレベル。Oracle Virtual Boxに戻ります。。。

Hyper-V + Docker for Windows 1803 だと、docker run -v C:\HOME\HOGE:/mnt/data とかできそうだったんだがなー

p.s.

失敗記事にtag打ったら、Hyper-V関連は失敗の記録しか残らなそうだなw


■ 宇宙暦 2018.06.04

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180604

2018.06.04(月) マイクロソフト、開発者向けサービスのGitHub買収で合意−関係者

tag:git

ほほう。Git Hub有料化しちゃうかな? でかいバイナリ(warファイル)置いてるから課金額が怖いw

Go言語とか、言語仕様(import)からGit Hub前提なヤツはどうするんだろ? 櫛の歯が欠けるように依存ライブラリが抜け落ちたりするのかしら?

置いてるバイナリがでかいと言えばDocker Hubの方がでかいけども


■ 宇宙暦 2018.06.05

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180605

2018.06.05(火) Windows 64bit用のemacs日本語パッチ入り

Windows 64bit用のemacs日本語パッチ入り

tag:emacs

そふで6月号からメモメモ。

2018.06.05(火) ついったーのトレンド一覧がAppleづくしになっとる・・・

jdiaryB80605apple.jpg 93,505bytes

ついったーのトレンド一覧がAppleづくしになっとる・・・

おそるべし


■ 宇宙暦 2018.06.07

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180607

2018.06.07(木) とりあえず gitlab にアカウント取った

tag: gitlab

GitHubの避難所用途にGitLab https://gitlab.com/ にもアカウント取っておいた。freeプラン。

さて、何を置こうかな。。

ちなみに、GitLabのtrendingはこちら。GitHubのに比べると数値がおとなしい感じ。

most starts はこちら。GitLabのcommunity editionがトップだ。

GitLabはdocker image registryも内蔵してるんだね。CI/CD連携環境もメニューにある。

Kubernetesの実行環境ってメニューあるけど、実行環境もあるのかな? Google Container Engine (GKE) と連携可能なだけのような気もするけど。

ちと色々調べてみるか。

何気に超高機能でワロタww

避難所というか本拠地になりそうでナニコレこわい


■ 宇宙暦 2018.06.09

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180609

2018.06.09(土) 第一回システム移行のため、みずほ銀行のATMが6/9夜 22:00から6/11朝 08:00 の間止まるらしい

個人用口座向けのQ&Aだけでも膨大でワロタw

これ裏では大変な開発やってそうな気配。

出力日付が順序不定になる場合がありますってことは、内部的には保存形式を変えたのかな?

2018.06.09(土) GitLab CIでテスト・ビルド・デプロイを自動化する

GitLab CIでテスト・ビルド・デプロイを自動化する

tag: gitlab

gitlabについて調査の続き。

なるほど。 GitLab CIで使うビルド担当マシンには GitLab Runner というアプリをいれて、Jenkinsのslaveみたいに設定するのね。 そうするとビルド担当マシンはGitLab CIのmasterの言うこと聞くようになる。

あらかじめ .gitlab-ci.ymlを書いて、ビルド、unitテスト、デプロイで実施する内容をそれぞれshellで記載してgitlabにpushしておく。

GitLabに何か変更をpushすると、GitLab Runnerから起動されたDockerコンテナ上でビルド、テストする。

この他、非推奨だがビルド担当マシン上でshellを実行してビルドすることもできるようだ。 コンテナ上だとビルドしにくいヤツはこれで。 GitLab RunnerにはWindows版やMacOS版やFreeBSD版もあり、この場合はLinux docker コンテナは直接は使えないのでshellやcmd.exeを使うことになる。

ビルド後のアプリのバイナリと環境はdocker imageとしてregistryに登録しておく。

実行環境へのデプロイはshellで書いておくか、Google Kubernetes Engine (GKE) 連携を設定して実行する、と。

この手の内容ならJenkinsfileで書けないことはないけど、設定をyaml形式にすることで、Jenkinsfileのdeclarative pipeline(Gradle言語)を知らなくてもいいって利点がある。

どうせみんなビルド、unitテスト、デプロイの個別の手順はshell化(あるいは コマンドラインから一発化)してあるんだろ?みたいな暗黙の前提はあるけどw

p.s.

つか、Jenkinsfileに書くpipelineの説明 https://jenkins.io/doc/book/pipeline/syntax/ とか checkout scm plugin の説明 https://jenkins.io/doc/pipeline/steps/workflow-scm-step/ が読みづらくて解読困難www

Jenkinsfileは設定ファイルって言うよりGradle言語なので、自分で関数定義できたりおよそ何でもアリなんだけど、機能設定が多すぎてプロパティの説明だけで何十個もある状態なのが辛い。その分高機能って意味ではあるんだが。

yamlで簡単設定したいって要望が生まれるのはまあ当然か。Jenkinsの場合はJenkinsfileの「開発」になっちゃって、Jenkins職人しか触れなくなるしww


■ 宇宙暦 2018.06.10

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180610

2018.06.10(日) PKCS#8形式(公開鍵だけ入った形式)からauthorized_keysに書ける形式に変換する

PKCS#8形式(公開鍵だけ入った形式)からauthorized_keysに書ける形式に変換する

tag: ssh

# PKCS#8形式。公開鍵だけ入った形。
cat > public-key.pem << "EOF"
-----BEGIN PUBLIC KEY-----
MIIBI.....以下省略
-----END PUBLIC KEY-----
EOF

chmod 0600 public-key.pem

# ~/.ssh/authorized_keysに書ける形式に変換するコマンドは以下。
# 余談だが -m に使えるフォーマットは RFC4716, PKCS8, PEM のいずれか
ssh-keygen -i -m PKCS8  -f public-key.pem

出力結果は ssh-rsa AAAA から始まる形式なので、そのまま ~/.ssh/authorized_keys に追記してOK。

2018.06.10(日) Windows 10 ver.1803 の Edge でlocalhostが開けない

Windows 10 ver.1803 の Edge でlocalhostが開けない

tag: edge

ウチで遭遇したのはlocalhostじゃなくて、192.168.1.xxとか、ローカルマシンのIPアドレスを指定してEdgeで開けなくなっていた事象だけども。

管理者権限のPowerShellかコマンドプロンプトで以下を実行すると良い。

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

なんか毎回設定方法変えてきて不便だなEdgeって

2018.06.10(日) PowerShellからvagrant sshすると端末制御が微妙なのでssh.exeを使ってログインするvagrant-ssh.ps1

PowerShellからvagrant sshすると端末制御が微妙なのでssh.exeを使ってログインするvagrant-ssh.ps1

tag:vagrant, powershell

WindowsのPowerShellからvagrant up ; vagrant ssh していると、端末制御が微妙なのでエディタなどが使いにくい。

chocolateyからインストールしたopenssh 7.7.1.1だと、Windows PowerShellの端末制御を割と真面目にやっているようで、 エディタも使えるし、なぜか知らんけど接続相手マシンがLANG=ja_JP.UTF-8なら日本語も表示できる。

vagrant sshの代わりに、vagrant-ssh を実行すると、vagrant ssh-configで入手した接続情報をもとにssh接続をかけるPowerShellのfunctionを作ってみた。

$profileに追記しておくか、単体ファイルをVagrantfileと同じ階層に置いて使う。

function vagrant-ssh {
    $sshdata = & vagrant ssh-config
    $targethost = write-output $sshdata | select-string "Hostname " | foreach-object { $_ -replace "HostName",""  }
    $targethost = $targethost.Trim()
    $targetport = write-output $sshdata | select-string "Port " | foreach-object { $_ -replace "Port",""  }
    $targetport = $targetport.Trim()
    $targetuser = write-output $sshdata | select-string "User " | foreach-object { $_ -replace "User",""  }
    $targetuser = $targetuser.Trim()
    $targetidentfile = write-output $sshdata | select-string "IdentityFile " | foreach-object { $_ -replace "IdentityFile",""  }
    $targetidentfile = $targetidentfile -replace "/","\"
    $targetidentfile = $targetidentfile.Trim()
    Write-Output "ssh.exe -i ${targetidentfile} $targetuser@${targethost} -p ${targetport}"
    & ssh.exe -i ${targetidentfile}  -o StrictHostKeyChecking=no $targetuser@${targethost} -p ${targetport}
}

p.s.

複数のvagrant hostに接続していると、接続先ホストはみんな localhost:2222なのでHOST KEY CHANGEDエラーになる。 「-o StrictHostKeyChecking=no」オプションを追加して回避。


■ 宇宙暦 2018.06.11

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180611

2018.06.11(月) Twitterモバイルサイトって、スマホブラウザで見ると軽いのにAtom Windowsタブレット機のブラウザで見ると重い

PWA(Progressive Web Application)の代表例というTwitterモバイルサイト。

スマホブラウザで見ると割と軽く使えるのに、T90Chi-3775 (Atom Z-3775 1.4GHz, RAM 2GB) だとなんかもっさりしてる。

ひょっとしてIntel Atom CPUよりARM系CPUの方が断然高速だったりする?

Winタブ機が10インチ以上のCore i搭載機しか残ってないのって、10W以下のCPU競争でボロ負けしてるからなのかな


■ 宇宙暦 2018.06.20

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180620

2018.06.20(水) Hyper-Vの仮想スイッチマネージャーが起動しなくなったのでWindows 10 Pro 1803再インストールした

tag:hyperv

Hyper-Vの仮想スイッチマネージャーが起動しなくなったのでWindows 10 Pro 1803再インストール

再インストールと言っても、設定→回復→このPCを初期状態に戻す→個人用のファイルを保持する、というヤツを使った。

サードパーティー(Microsoft以外)のアプリはほとんど全部消えるので、地味に再インストールしていく。

なんとかHyper-Vの仮想スイッチマネージャーが起動するようになった;;


■ 宇宙暦 2018.06.23

http://www.ceres.dti.ne.jp/~george/jdiaryB80601.html#20180623

2018.06.23(土) VcXserv使ってみた

jdiaryB80623.jpg 614,952bytes

tag: freebsd,x11,vcxsrv

VcXsrvというWindows用X11 Serverソフトが紹介されていたので、chocolateyからインストールして使ってみた。

おおうw いいねコレww 個々のアプリ毎に別ウィンドウを表示モードも、デスクトップマネージャーを使用するための全画面表示モードもある。

xterm上で日本語入力するにはちと設定が必要か。

ウチのFreeBSDの日本語入力設定は scim -anthy 型なので、XInputMethodにはscimを使うことにする。

~/.bashrcに以下のようなシェル関数を定義しておいて、X11画面をWindows側に飛ばす場合には関数を実行する。

#
# use X from other machine
#
f-display() {
    if [ -z "$DISPLAY" ] ; then
        export DISPLAY=192.168.1.35:0.0
    fi
    
    export XMODIFIERS='@im=SCIM'
    echo '*inputMethod: SCIM' | xrdb -merge
    is_there_scim=`ps -auxww | grep -v grep | grep scim`
    if [ -z "$is_there_scim" ]; then
        scim -d
        sleep 3
    fi
    xterm -geometry 160x50  -fg white  -bg black  &
}

p.s.

1アプリ1ウィンドウモードだと、画面全体のサイズ(xdpyinfo)が取得できないので、やたら小さなウィンドウサイズで起動するアプリが居るけどこれは仕方ないか。

Shift+Spaceでxtermに対してかな漢字変換を起動すると、画面右下に変換モードを表示するんだけど、ココはWindows側でもタスクバーが居て見えないww


日記ファイルリスト


日記ファイルリスト最新100件


Copyright(c) 1996-2020 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。
メール本文に 6020-5440-3372 と書いて頂くと、ウチのSPAMフィルタを通過できます(2009-06-14から2020-12-31まで)。

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using white list SPAM filter. To avoid it, please write 6020-5440-3372 in mail body. This key word is valid since 2009-06-14 until 2015-12-31.)