O
Fedora CoreOS é um sistema operacional mínimo de atualização automática para executar cargas de trabalho em contêiner de forma segura e em escala. Atualmente, está disponível em várias plataformas.
Vamos instalar em uma VM usando uma imagem livecd.
Versão usada do Fedora CoreOs: 32.20200601.3.0 stable
Máquina virtual KVM com Virt-Manager no Fedora 32.
Link do download dessa versão nesse artigo:
Antes de instalar o Fedora CoreOS, você deve ter um arquivo de configuração do Ignition e hospedá-lo em algum servidor web (por exemplo, usando "python3 -m http.server").
Ignition é um utilitário de provisionamento que lê um arquivo de configuração (no formato JSON) e provisiona um sistema Fedora CoreOS com base nessa configuração. Os componentes configuráveis incluem sistemas de armazenamento e arquivos, unidades systemd e usuários.
A ignition é executada apenas uma vez durante a primeira inicialização do sistema (em initramfs). Como o Ignition é executado tão cedo no processo de inicialização, ele pode particionar discos, formatar sistemas de arquivos, criar usuários e gravar arquivos antes que o espaço do usuário comece a ser inicializado. Como resultado, os serviços systemd já estão gravados no disco quando o systemd é iniciado, acelerando o tempo de inicialização.
Vamos criar o nosso arquivo ignition somente com a chave pública para podemos acessar o nosso Fedora CoreOS via ssh sem senha.
Gere uma chave ssh:
ssh-keygen
No seu diretório ~/.ssh terá 2 arquivos:
Vamos usar o conteúdo do .pub.
Crie o arquivo .fcc:
vim example.fcc
com o conteúdo:
variant: fcos
version: 1.0.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAA...
O ssh-rsa é a sua chave id_rsa.pub.
Agora vamos usar o
fcct pra criar o nosso arquivo ignition.
O
Transpiler de configuração do Fedora CoreOS, é uma ferramenta que produz um arquivo JSON Ignition a partir do arquivo YAML FCC. Usando o arquivo FCC, uma máquina Fedora CoreOS pode ser instruída a criar usuários, criar sistemas de arquivos, configurar a rede, instalar unidades systemd e muito mais.
Uma maneira fácil de usar fcct é executá-lo em um contêiner com podman, no caso eu estou usando o Fedora 32 que vem com o podman por padrão.
Baixe o container do fcct:
podman pull quay.io/coreos/fcct:release
Execute fcct no arquivo FCC:
podman run -i --rm quay.io/coreos/fcct:release --pretty --strict < example.fcc > example.ign
Agora vamos usar o arquivo do example.ign para instalar o Fedora CoreOS e passar a nossa chave pública.
Resumindo, o arquivo example.ign fica assim:
{
"ignition": {
"version": "3.0.0"
},
"passwd": {
"users": [
{
"name": "core",
"sshAuthorizedKeys": [
"ssh-rsa AAAA..........."
]
}
]
}
}
Esse seu arquivo envia para seu servidor web para podemos usar na instalação do Fedora CoreOS.
Agora vamos iniciar o Livecd do Fedora CoreOS.
Ao iniciar o Fedora CoreOS Live, já tem as instruções de instalação
Baixe o arquivo do seu servidor web no Fedora CoreOS:
curl -LO https://192.168.122.1/example.ign
E agora instale o Fedora CoreOS:
sudo coreos-installer install /dev/vda --ignition-file example.ign
Reinicie a máquina:
sudo reboot
E ao iniciar irá mostrar o endereço IP que pode ser alterado mais tarde ou até mesmo pode add no arquivo .fcc.
Agora vamos acessar nosso Fedora CoreOS via ssh com usuário core sem senha:
ssh core@<ip do fedoracoreos>
Agora tu podes usar o podman para subir e testar seus containers.
Espero que ajude!
Guia de referência:
Fedora CoreOS Documentation :: Fedora Docs Site