2017年4月12日水曜日

Harbor の ova を govc でデプロイしてみた

概要

前回 ova から harbor をデプロイしてみました
前回やったときは Web Client から ova をデプロイしました
今回は golang 製の govc というツールを使って ova をデプロイしてみましあ

ova ダウンロード

govc インストール

  • go get github.com/vmware/govmomi/govc

govc 設定

  • export GOVC_INSECURE=1
  • export GOVC_URL=192.168.100.200
  • export GOVC_USERNAME=vcenter-user
  • export GOVC_PASSWORD=vcenter-pass
  • export GOVC_DATASTORE=datastore
  • export GOVC_NETWORK=”my-network”
  • export GOVC_RESOURCE_POOL=’*/Resources’

192.168.100.200 は vCenter の IP です
GOVC_INSECURE=1 とすることで証明書の警告を無視できます

  • govc about

で vCenter の情報が確認できれば OK です

json ファイル書き出し

govc を使って ova ファイルをデプロイする場合、設定を記載する json が必要になります
ova から雛形を作成できるので作成します

  • govc import.spec harbor_0.5.0-9e4c90e.ova > harbor.json
  • vim harbor.json
  • diff <(cat harbor.json | python -m json.tool) <(govc import.spec harbor_0.5.0-9e4c90e.ova | python -m json.tool)

以下のように編集しました
harbor 向けの設定なので、他の ova では設定が異なります

>     "Deployment": "small",
11c12
<             "Network": "my-network"
---
>             "Network": ""
18c19
<             "Value": "root_pwd"
---
>             "Value": ""
22c23
<             "Value": "harbor_admin_password"
---
>             "Value": ""
26c27
<             "Value": "db_password"
---
>             "Value": ""
30c31
<             "Value": "true"
---
>             "Value": "false"
42c43
<             "Value": "off"
---
>             "Value": "on"
130c131
<             "Value": ""
---
>             "Value": "Harbor"

上記の編集ポイントは以下の通り

  • govc: ServerFaultCode: A specified parameter was not correct: cisp.deploymentOption というエラーになるので Deployment という属性を削除
  • Network を指定 (my-network) 、何も指定しないと VM Network となる
  • root_pwd, harbor_admin_password, db_password を設定、harbor はこれが設定されていないとデプロイ時エラーとなる
  • permit_root_login を true に変更
  • self_registration を off に変更
  • govc: Property vm.vmname is not user configurable. というエラーになるので vm.vmname を空にする

変更が完了したらコマンドからデプロイします

  • govc import.ova -options=harbor.json -dump=true harbor_0.5.0-9e4c90e.ova

ホストに対して ova ファイルをアップロードするのでホストが FQDN の場合はホスト名が解決できないとエラーとなります
アップロードされたファイルは一時的に利用するだけなのでデプロイ後は削除されるようです

起動

デプロイが完了したら起動します

ここで一点ポイントですが起動しようとすると

  • プロパティ「Authentication Mode」は仮想マシンがパワーオンするように設定する必要があります

という謎のエラーが発生しました
設定の編集を開き vApp Options の設定を開いて OK とすると何故か電源を ON できるようになります
デプロイ後に何故か謎の reconfig_VM をしないと起動できない感じでした (もしかしたら環境依存かもしれません)

P.S. 20170411

ldap_searchdn, ldap_search_pwd を適当に設定してから ova をデプロイすると Authentication mode のエラーはでなくなるようです

動作確認

harbor の起動が完了し IP が取得できたら管理画面を開きましょう
ddmin ユーザでログインしてください

そしたら証明書をダウンロードします
左上から admin -> about と選択します
そして、Download リンクから harbor の自己証明書 (ca.crt) をダウンロードします

ダウンロードした証明書を docker コマンドを実行するサーバのアップロードします
そして以下のディレクトリに配置します

  • mkdir -p /etc/docker/certs.d/192.168.100.201

今回 harbor デプロイは https で行いました (前回は http にしていました)
なので、docker コマンドでアクセスするときに証明書が必要になるため配置した感じです

あとは harbor にログインして push までできることが確認できれば OK です

  • docker login 192.168.100.201
  • docker tag alpine 192.168.100.201/library/alpine
  • docker push 192.168.100.201/library/alpine

最後に

govc を使って ova をデプロイしてみました
かなりつまづきポイントが多かった印象です

CLI ツールではなく govmomi のライブラリだけを使って ova のデプロイもやってみたいです

参考サイト

0 件のコメント:

コメントを投稿