インフラSEのぼちぼち備忘録

非登録セキスぺの情シスがMicrosoft関連技術(Azure、Windows、Exchange、SystemCenter、SQL、Powershell)を中心とした備忘録を残していきます。圧倒的にインフラよりです。たまにネットワークのことも書きます。※本アカウントの発信内容、その他は所属する組織の見解ではありません。

ServerCoreなWindows Server 2016をインストールした後にWindowsコンテナーを試してみた備忘録

ノートPC上で作る動的ネットワークのデータセンター側サービス例としてよいサービスはないかなぁ?と考えていたところ
Powershellは好きな割に、ServerCore、Windowsコンテナーを使う機会がなかったので使ってみました~!

とりあえず準備まで。


ServerCoreのインストール


インストール直後にパスワード設定
f:id:kurone810:20180803000846p:plain

f:id:kurone810:20180803000946p:plain

f:id:kurone810:20180803001127p:plain

f:id:kurone810:20180803001627p:plain

PowerShellも起動できますねー
f:id:kurone810:20180803001805p:plain

Windowsコンテナーの導入

では早速Dockerの機能を追加していきます。

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

f:id:kurone810:20180803002619p:plain

Install-Package -Name docker -ProviderName DockerMsftProvider

f:id:kurone810:20180803002901p:plain

Restart-Computer -force

f:id:kurone810:20180803003243p:plain

試しにwindowsservercoreのイメージを取得

f:id:kurone810:20180803004350p:plain


ダウンロードには時間がかかるので寝て待ちましょうかね!

クライアントHyper-V上とvyOSでネットワーク検証する その2

タイトルの通り前回ったvyOSのネットワークで動的ルーティングで遊んでみようと思います。

f:id:kurone810:20180605223842p:plain

仮想ディスクへのインストール

何はともあれ、Hyper-V マネージャーより対象のvyOSが正常に起動していることを確認。
f:id:kurone810:20180721233415p:plain


最初の操作としてはISOメディアからブートしている状態なのでID,Passともvyosでログインし、
仮想ハードディスクにインストールする必要があります。

コマンドは

install system

f:id:kurone810:20180721233929p:plain

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を起動後にインストール時に設定したパスワードでログイン出来たら成功!
f:id:kurone810:20180722000506p:plain

show interfaces

f:id:kurone810:20180722000652p:plain

ちゃんとインターフェースが2つ設定されています。

IPとSSHの設定

Hyper-Vマネージャーから操作するのも面倒なので
最低限のIPを割り振ってSSHを有効化したい。

で、ホストコンピューターからアクセスするためには
ホストコンピューター側から仮想スイッチにアクセスするためには、こちらも同セグメントでIPを設定しないと。こっちはPowerShellで簡単にできそう。

とりあえず、vyOS側を設定。

設定モードへ

conf

f:id:kurone810:20180722002007p:plain


IPは一例ですが~。

set interfaces ethernet eth0 address 192.168.10.251/24
set interfaces ethernet eth1 address 10.0.1.1/24

f:id:kurone810:20180722002331p:plain

設定出来たら

commit
save

f:id:kurone810:20180722003135p:plain


次はホスト側への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が通るようになる。
f:id:kurone810:20180722003400p:plain


SSHを有効化して、設定の有効化と保存。

set service ssh

f:id:kurone810:20180722003615p:plain

できましたよ!
f:id:kurone810:20180722003729p:plain
f:id:kurone810:20180722003910p:plain

クライアントHyper-V上とvyOSでネットワーク検証する

最近、子どもの看病やら、自分の体調不良であまりITを触る時間がとれておらず、
流行りの働き方改革を考えないとなぁと思っています。

子育てに力を入れたい⇒ITもこれまで通り検証し続けたい=睡眠時間を削る⇒体調壊した。
うーん。。。やっぱり効率化が必要ですね。


ということで!
"いつでも"、"どこでも"、"短時間で"、ネットワーク系の検証・勉強が可能な環境を整える!

と、考えたところソコソコスペックの高いノートPC上でOSPFやBGPを完結して検証できると便利じゃね?

と思って以下をWindows10のクライアントHyper-Vを利用して短時間で構成できるようにしてみました。

※前提としてHyper-Vの機能を有効化しておく必要があります。

構成の概要

f:id:kurone810:20180605223842p:plain

右側がクライアント、オンプレで左側がDCなどルーティング先のイメージ。

L3はvyOSを利用します。
が、ISOやらイメージファイルをセットすればなんでも使えるよ!

vyOSのコンフィグは自動化しません。
VRRPやOSPF、BGPの検証利用を想定した物理配線の相当まで。

可用性の構成をとったうえで
対象のvyOSのVMをダウンさせて遊ぶといいかなぁ。
なんて。

仮想スイッチの作成

f:id:kurone810:20180605230019p:plain
まずは仮想スイッチを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くらい変数化しとけばよかったなぁとか思いつつ。まだ改善途上の現状提供っす。
f:id:kurone810:20180605232043p:plain

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の暗号化を確認)

docs.microsoft.com

新規⇒その他 f:id:kurone810:20180424235337p:plain

動的Webプロジェクト⇒次へ f:id:kurone810:20180425000000p:plain

プロジェクト名"WebAppTest"としておきました。 f:id:kurone810:20180425000424p:plain

JSPファイルを新規作成したい。 WebAppTestを右クリックし、再度その他 f:id:kurone810:20180425000901p:plain

f:id:kurone810:20180425000923p:plain

ファイル名をindex.jspに変えました。 f:id:kurone810:20180425001119p:plain

せっかくなのでに

<% out.println("Hello World!"); %>

f:id:kurone810:20180425001335p:plain

Publish f:id:kurone810:20180425001654p:plain

f:id:kurone810:20180425001823p:plain

事前にリソースグループ、Appserviceがなくてもデプロイ時の画面で選べます。 f:id:kurone810:20180425001918p:plain

f:id:kurone810:20180425002052p:plain

f:id:kurone810:20180425002118p:plain

配置準備が整いましたね f:id:kurone810:20180425002334p:plain

f:id:kurone810:20180425002439p:plain

f:id:kurone810:20180425002511p:plain

あら、簡単。 f:id:kurone810:20180425002738p:plain

AzurePortalを開くことなく、ResourceGroup,AppservicePlan,実際のアプリデプロイまでできました。

ただ、リソースマネージャへの通信は暗号化されてますが、アプリの配置としてバックグラウンドで動いてるのはFTPの平文なのでWireSharkで見ると簡単にユーザー名、パスワードが見えちゃいます。

覚えておいた方がいいかもですね。 f:id:kurone810:20180425003900p:plain

ちなみに Visual Studio 2017からASP.NETをWeb Appsにデプロイすると 何も考えなくても暗号化されてました! f:id:kurone810:20180425005831p:plain

Azure Toolkit for Eclipse をWindows10 に入れてみました。

5年ぶりくらいにJAVAを復習してたんですよね。 基礎からやり直しということでEclipseの開発環境を作ったのですが、せっかくなので何処かデプロイ環境も作りたい。

今回はWindows10端末に Azure Toolkit for Eclipse をインストールします。

docs.microsoft.com

事前にEclipseは導入済みです。 Eclipse 日本語化 | MergeDoc Project Pleiades - Eclipse プラグイン日本語化プラグイン より Eclipse 4.6 Neonを選択。

ヘルプの新規ソフトウェアのインストールを選択。 f:id:kurone810:20180424003914p:plain

"作業対象"に次のアドレスを入力。

http://dl.microsoft.com/eclipse/

  • "Azure Toolkit for Java "をチェック。
  • "必須更新ソフトウェアを検索するためにインストール中にすべての更新サイトに接続する(C)"のチェックを外す。 f:id:kurone810:20180424004335p:plain

PaaSへのデプロイで使いそうなものが一通り入ってる感じですね。 f:id:kurone810:20180424004955p:plain

ライセンスも確認しておきましょう。 f:id:kurone810:20180424005151p:plain

ソフトウェアのインストールがバックグランドで実行されます。 f:id:kurone810:20180424005516p:plain

1分くらいで完了です。はやいですね! f:id:kurone810:20180424005556p:plain

Eclipse再起動するとHDInsight用の追加のScala Pluginを入れてくれということです。 f:id:kurone810:20180424010006p:plain

自動インストールに失敗したので手動で入れてくれとのこと。 f:id:kurone810:20180424010318p:plain

なるほど、互換性がないようです。 当面はHDInsightを利用する予定はないのですが注意が必要かもしれません f:id:kurone810:20180424010438p:plain

調べてみましたが、下記SampleでもNeonを利用していることから詳細調査が必要かも。今は先送りです。 docs.microsoft.com

2018/4/24  PleiadesEclipse 4.7 Oxygenで試したところScalaも導入できました。 f:id:kurone810:20180424143128p:plain

f:id:kurone810:20180424143400p:plain

何はともあれHDInsight以外は問題なく導入できたようなので サイン・イン f:id:kurone810:20180424011705p:plain

Automated ⇒ 新規を選択します。 f:id:kurone810:20180424012503p:plain

先進認証ですね。 f:id:kurone810:20180424012620p:plain

User配下に接続ファイルが保存されるようです。 f:id:kurone810:20180424013125p:plain

正常に取得できましたね。 f:id:kurone810:20180424013511p:plain

取得したてのファイルでアクセスです。 f:id:kurone810:20180424013730p:plain

あとはShow Azure Explorerとか便利に使えます。 f:id:kurone810:20180424014057p:plain

とりあえずここまでです。

次はWebAppsにHello Worldとかデプロイしてみたい!

Azure Service Fabricを試そう その5 マニフェストって何?

さて、久しぶりにJAVA開発環境とか整えてたらService Fabric触れてなかった。。。反省。

まだ使いこなせていないけれど Service Fabricの醍醐味はマニフェストファイルだと思っています。 docs.microsoft.com

前回デプロイしたディレクトリ構成を確認すると、 VotingにApplicationManifest.xmlが配置されています。

f:id:kurone810:20180416011237p:plain

そして、FrontとなるazurevotefrontPkgの中にはServiceManifest.XMLが確認できます。(DB側にもあります。)

f:id:kurone810:20180416011945p:plain

見たところ、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のプランに複数のアプリケーションを割り当てることもできます。

f:id:kurone810:20180410001221p:plain

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を作成します。
f:id:kurone810:20180410003619p:plain

アプリ名:standard001
プラン:standard
ResouceGroup:Appservice

f:id:kurone810:20180410004058p:plain

standard002も作っておきました。

f:id:kurone810:20180410004807p:plain

1つの1App Service Planに2つのサービスです。

f:id:kurone810:20180410005204p:plain

f:id:kurone810:20180410005304p:plain

App service のFree Plan を作成

App Service プランだけを作成することもできるのです。
f:id:kurone810:20180410005605p:plain

アプリはまだありません。 f:id:kurone810:20180410011618p:plain

Web Appを Free Planに紐づけ

standard002にて ”App Service プランの変更" を選択
f:id:kurone810:20180410011935p:plain

さっき作ったFreeが見えるので選択。
f:id:kurone810:20180410012126p:plain

クリックするとすぐに処理が始まります。 f:id:kurone810:20180410012219p:plain

Freeプランにアプリが移ってきましたね! URL(DNS名)も引き継がれます。便利!
f:id:kurone810:20180410012515p:plain

Service Fabricも面白いけど手軽にhttpsのサイトが 提供できるのは本当にいいですね!