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.

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.