私たちのmaas LANはインターネットにアクセスできず、内部にapt-mirrorサイト192.168.3.6があります。 maasサーバーのsnippets/maas_proxyファイルのミラーセットを次のように変更しました。
d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.3.6
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
2つのmaasノードをデプロイしました。ダッシュボードは、2つのノードの状態が準備完了であることを示します。しかし、ノードのcloud-initクライアントは、aptのsources.listを次のように変更しました。
## Note, this file is written by cloud-init on first boot of an instance
## modifications made here will not survive a re-bundle.
## if you wish to make changes you can:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
## or do the same in user-data
...
deb http://archive.ubuntu.com/ubuntu precise main
deb-src http://archive.ubuntu.com/ubuntu precise main
...
ノードaptのsources.listのようなcobblerインストールノード(maasなし)を直接使用します。
...
deb http://192.168.3.6/ubuntu precise main
deb-src http://192.168.3.6/ubuntu precise main
...
私の質問は:
OK、/ var/lib/cobbler/snippets/maas_preseedに次のような行を追加することで、ノードのインストールを完了できます。
$maas_preseed_data
cloud-init cloud-init/local-cloud-config string manage_etc_hosts: localhost
+cloud-init cloud-init/local-cloud-config string apt_preserve_sources_list: true
要因として、cloud-init/local-cloud-configはcloud-initのローカル設定です。
これを報告していただきありがとうございます。これに対処するために、上流のmaasに対して bug 1006966 を開きました。
とりあえず、これを回避する最も簡単な方法は、late_commandに/etc/cloud/cloud.cfgに次のような内容のファイルをインストールさせることです。
# /etc/cloud/cloud.cfg.d/99-local-mirror-only.cfg
apt_preserve_sources_list: true
テストされていませんが、以下を実行することでそれを達成できる場合があります。
--- /var/lib/cobbler/kickstarts/maas.preseed.dist 2012-05-31 15:37:06.689109923 +0000
+++ /var/lib/cobbler/kickstarts/maas.preseed 2012-05-31 15:37:43.293109690 +0000
@@ -90,4 +90,5 @@
d-i preseed/late_command string true && \
$SNIPPET('maas_sudoers') && \
$SNIPPET('maas_disable_pxe') && \
+ $SNIPPET('local_mass_local_mirror') && \
true
--- /dev/null 2012-05-31 15:21:47.612623001 +0000
+++ /var/lib/cobbler/snippets/local_maas_local_mirror 2012-05-31 15:39:33.897110012 +0000
@@ -0,0 +1 @@
+in-target sh -c "echo apt_preserve_sources_list: true > /etc/cloud/cloud.cfg.d/99-local-mirror-only.cfg" \
ああ、「ユーザーデータをmaasに設定する方法」に答えると、これはmaas APIを使用することによってのみ現在可能です。現在、既存のクライアントツールはありません。