web-dev-qa-db-ja.com

UbuntuサーバーでSaltとSalt-Virtを使用して仮想マシンをデプロイする

私はSaltを使用して、会社の物理マシンと仮想マシンの両方をプロビジョニングしています。 VMの数/複雑さが急速に増大しているため、Salt(Salt-Virt)を使用して、ホスト上で実行されているさまざまな仮想マシンを管理できれば、本当に素晴らしいと思います。

これが私がいる場所です:

  • このガイドに従い、RHLではなくUbuntuのパッケージを変更します: http://docs.saltstack.com/en/latest/topics/tutorials/cloud_controller.html
  • 物理マシンと仮想マシンの両方がUbuntuサーバーを実行しています
  • salt-run virt.init test1 2 512 salt://BASE.imgコマンドを実行して、マシンをホストに展開できます。
  • 画像は/srv/salt-images/test1/のミニオンに.qcow2として表示されています

しかし、ホスト(ハイパーバイザー)はVMが存在することを認識していないようです。マスターまたはミニオンのSaltからエラーは発生していません。

  • ホスト上で、virsh listは空のリストを返します
  • ソルトマスターでは、salt-run virt.start test1はエラーを返します:Failed to find vm test1 to start

誰かがSalt-VirtをUbuntuで動作させるようになったことがありますか?何が足りないのですか?

2
kbuilds

私は解決策を見つけました。手順は次のとおりです。

  • M1とM2の2台のマシン
  • M1:
    • ソルトマスターをインストールする
    • 仮想ハードドライブをこのマシンに移動し、/srv/salt に配置します。
      • 私にとって、これは/srv/salt/base.vdiでした
    • 仮想マシンファイルをqcow2形式に変換します
      • 私にとって、これはqemu-img -f vdi -O qcow2 base.vdi base.qcow2でした
  • M2の場合:
    • ソルトミニオンをインストールする
    • Libvirt-binをインストールします
    • Python-libvirtをインストールします
    • br0 [.____と呼ばれるブリッジネットワークインターフェイスを構成します。]
      • これは、salt-virtがVMを接続するデフォルトのインターフェイス名であるため重要です。

涼しい。これで、マシンの準備が整いました。

マスターで、salt "*" virt.init <name_of_vm> <num_cores_for_vm> <mb_of_ram_for_vm> <path_to_image>を実行します

私にとって、これはsalt "*" virt.init test_vm 2 512 salt://base.qcow2でした

マシンはM2でスピンアップするはずです。

ソルトマスターでsalt-run virt.queryを使用してテストします

3
kbuilds