kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio 2017オフラインイメージから古いコンポーネントを削除するツールを公開しました

Visual Studio 2017はオフラインインストール用のイメージ作成ができます。

docs.microsoft.com

Visual Studio 2017もラピッドリリースになったようで、従来のService Packレベルの更新が数か月に一度程度公開されます。この辺は.NET Coreや昨今の流れのはやいオープンソース系のツールについていくには仕方のないことですね。

docs.microsoft.com

ところが困った点として、同じフォルダでオフラインイメージを構築していくと、古いバージョンのコンポーネントもたまっていきます。私の場合は最新版だけあればいいので、こんなツールを作ってみました。

github.com

Visual Studio 2017のオフラインイメージをダウンロードしたフォルダを指定して実行すると、最新のコンポーネントのフォルダを除いて削除します。

.NET Coreの練習用に作ってみました。Releaseは作っていないのですが、Visual Studio用のツールなので、Visual Studioは持っている(もしくは.NET Core SDKだけでビルドできる)ので、まぁいいでしょう。

誰得ツールですが、よかったら使ってみてください。

(追記) --cleanオプションでできたのか…前なかった気がするんだけどなぁ…と思ったら、15.3のインストーラーで追加されたのか。

VSTSでLinuxのVMにdockerイメージを展開する

はじめに

読者(え)の方からリクエストをいただいたので。LinuxのVMでDockerコンテナを運用しているけど、VSTSでうまいデプロイ方法が分からないというお便りをいただきました。

アドベントカレンダーでは時間がなかったのですが、時間が取れたので、Linuxの仮想マシンに対するRelease Managementの使用方法について紹介します。

Deployment Groupsそのものの作り方に関してはアドベントカレンダーを見てください。

kkamegawa.hatenablog.jp

docker-compose.ymlの変更

f:id:kkamegawa:20180107165309p:plain

Visual Studio 2017でDockerプロジェクトを作ると、docker-compose.ymlのversionが3になっています。Linux用のHosted Agentでは2になってないとエラーになりました。

気を付けてください。

ビルド定義の用意

今回は.NET Coreのプロジェクトですが、基本的には何も変わりません。

f:id:kkamegawa:20180107161927p:plain

Visual StudioのContinuous Delivery拡張機能を使うと、Docker compose Fileのところがminatchパターンを指定していないので、** の追加を忘れないでください。

marketplace.visualstudio.com

f:id:kkamegawa:20180107161920p:plain

f:id:kkamegawa:20180107161921p:plain

他は特にデフォルトのままですね。このままでかまいません。

Deployment Groupsを構成する

LinuxにDeployment Agentを構成します。Linux用のスクリプトが用意されるので、このまま使ってください。

f:id:kkamegawa:20180107161922p:plain

エージェントは事前に構成する必要があります。AzureのVM展開でもできるはずなのですが、Windowsの場合、私は成功したことがないので、今後研究してみます。

VSTSのエージェントはビルドエージェントと同じバイナリを使うのですが、セットアップのスクリプト(パラメータ)が異なります。

VSTSのエージェントはDockerイメージも用意されていますが、基本的にDockerではなく、通常の展開をお勧めします。理由はVSTSのDeployment Groupからエージェントの更新ができるためです。Docker版を使うと、VSTSからの更新ができません。別途Dockerイメージを更新する手段を自分で構築する必要があります。

(追記)
もしも、オンプレミスのLinuxに展開する場合、GitHubのRelease(実態はAWS S3です)へのアクセスができるかどうか確認してください。VSTSのエージェントはGitHubのReleaseからダウンロードされるので、AWS S3がアクセス禁止になっているとVSTSからの更新ができません。

Releaseのダウンロード先をカスタムドメイン指定できるはずなので、そういうフィードバックはしているのですが、やはりUservoiceに作らないといけないかな…。

Release定義を作る

Release定義はAdd deployment phaseを選択してください。Agent phaseではありません。

f:id:kkamegawa:20180107161926p:plain

Dockerタスクを追加して、Run as imageを選択します。

f:id:kkamegawa:20180107161925p:plain

ここではAzure Docker Registryを選択していますが、もちろんDocker Hubでも構いません。

f:id:kkamegawa:20180107161923p:plain

どのグループにどのリリースが行われているかわかります。

f:id:kkamegawa:20180107161924p:plain

リリースの履歴も表示できます。

TFS2018とSQL Server 2017でレポート機能の構成に失敗する

Team Foundation Server 2018とSQL Server 2017を組み合わせてインストールすると、レポート機能インストール時に、以下のエラー(TF400646)が発生します。

f:id:kkamegawa:20180106070848p:plain

これは、SQL Server 2017のSSAS(SQL Server Analysis Service)のデフォルトが多次元およびデータマイニングモード(Multidimensional)から、表形式モード(tabular)に変更になったためです。

f:id:kkamegawa:20180106071342p:plain

SQL Server 2017のインストールだとここですね。多次元およびデータマイニングモードにしないとTFS2018のレポート機能の構成に失敗します。

じゃあ、インストールしてしまった場合どうすればいいのか?ということですが、以下の手順で実施してください。

  1. SQL Server Analysis Servicesのサービスを停止します(sc stop MSSQLServerOLAPService)。
  2. (インスタンスルート)\MSAS14.MSSQLSERVER\OLAP\Config\msmdsrv.ini をメモ帳で開きます(管理者特権が必要)
  3. <ConfigurationSettings>/<DeploymentMode> の値が2になっているはずです。これを0に変更して保存します。

f:id:kkamegawa:20180106070849p:plain 修正前

f:id:kkamegawa:20180106070850p:plain 修正後

保存後、サービスを起動(sc start MSSQLServerOLAPService)すると、SSASのプロパティがMultidimensionalになっているはずです。

f:id:kkamegawa:20180106080719p:plain この状態になっていれば、TFS 2018でレポーティングサービスの構成ができます。

参考:SQL Server Analysis Services 全般プロパティ

2017年振り返り

TOP10ランキング

2017年も終わりました。皆様いかがだったでしょうか。2017年に最も読まれた記事をちょっとだしてみます。ランキングにはid:shibayanのランキングを使わせてもらっています。私はリアルタイムプレビューをよく使うので、それがTOPになっていたので、それだけ除外しました。

2017 年の人気記事ランキング生成

  1. Word 2016の游明朝Light 12ptで行間が不正に広い(修正されました)
  2. Windows 10に.NET Framework 3.5を追加する
  3. Windows 10のbash on Windowsを試す
  4. Windows 10英語版にオフラインで言語パックを追加する
  5. Windows Server 2012のWSUSをPowerShellで管理する。
  6. Visual Studioに統合されるデータベース開発ツール- SSDT
  7. Visual Studio Team Servicesを会社で使う場合の考慮事項
  8. Surfaceからプロジェクターに出力する
  9. Visual Studio Team Servicesに接続して開発する(6日目)
  10. Windows 8/10でデスクトップヒープを調べる

やっぱりトラブル解消系がよく参照されるんですね…。VSTSの記事がようやく二つ入っているのがせめてもの救いです。

メディア系

Bash on Windows改め、Windows Subsystem for Linuxの記事をBuildInsiderさんで続けて書かせていただきました。

www.buildinsider.net

個人的にはちょいちょい便利に使っているWSLですが、Linuxはむかーしやってたくらいですが、ずいぶん変わっているものだと思ってやってます。

TFSの本も出ないし、書いてみるかーということでKDPで書いてみました。

ほんとはそろそろ全部終わっているはずだったんですが(汗)。ソースコード管理と作業項目をどう書き分けようかと思っているとイベントとかアドベントカレンダーが入ってしまって延びてます。

とりあえず次はTFS 2018のセットアップ編を書いてから二つ並行して書こうかなと思います。

イベント

関西ではイベントもあまりないので、自分で開催することにしました。Azure Global Bootcamp /w OzCodeでOzCodeの皆さんの日本ツアーと合同でできたのはいい思い出です。

connpass.com

このときは集客面でちょっと焦ったんですが、秋に開催した.NET Confではほぼ予定通りの集客ができてほっとしました。

connpass.com

TFSUGとしてはイベントできてないですね…しかし、次のAzure Global Bootcampも控えているので、ちょっとどうかなーという感じです。3月は渡米も予定されています。

今年も一人アドベントカレンダー頑張った感じですが、もう次はいいかな(^^;。

2018年もよろしくお願いします。原稿やイベントのお声がけはいつでも待ってます。