Hoy me ha dado por probar coreOS en un vmware player y ha sido bastante sencillito, pero voy a comentar los pasos que he seguido:

Instalación

Descargar OVA

El archivo OVA se puede importar tanto en vmware como virtualbox:

curl -LO https://stable.release.core-os.net/amd64-usr/current/coreos_production_vmware_ova.ova

Creación de config-drive

Creamos el archivo user_data con el siguiente contenido cambiando ssh-rsa por nuestra clave pública:

#cloud-config

# include one or more SSH public keys
ssh_authorized_keys:
  - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGdByTgSVHq.......
coreos:
  etcd2:
    # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
    # specify the initial size of your cluster with ?size=X
    discovery: https://discovery.etcd.io/<token>
    advertise-client-urls: http://$private_ipv4:2379,http://$private_ipv4:4001
    initial-advertise-peer-urls: http://$private_ipv4:2380
    # listen on both the official ports and the legacy ports
    # legacy ports can be omitted if your application doesn't depend on them
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
    listen-peer-urls: http://$private_ipv4:2380
  units:
    - name: etcd2.service
      command: start
    - name: fleet.service
      command: start

Creamos configdrive.iso con el archivo user_data dentro:

mkdir -p /tmp/new-drive/openstack/latest
cp user_data /tmp/new-drive/openstack/latest/user_data
mkisofs -R -V config-2 -o configdrive.iso /tmp/new-drive
rm -r /tmp/new-drive

En el caso de usar windows 10, basta con abrir un bash for windows e instalar genisoimage:

sudo apt-get install genisoimage

Atachear la ISO creada como dvd

Luego basta con atachear el archivo ISO que acabamos de crear a la máquina virtual y arrancarla. CoreOS lo detectará y podremos loguearnos con el usuario core a nuestra máquina usando nuestra clave privada. CoreOS no tiene password por defecto, así que esto es necesario.

Conexión

ssh core@192.168.0.15

Uso

CoreOS tiene funcionalidad muy limitada incluída en el núcleo. Lo que es ideal para el rendimiento y la seguridad.

  • Disponemos de algunas herramientas ya de base: docker, git, wget, curl, vi.
  • No tenemos: nano, ni gcc, ni php, ni python, ni ruby, ni svn, ni similares

Para poder acceder a funcionalidad avanzada coreOS ofrece la herramienta /bin/toolbox que lo que hace es arrancar un contenedor con un fedora montando el sistema de archivos raíz en /media/root. En ese fedora podemos instalar lo que queramos: desde nano, gcc, php. Y si necesitamos acceder a archivos de nuestro sistema de archivos principal, lo tenemos montado en /media/root.