ServerCoreなWindows Server 2016をインストールした後にWindowsコンテナーを試してみた備忘録
ノートPC上で作る動的ネットワークのデータセンター側サービス例としてよいサービスはないかなぁ?と考えていたところ
Powershellは好きな割に、ServerCore、Windowsコンテナーを使う機会がなかったので使ってみました~!
とりあえず準備まで。
Windowsコンテナーの導入
では早速Dockerの機能を追加していきます。
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -force
試しにwindowsservercoreのイメージを取得
ダウンロードには時間がかかるので寝て待ちましょうかね!
クライアントHyper-V上とvyOSでネットワーク検証する その2
タイトルの通り前回ったvyOSのネットワークで動的ルーティングで遊んでみようと思います。
仮想ディスクへのインストール
何はともあれ、Hyper-V マネージャーより対象のvyOSが正常に起動していることを確認。
最初の操作としてはISOメディアからブートしている状態なのでID,Passともvyosでログインし、
仮想ハードディスクにインストールする必要があります。
コマンドは
install system
ISO DVDのマウント解除
パーティションやらパスワードの設定が聞かれますので進んでいき、インストールを4台にインストールが完了したら、ISOのDVDのマウントを外しておきます。
こういう手間なのはPoweShellで自動化しておくと便利!
VMの停止とISOのアンマウント
Get-VM | Where-Object {$_.Name -like "vy*" -and $_.Name -ne "vyOS_template"} | Stop-VM Get-VM | Where-Object {$_.Name -like "vy*" -and $_.Name -ne "vyOS_template"} Remove-VMDvdDrive "vyOS_LAN1" -ControllerNumber 1 -ControllerLocation 0 Remove-VMDvdDrive "vyOS_LAN2" -ControllerNumber 1 -ControllerLocation 0 Remove-VMDvdDrive "vyOS_DC3" -ControllerNumber 1 -ControllerLocation 0 Remove-VMDvdDrive "vyOS_DC4"-ControllerNumber 1 -ControllerLocation 0
VMの起動
Get-VM | Where-Object {$_.Name -like "vy*" -and $_.Name -ne "vyOS_template"} | Start-VM Get-VM | Where-Object {$_.Name -like "vy*" -and $_.Name -ne "vyOS_template"}
再度VMを起動後にインストール時に設定したパスワードでログイン出来たら成功!
show interfaces
ちゃんとインターフェースが2つ設定されています。
IPとSSHの設定
Hyper-Vマネージャーから操作するのも面倒なので
最低限のIPを割り振ってSSHを有効化したい。
で、ホストコンピューターからアクセスするためには
ホストコンピューター側から仮想スイッチにアクセスするためには、こちらも同セグメントでIPを設定しないと。こっちはPowerShellで簡単にできそう。
とりあえず、vyOS側を設定。
設定モードへ
conf
IPは一例ですが~。
set interfaces ethernet eth0 address 192.168.10.251/24 set interfaces ethernet eth1 address 10.0.1.1/24
設定出来たら
commit save
次はホスト側へのIP採番。
New-NetIPAddress -InterfaceAlias "vEthernet (内部-WAN-1)" -IPAddress "10.0.1.100" -PrefixLength "24" New-NetIPAddress -InterfaceAlias "vEthernet (内部-WAN-2)" -IPAddress "10.0.2.100" -PrefixLength "24" Get-NetAdapter | Where-Object {$_.Name -like "*vEthernet*"}
できたらホストPC側のcmdからPingが通るようになる。
SSHを有効化して、設定の有効化と保存。
set service ssh
できましたよ!
クライアントHyper-V上とvyOSでネットワーク検証する
最近、子どもの看病やら、自分の体調不良であまりITを触る時間がとれておらず、
流行りの働き方改革を考えないとなぁと思っています。
子育てに力を入れたい⇒ITもこれまで通り検証し続けたい=睡眠時間を削る⇒体調壊した。
うーん。。。やっぱり効率化が必要ですね。
ということで!
"いつでも"、"どこでも"、"短時間で"、ネットワーク系の検証・勉強が可能な環境を整える!
と、考えたところソコソコスペックの高いノートPC上でOSPFやBGPを完結して検証できると便利じゃね?
と思って以下をWindows10のクライアントHyper-Vを利用して短時間で構成できるようにしてみました。
※前提としてHyper-Vの機能を有効化しておく必要があります。
構成の概要
右側がクライアント、オンプレで左側がDCなどルーティング先のイメージ。
L3はvyOSを利用します。
が、ISOやらイメージファイルをセットすればなんでも使えるよ!
vyOSのコンフィグは自動化しません。
VRRPやOSPF、BGPの検証利用を想定した物理配線の相当まで。
可用性の構成をとったうえで
対象のvyOSのVMをダウンさせて遊ぶといいかなぁ。
なんて。
仮想スイッチの作成
まずは仮想スイッチを4つ作成しておきます。
New-VMSwitch "内部-LAN-CL" -SwitchType Internal New-VMSwitch "内部-WAN-1" -SwitchType Internal New-VMSwitch "内部-WAN-2" -SwitchType Internal New-VMSwitch "内部-LAN-DC" -SwitchType Internal
vyOS4台分に必要なものを作成してVMを起動する。
パパっとHyper-V用のPowershellの動作確認しながら作ったので・・・(^^)/
せめてISOイメージのpathくらい変数化しとけばよかったなぁとか思いつつ。まだ改善途上の現状提供っす。
1.VHDファイルを以下のpathに作成します。
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\
2.vyOSは以下のpathのISOを利用しています
D:\OS\vyos-1.1.7-i586-virt.iso
New-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_LAN1.vhdx" -SizeBytes 20GB New-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_LAN2.vhdx" -SizeBytes 20GB New-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_DC3.vhdx" -SizeBytes 20GB New-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_DC4.vhdx" -SizeBytes 20GB New-VM -Name "vyOS_LAN1" -MemoryStartupBytes 256MB -VHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_LAN1.vhdx" -SwitchName "内部-LAN-CL" -Generation 1 -BootDevice CD Set-VMDvdDrive "vyOS_LAN1" -Path "D:\OS\vyos-1.1.7-i586-virt.iso" New-VM -Name "vyOS_LAN2" -MemoryStartupBytes 256MB -VHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_LAN2.vhdx" -SwitchName "内部-LAN-CL" -Generation 1 -BootDevice CD Set-VMDvdDrive "vyOS_LAN2" -Path "D:\OS\vyos-1.1.7-i586-virt.iso" New-VM -Name "vyOS_DC3" -MemoryStartupBytes 256MB -VHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_DC3.vhdx" -SwitchName "内部-LAN-DC" -Generation 1 -BootDevice CD Set-VMDvdDrive "vyOS_DC3" -Path "D:\OS\vyos-1.1.7-i586-virt.iso" New-VM -Name "vyOS_DC4" -MemoryStartupBytes 256MB -VHDPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\vyOS_DC4.vhdx" -SwitchName "内部-LAN-DC" -Generation 1 -BootDevice CD Set-VMDvdDrive "vyOS_DC4" -Path "D:\OS\vyos-1.1.7-i586-virt.iso" Add-VMNetworkAdapter "vyOS_LAN1" -Name "アダプターWAN-1" Connect-VMNetworkAdapter "vyOS_LAN1" -Name "アダプターWAN-1" -SwitchName "内部-WAN-1" Rename-VMNetworkAdapter "vyOS_LAN1" -Name "ネットワーク アダプター" -NewName "アダプターLAN-CL" Add-VMNetworkAdapter "vyOS_LAN2" -Name "アダプターWAN-2" Connect-VMNetworkAdapter "vyOS_LAN2" -Name "アダプターWAN-2" -SwitchName "内部-WAN-2" Rename-VMNetworkAdapter "vyOS_LAN2" -Name "ネットワーク アダプター" -NewName "アダプターLAN-CL" Add-VMNetworkAdapter "vyOS_DC3" -Name "アダプターWAN-1" Connect-VMNetworkAdapter "vyOS_DC3" -Name "アダプターWAN-1" -SwitchName "内部-WAN-1" Rename-VMNetworkAdapter "vyOS_DC3" -Name "ネットワーク アダプター" -NewName "アダプターLAN-DC" Add-VMNetworkAdapter "vyOS_DC4" -Name "アダプターWAN-2" Connect-VMNetworkAdapter "vyOS_DC4" -Name "アダプターWAN-2" -SwitchName "内部-WAN-2" Rename-VMNetworkAdapter "vyOS_DC4" -Name "ネットワーク アダプター" -NewName "アダプターLAN-DC" Get-VM | Where-Object {$_.Name -like "vyOS*"} | Start-VM Get-VM
ネットワーク検証環境がノートPCで完結するのはいいですね~。
どういうパターンを用意しておくと便利かは奥が深いですが、
他にも何パターンか用意しておいて後で少しだけ必要な構成を追加するのがよさそうですね~。
検証がはかどりそうです!
次回は実際の検証について書いていきたい。
Azure Toolkit for Eclipse からHello Worldをデプロイ(おまけでVisual Studioの暗号化を確認)
新規⇒その他
動的Webプロジェクト⇒次へ
プロジェクト名"WebAppTest"としておきました。
JSPファイルを新規作成したい。 WebAppTestを右クリックし、再度その他
ファイル名をindex.jspに変えました。
せっかくなので
に<% out.println("Hello World!"); %>
Publish
事前にリソースグループ、Appserviceがなくてもデプロイ時の画面で選べます。
配置準備が整いましたね
あら、簡単。
AzurePortalを開くことなく、ResourceGroup,AppservicePlan,実際のアプリデプロイまでできました。
ただ、リソースマネージャへの通信は暗号化されてますが、アプリの配置としてバックグラウンドで動いてるのはFTPの平文なのでWireSharkで見ると簡単にユーザー名、パスワードが見えちゃいます。
覚えておいた方がいいかもですね。
ちなみに Visual Studio 2017からASP.NETをWeb Appsにデプロイすると 何も考えなくても暗号化されてました!
Azure Toolkit for Eclipse をWindows10 に入れてみました。
5年ぶりくらいにJAVAを復習してたんですよね。 基礎からやり直しということでEclipseの開発環境を作ったのですが、せっかくなので何処かデプロイ環境も作りたい。
今回はWindows10端末に Azure Toolkit for Eclipse をインストールします。
事前にEclipseは導入済みです。 Eclipse 日本語化 | MergeDoc Project Pleiades - Eclipse プラグイン日本語化プラグイン より Eclipse 4.6 Neonを選択。
ヘルプの新規ソフトウェアのインストールを選択。
"作業対象"に次のアドレスを入力。
- "Azure Toolkit for Java "をチェック。
- "必須更新ソフトウェアを検索するためにインストール中にすべての更新サイトに接続する(C)"のチェックを外す。
PaaSへのデプロイで使いそうなものが一通り入ってる感じですね。
ライセンスも確認しておきましょう。
ソフトウェアのインストールがバックグランドで実行されます。
1分くらいで完了です。はやいですね!
Eclipse再起動するとHDInsight用の追加のScala Pluginを入れてくれということです。
自動インストールに失敗したので手動で入れてくれとのこと。
なるほど、互換性がないようです。 当面はHDInsightを利用する予定はないのですが注意が必要かもしれません
調べてみましたが、下記SampleでもNeonを利用していることから詳細調査が必要かも。今は先送りです。
docs.microsoft.com
2018/4/24 Pleiadesの Eclipse 4.7 Oxygenで試したところScalaも導入できました。
何はともあれHDInsight以外は問題なく導入できたようなので サイン・イン
Automated ⇒ 新規を選択します。
先進認証ですね。
User配下に接続ファイルが保存されるようです。
正常に取得できましたね。
取得したてのファイルでアクセスです。
あとはShow Azure Explorerとか便利に使えます。
とりあえずここまでです。
次はWebAppsにHello Worldとかデプロイしてみたい!
Azure Service Fabricを試そう その5 マニフェストって何?
さて、久しぶりにJAVA開発環境とか整えてたらService Fabric触れてなかった。。。反省。
まだ使いこなせていないけれど Service Fabricの醍醐味はマニフェストファイルだと思っています。 docs.microsoft.com
前回デプロイしたディレクトリ構成を確認すると、 VotingにApplicationManifest.xmlが配置されています。
そして、FrontとなるazurevotefrontPkgの中にはServiceManifest.XMLが確認できます。(DB側にもあります。)
見たところ、Web層がStatelessで動いているのはいいとして DBがStatelessもで動いていますね。
また、Webの待ち受けポートが80番です。
次回以降、 1. DBがステートを持たないのはいかがなものかと思いますので、 Statefullなサービスを試してみましょう。
2. Webフロントでhttpsを提供する構成を考えてみましょう。
SSLに関してはややこしければ、オフロードしてあげてもいいような気もしますが。 一応やり方は抑えといたほうがいいよね!ってことで。
Web AppsのApp Serviceプランを分割、ダウングレード
Web Appsって手軽でいいですよね!
詳細は下記をどうぞ!
Azure Web Apps のドキュメント - チュートリアル、API リファレンス | Microsoft Docs
課金はApp Serviceプランという箱によって発生し、 一つApp serviceのプランに複数のアプリケーションを割り当てることもできます。
Standardで作成したアプリケーションを 後からFreeに分割しつつダウングレードすることがAzure Portalからできるようになってました!便利!
- Web App (App Serviceプラン Standard) を作成
- App service のFree Plan を作成
- Web Appを Free Planに紐づけ
Web App (App Serviceプラン Standard) を作成
Azure PortalからWeb Appを作成します。
アプリ名:standard001
プラン:standard
ResouceGroup:Appservice
standard002も作っておきました。
1つの1App Service Planに2つのサービスです。
App service のFree Plan を作成
App Service プランだけを作成することもできるのです。
アプリはまだありません。
Web Appを Free Planに紐づけ
standard002にて ”App Service プランの変更" を選択
さっき作ったFreeが見えるので選択。
クリックするとすぐに処理が始まります。
Freeプランにアプリが移ってきましたね!
URL(DNS名)も引き継がれます。便利!
Service Fabricも面白いけど手軽にhttpsのサイトが 提供できるのは本当にいいですね!