OP'den biraz daha spesifik bir sorum vardı ama yanlış yaptığımı anlamak biraz zaman aldı. Başkalarının benzer şekilde güdük olmasına yardımcı olmak için buraya göndereceğimi düşündüm.
Ubuntu 16.04'te barındırılan bir LXC / LXD Ubuntu 16.04 konteyneri için statik ağ ayarları istedim. Stéphane'nin yazdıklarını deneyerek başladım ama işe yaramıyordu. Sonunda yapılandırmamda hiçbir DHCP sunulmadığından, IPv6 bağlantısı yerel olan varsayılan DHCP deneme konteyneri çıktı.
İlk YAML'm aşağıdaki gibi görünüyordu ( bulut init belgelerinden alınmış ).
network:
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 192.168.23.14/27
gateway: 192.168.23.1
dns_nameservers:
- 192.168.23.2
- 8.8.8.8
dns_search:
- exemplary.maas
Ve bunu user.user-data
yukarıda anlatıldığı gibi yüklüyordum .
lxc config set CONTAINER user.user-data - < CONTAINER.cloud-init-config.yml
Stéphane'nin LXC / LXD kaynağındaki belgelerini bu değeri yüklemem gerektiğini fark edene kadar değildi user.network-config
.
Son YAML'im böyle görünüyordu.
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 192.168.23.14/27
gateway: 192.168.23.1
dns_nameservers:
- 192.168.23.2
- 8.8.8.8
dns_search:
- exemplary.maas
Sonra user.network-config
bunun yerine bunu yükledim .
lxc config set CONTAINER user.network-config - < CONTAINER.network-config.yaml
Kapsayıcı başına iki farklı dosya tutmam gerekecek gibi görünüyor: biri ağ ayarları yüklenecek user.network-config
; ve user.user-data
her şey için tek bir dosya kullanmanın bir yolunu bulamadığım sürece , diğer yapılandırmaların yüklenebilmesi için bir tane.
Benim için açık olmayan başka bir sorun buldum, ağ dışı bileşenleri otomatik olarak yapılandırmaya çalışıyordu.
lxc config set CONTAINER user.user-data - < CONTAINER.user-data.yaml
Yukarıdaki komutla uygulanan aşağıdaki YAML (doğru kullanımına rağmen lxc config show CONTAINER
) kabımın içinde hiçbir şey yaratmadı.
write_files:
- content: |
# My new /etc/foo.bar file
Foo
Bar
path: /etc/foo.bar
Kullanıcı Veri Giriş Formatlarında gömülü ipucu , madde 5: Bulut Yapılandırma Verileri :
ile başlar "#cloud-config"
veya "Content-Type: text/cloud-config"
Bu içerik "cloud-config" verileridir. Desteklenen yapılandırma biçimlerinin açıklanmış bir örneği için örneklere bakın.
Bu belgelerin çok açık olduğuna inanmıyorum. "Content-Type: text / cloud-config" formunu kullanarak çalışmak için hiçbir şey alamadım ama #cloud-config
ilk satıra koyarsanız , YAML ayrıştırılır. Sadece bir şeyin doğru olmadığını varsayabilirim, ya benim anlayışım ya da birinin programlaması. Anahtarın değeri olarak açıkça yüklediğiniz YAML'nin user.user-data
bulut yapılandırma verilerinden başka bir şey olarak kullanılması bana mantıklı gelmiyor . Bulut yapılandırması olmasaydı neden başka biri bunu yapsın ve bu nedenle neden bir yorum (normal shebang sözdizimini kullanmıyor bile) gerekli ?
Yani, saçma bir yana, işe yarayan sözdizimi user.user-data
:
#cloud-config
write_files:
- content: |
# My new /etc/foo.bar file
Foo
Bar
path: /etc/foo.bar