1. sonots

    No comment

    sonots
Changes in title
-cloud-init のスクリプトをホストを再起動させたりせずに何度も実行して開発するには
+cloud-init のスクリプトをホストを再起動せずに何度も実行して開発するには
Changes in body
Source | HTML | Preview
@@ -1,80 +1,84 @@
-cloud init のスクリプトをホストを再起動させたりせずに何度も実行して開発するには次のようにすればよい
+cloud init のスクリプトをホストを再起動せずに何度も実行して開発するには次のようにすればよいようだ
## 前提知識
/etc/cloud/cloud.cfg には
```
cloud_init_modules:
...
# The modules that run in the 'config' stage
cloud_config_modules:
...
# The modules that run in the 'final' stage
cloud_final_modules:
```
の3つのセクションがある。実行タイミングについては [Amazon Linuxのcloud-initの動きについて調べてみた](http://dev.classmethod.jp/cloud/aws/probe-cloud-init) の記事を参照すると良い。
## 開発実行のやり方
それぞれ以下のように実行すれば良い
1. `cloud_init_modules` セクションの実行
```
rm -rf /var/lib/cloud/* && cloud-init --debug init
```
2. `cloud_config_modules` セクションの実行
```
rm -rf /var/lib/cloud/* && cloud-init --debug modules --mode config
```
3. `cloud_final_modules` セクションの実行
```
rm -rf /var/lib/cloud/* && cloud-init --debug modules --mode final
```
## 補足
ちなみに、`/var/lib/cloud` の下はこんなかんじで、status.json に init が実行ずみであることなどが記録されているため、消さないと再実行できなくなっている。(status.json を消すだけではダメだった)
```
# tree /var/lib/cloud/
/var/lib/cloud/
├── data
│   ├── instance-id
│   ├── previous-datasource
│   ├── previous-instance-id
│   └── status.json
├── handlers
├── instance -> /var/lib/cloud/instances/i-5d1d98af
├── instances
│   └── i-5d1d98af
│   ├── cloud-config.txt
│   ├── datasource
│   ├── handlers
│   ├── obj.pkl
│   ├── scripts
│   ├── sem
│   │   └── consume_data
│   ├── user-data.txt
│   ├── user-data.txt.i
│   ├── vendor-data.txt
│   └── vendor-data.txt.i
├── scripts
│   ├── per-boot
│   ├── per-instance
│   ├── per-once
│   └── vendor
├── seed
└── sem
```
+
+# おわりに
+
+もっとうまい方法があれば情報 welcome