web-dev-qa-db-ja.com

maasのcloud-initクライアントが内部ミラーを選択する方法

私たちの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
...

私の質問は:

  1. Maasでユーザーデータを設定する方法は?そのため、cloud-initのミラーのURLを192.168.3.6に設定したり、cloud-initがミラーのURLを変更しないようにしたりできます。
  2. Maasノードのファイル/home/ubuntu/.ssh/authorized_keysは空です。ミラーのセットアップが原因ですか?
2
Michael

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のローカル設定です。

1
Michael

これを報告していただきありがとうございます。これに対処するために、上流の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を使用することによってのみ現在可能です。現在、既存のクライアントツールはありません。

2
smoser