W szczególności z narzędziami CLI - nie openstack.
Patrzę na to, jak może wyglądać lokalna konfiguracja dewelopera z lxd, ale przychodzi mi z pustymi rękami, jeśli chodzi o konfigurowanie nowych kontenerów.
Czy są jakieś idiomatyczne (lub w inny sposób) sposoby konfiguracji kontenerów LXD? Czy powinienem patrzeć na coś bardziej niezmiennego, np. Obrazy dokerów?
Dzięki. Wszelkie zasoby lub wskazówki będą mile widziane.
Jedna linijka, z którą poszedłem dzisiaj, ta ustawia ją w domyślnym profilu dla nowych kontenerów:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc profile set default user.user-data -
Ten ustawia go w istniejącym kontenerze, ale uwaga: nie będzie działać na kontenerach, które już się uruchomiły, ponieważ klucz SSH jest wykonywany tylko przy pierwszym uruchomieniu:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc config set CONTAINER_NAME user.user-data -
źródło
Miałem nieco bardziej szczegółowe pytanie niż OP, ale zajęło mi trochę czasu, aby zorientować się, co robię źle. Pomyślałem, że opublikuję go tutaj, aby pomóc każdemu, kto dostanie podobne zaklęcie.
Chciałem statycznych ustawień sieciowych dla kontenera LXC / LXD Ubuntu 16.04 hostowanego na Ubuntu 16.04. Zacząłem od wypróbowania tego, co napisał Stéphane, ale to nie działało. Skończyło się na domyślnym kontenerze próbującym DHCP z lokalnym łączem IPv6, ponieważ w mojej konfiguracji nie jest obsługiwany DHCP.
Mój początkowy YAML wyglądał (coś) w następujący sposób (wzięty z dokumentów inicjujących chmurę ).
I ładowałem to
user.user-data
tak, jak opisano powyżej.Dopiero gdy znalazłem dokumentację Stéphane'a w źródle LXC / LXD , zdałem sobie sprawę, że muszę załadować tę wartość
user.network-config
.Więc moja ostatnia YAML wyglądała (coś) tak.
Potem załadowałem to do
user.network-config
.Wygląda na to, że będę musiał zachować dwa różne pliki na kontener: jeden do załadowania ustawień sieciowych
user.network-config
; i jedną inną konfigurację do załadowania,user.user-data
chyba że znajdę sposób na użycie jednego pliku do wszystkiego.Innym znalezionym przeze mnie problemem, który nie był dla mnie oczywisty, była próba automatycznej konfiguracji składników niesieciowych.
Następujące YAML zastosowane z powyższym poleceniem (pomimo poprawnego użycia
lxc config show CONTAINER
) nie utworzyło niczego w moim kontenerze.Wskazówka ukryta w formatach wprowadzania danych użytkownika, pozycja 5: Dane konfiguracji w chmurze brzmi:
Nie sądzę, aby ta dokumentacja była bardzo przejrzysta. Nie mogłem dostać niczego do pracy za pomocą formularza „Content-Type: text / cloud-config”, ale znalazłem, że jeśli umieścisz
#cloud-config
w pierwszym wierszu, YAML zostanie przeanalizowany. Mogę tylko założyć, że coś jest nie tak, albo moje zrozumienie, albo czyjeś programowanie. Nie ma dla mnie sensu, że YAML został jawnie załadowany, ponieważ wartość kluczauser.user-data
powinna być używana jako cokolwiek innego niż dane konfiguracyjne w chmurze. Dlaczego ktoś miałby to zrobić, gdyby nie była to konfiguracja w chmurze, a zatem dlaczego wymagany byłby komentarz (który nawet nie używa normalnej składni shebang) ?Poza tym, nonsensem, składnia, która działała,
user.user-data
to:źródło