Secara khusus, dengan alat CLI - tidak openstack.
Saya melihat apa yang terlihat seperti setup dev lokal dengan LXD tapi saya datang dengan tangan kosong ketika datang untuk mengkonfigurasi kontainer baru.
Apakah ada cara idiomatik (atau sebaliknya) untuk mengkonfigurasi kontainer LXD? Haruskah saya melihat sesuatu yang lebih abadi seperti gambar buruh pelabuhan?
Terima kasih. Sumber daya atau petunjuk apa pun akan dihargai.
Satu liner yang saya gunakan hari ini, yang satu ini menetapkannya di profil default untuk kontainer baru:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc profile set default user.user-data -
Yang ini mengaturnya dalam wadah yang sudah ada, tetapi berhati-hatilah itu tidak akan bekerja pada wadah yang sudah di-boot karena kunci SSH hanya bisa dilakukan pada boot pertama:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc config set CONTAINER_NAME user.user-data -
sumber
Saya memiliki pertanyaan yang sedikit lebih spesifik daripada OP tetapi butuh beberapa saat untuk mencari tahu apa yang saya lakukan salah. Saya pikir saya akan mempostingnya di sini untuk membantu orang lain mengalami kekalahan yang sama.
Saya ingin pengaturan jaringan statis untuk wadah LXC / LXD Ubuntu 16.04 yang dihosting di Ubuntu 16.04. Saya mulai dengan mencoba apa yang ditulis Stéphane tetapi tidak berhasil. Yang saya dapatkan hanyalah wadah percobaan DHCP dengan tautan IPv6 lokal, karena tidak ada DHCP yang dilayani dalam konfigurasi saya.
YAML awal saya tampak (mirip) seperti berikut (diambil dari dokumentasi cloud-init ).
Dan saya memuat ini
user.user-data
seperti yang dijelaskan di atas.Baru setelah saya menemukan dokumentasi Stéphane di sumber LXC / LXD saya menyadari bahwa saya perlu memuat nilai tersebut
user.network-config
.Jadi YAML terakhir saya terlihat (seperti) seperti ini.
Lalu saya memasukkan ini ke dalam
user.network-config
gantinya.Sepertinya saya perlu menyimpan dua file berbeda per wadah: satu untuk memuat pengaturan jaringan
user.network-config
; dan satu untuk konfigurasi lain untuk dimuat ke dalamuser.user-data
kecuali saya dapat menemukan cara menggunakan satu file untuk semuanya.Masalah lain yang saya temukan yang tidak jelas bagi saya sama sekali adalah mencoba mengkonfigurasi komponen non-jaringan secara otomatis.
YAML berikut diterapkan dengan perintah di atas (meskipun terlihat menggunakan benar
lxc config show CONTAINER
) tidak membuat apa pun di dalam wadah saya.Petunjuk yang terkubur dalam Format Input Data Pengguna, item 5: Cloud Config Data berbunyi:
Saya tidak percaya dokumentasi ini sangat jelas. Saya tidak bisa mendapatkan apa pun untuk bekerja menggunakan formulir "Content-Type: text / cloud-config" tetapi saya menemukan jika Anda meletakkannya
#cloud-config
di baris pertama, YAML diuraikan. Saya hanya bisa berasumsi ada sesuatu yang tidak beres, baik pemahaman saya, atau pemrograman seseorang. Tidak masuk akal bagi saya bahwa YAML Anda telah secara eksplisit memuat nilai kunciuser.user-data
harus digunakan sebagai apa pun selain data konfigurasi cloud. Mengapa lagi ada orang yang melakukan itu jika itu tidak dimaksudkan untuk konfigurasi cloud, dan karena itu mengapa komentar (yang bahkan tidak menggunakan sintaks shebang normal) diperlukan ?Jadi, selain omong kosong, sintaks yang bekerja
user.user-data
adalah:sumber