Using CoreOS on OpenStack
Most instances on the Nectar Cloud runs Linux (Ubuntu, CentOS). On Nectar’s Linux images, a provisioning tool call cloud-init runs on first boot, which inserts your SSH key and other user data into the instance. This allows you to log in to your instance securely using SSH keys, and also run any scripts for software installation when your instance first boot up.
CoreOS uses a different provisioning tool called Ignition instead of cloud-init. This means that extra steps are necessary to boot up a CoreOS instance and inject your SSH key.
Short way (just SSH key)
- If you do not know where your SSH public key is, you can get it from Nectar
Dashboard, on the left menu under Project > Compute > Key Pairs. Or you
can use the CLI to get it
openstack keypair show --public-key <NAME>
- Create the following file as
user-data.json
{ "ignition": { "version": "3.0.0" }, "passwd": { "users": [ { "name": "core", "sshAuthorizedKeys": [ "ssh-rsa AAAAB3NzaC1c2EAA...dzP" ] } ] } }
- Boot up using CLI
openstack server create --image fedora-coreos-31 --flavor m3.small \ --user-data user_data.json fedora-coreos-instance
Long way
To build an Ignition configuration file, one has to create a YAML config and use the FCOS Configuration Transpiler (FCCT) to convert it into JSON. See Fedora CoreOS pages for more examples.
FCCT is provided as a container, but to run it we need something like podman. This is not installed on Ubuntu by default, so we need to install it.
-
Create a
user-data.yaml
like this. In this example we only set an SSH key, but this method is not limited to SSH keys.variant: fcos version: 1.0.0 passwd: users: - name: core ssh_authorized_keys: - "ssh-rsa AAAAB3NzaC1c2EAA...dzP"
-
Install
podman
by following the Ubuntu instructions on podman’s site. - Run fcct
podman run -i --rm quay.io/coreos/fcct:release --pretty \ --strict < user-data.yaml > user-data.json
- You should get the same
user-data.json
as the previous (short) example.