Específicamente, con las herramientas CLI, no OpenStack.
Estoy viendo cómo se vería una configuración de desarrollo local con lxd, pero me encuentro con las manos vacías cuando se trata de configurar nuevos contenedores.
¿Hay alguna forma idiomática (o de otro modo) de configurar contenedores lxd? ¿Debería mirar algo más inmutable como las imágenes acoplables?
Gracias. Cualquier recurso o puntero sería apreciado.
Un revestimiento con el que fui hoy, este lo establece en el perfil predeterminado para nuevos contenedores:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc profile set default user.user-data -
Este lo establece en un contenedor existente, pero tenga en cuenta que no funcionará en contenedores que ya se iniciaron, ya que las cosas de la clave SSH solo se realizan en el primer arranque:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc config set CONTAINER_NAME user.user-data -
fuente
Tenía una pregunta un poco más específica que el OP, pero me llevó un tiempo averiguar qué estaba haciendo mal. Pensé que lo publicaría aquí para ayudar a cualquier otra persona a quedar igualmente perpleja.
Quería configuraciones de red estáticas para un contenedor LXC / LXD Ubuntu 16.04 alojado en Ubuntu 16.04. Comencé probando lo que escribió Stéphane pero no estaba funcionando. Todo lo que terminé con fue el contenedor predeterminado de intento de DHCP con un enlace IPv6 local, ya que no hay ningún servidor DHCP en mi configuración.
Mi YAML inicial se parecía (algo) al siguiente (tomado de los documentos de inicio de la nube ).
Y estaba cargando esto
user.user-data
como se describe anteriormente.No fue hasta que encontré la documentación de Stéphane en la fuente LXC / LXD que me di cuenta de que necesitaba cargar ese valor
user.network-config
.Así que mi YAML final se veía (algo) así.
Luego cargué esto en su
user.network-config
lugar.Parece que tendré que mantener dos archivos diferentes por contenedor: uno para cargar la configuración de red
user.network-config
; y otra para cargar otra configuración auser.user-data
menos que pueda encontrar una manera de usar un solo archivo para todo.Otro problema que encontré que no era obvio para mí fue intentar configurar los componentes que no son de red automáticamente.
El siguiente YAML aplicado con el comando anterior (a pesar de parecer correcto usando
lxc config show CONTAINER
) no creó nada dentro de mi contenedor.La pista enterrada en los Formatos de entrada de datos del usuario, elemento 5: Datos de configuración de la nube se lee:
No creo que esta documentación sea muy clara. No pude hacer que nada funcionara con el formulario "Content-Type: text / cloud-config" pero encontré que si pones
#cloud-config
en la primera línea, se analiza el YAML. Solo puedo suponer que algo no está del todo bien, ya sea mi comprensión o la programación de alguien. Para mí no tiene sentido que YAML haya cargado explícitamente, ya que el valor de la claveuser.user-data
debe usarse como otra cosa que no sean datos de configuración de la nube. ¿Por qué si alguien haría eso si no estaba destinado a ser la configuración de la nube, y por lo tanto ¿por qué un comentario (que ni siquiera utilizar la sintaxis tinglado normal) se requiere ?Entonces, sin sentido, la sintaxis que funcionó
user.user-data
es:fuente