
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>CloudStack | monolog</title>
	<atom:link href="https://blog.monora.me/tag/cloudstack/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.monora.me</link>
	<description>monora log #=&#62; ものろーぐ</description>
	<lastBuildDate>Sun, 24 May 2020 16:40:26 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
<site xmlns="com-wordpress:feed-additions:1">21279848</site>	<item>
		<title>CloudStack の VM を cs コマンドでデプロイしようとしてハマった</title>
		<link>https://blog.monora.me/2016/10/deploying-vm-using-api-on-cloudstack/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=deploying-vm-using-api-on-cloudstack</link>
		
		<dc:creator><![CDATA[きょんたん]]></dc:creator>
		<pubDate>Sun, 23 Oct 2016 17:00:17 +0000</pubDate>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[CloudStack]]></category>
		<category><![CDATA[ICTSC6]]></category>
		<guid isPermaLink="false">http://blog.monora.me/?p=1394</guid>

					<description><![CDATA[<p>こんばんは。タイトルだけ書いた下書きが溜まっているので書いていきますということです。 ICTSC6 で CloudStack を使用していた話はまだ書いていなし多分書かないですが、使用していました。 その中で、API を [&#8230;]</p>
The post <a href="https://blog.monora.me/2016/10/deploying-vm-using-api-on-cloudstack/">CloudStack の VM を cs コマンドでデプロイしようとしてハマった</a> first appeared on <a href="https://blog.monora.me">monolog</a>.]]></description>
										<content:encoded><![CDATA[<p>こんばんは。タイトルだけ書いた下書きが溜まっているので書いていきますということです。</p>
<p><a href="http://icttoracon.net/archives/category/%E7%AC%AC6%E5%9B%9E%E3%83%88%E3%83%A9%E3%82%B3%E3%83%B3" target="_blank" rel="noopener noreferrer">ICTSC6</a> で CloudStack を使用していた話はまだ書いていなし多分書かないですが、使用していました。</p>
<p>その中で、API を叩いてくれる薄っぺらいラッパーコマンドであるところの <a href="https://github.com/exoscale/cs" target="_blank" rel="noopener noreferrer">exoscale/cs</a> を叩いてデプロイなりVMの起動停止なりボリュームのアタッチなどをやっていたわけですが、デプロイ関連で少しハマったので解決策を紹介。</p>
<p>ちなみにこれ: <a href="https://github.com/exoscale/cs" target="_blank" rel="noopener noreferrer">https://github.com/exoscale/cs</a>。 exoscale 、 CloudStack なんですかね……</p>
<p><del datetime="2016-10-23T14:00:50+00:00">CloudStack の API はあまりにも愚直なのでパラメータが無限に多くてしんどいという話はさておき</del></p>
<p>APIの一覧は <a href="http://cloudstack.apache.org/api/apidocs-4.9/" target="_blank" rel="noopener noreferrer">http://cloudstack.apache.org/api/apidocs-4.9/</a> にあります。 (4.9 の場合)<br />
VM を作成する場合は、 <a href="http://cloudstack.apache.org/api/apidocs-4.9/apis/deployVirtualMachine.html" target="_blank" rel="noopener noreferrer">deployVirtualMachine</a></p>
<p>書いてある通りですが、必須なパラメータは以下の3つです。</p>
<ul>
<li>serviceofferingid</li>
<li>templateid</li>
<li>zoneid</li>
</ul>
<p>それとは別に、IPアドレスを固定したり複数のネットワークにVMを接続するときは iptonetworklist パラメータを指定するわけですが、このパラメータの設定がなんもわからんという感じです。</p>
<pre>iptonetworklist[0].ip=10.10.10.11&amp;iptonetworklist[0].ipv6=fc00:1234:5678::abcd&amp;iptonetworklist[0].networkid=uuid</pre>
<p>難しすぎる。なんで突然配列の演算子が出てきて &amp; で繋ぐ必要があるんだ……</p>
<p>実際に直に API を叩いたことはないのですが、 cs ではこの通りにパラメータを書いても上手く動いてくれません。<br />
なので、以下のようにする必要があります</p>
<pre>cs deployVirtualMachine ... iptonetworklist[0].ip=192.168.15.3 iptonetworklist[0].networkid=4bbc38e5-3e36-4a11-9c93-5a5261911120</pre>
<p>ただ &amp; で繋げずにスペースで区切るだけです。どういう挙動なんだろう……<br />
どこにも仕様が載っていないので試行錯誤せざるを得ないわけですが、やっていきましょう</p>
<p>結局 cs コマンドの引数はこんな感じになってしまうので非常に読みづらい。各位 Ansible のパワーに頼っていきましょう。僕は Ruby でラッパーを書きました。</p>
<pre>cs deployVirtualMachine displayname='vm1-p15-t7' name='vm-x-hoge' serviceofferingid='3ebb38bf-dbb6-42b1-b301-041d3546b5dc' templateid='cec5838f-1bae-442f-9009-9e27dcf33941' zoneid='57305097-d51a-467b-bbec-862ab20850d1' hostid='3edc5cc0-5375-462d-8a38-b2e4920791f4' account='xxx' domainid='1d43bf7b-b00c-41ba-959a-e422c4649547' startvm='false' iptonetworklist[0].ip=192.168.15.3 iptonetworklist[0].networkid=4bbc38e5-3e36-4a11-9c93-5a5261911120</pre>The post <a href="https://blog.monora.me/2016/10/deploying-vm-using-api-on-cloudstack/">CloudStack の VM を cs コマンドでデプロイしようとしてハマった</a> first appeared on <a href="https://blog.monora.me">monolog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1394</post-id>	</item>
	</channel>
</rss>
