Provisionando Fedora CoreOS no OpenStack
Esse guia mostra como provisionar novos nós Fedora CoreOS (FCOS) em um ambiente de Nuvem OpenStack, seja este privado ou público (como VEXXHOST).
Os passos abaixo foram testados na relase "Victoria' do OpenStack.
Pré-Requisitos
Antes de provisionar uma máquina FCOS, você deve ter um arquivo de configuração Ignition contendo suas customizações. Se você não tem uma, veja Produzindo um arquivo Ignition.
Você também deve ter acesso a um ambiente OpenStack e a uma
ttps://docs.openstack.org/python-designateclient/latest/user/shell-v2.html[CLI
openstack
] funcional. Tipicamente vocẽ irá
configurar
o cliente usando um arquivo clouds.yaml
ou via variáveis de ambiente. Se
você está começando do 0, esse ambiente deve precisar de redes, pares de
chave SSH, grupos de segurança, etc…configure. Por favor consulte a
Documentação do OpenStack para aprender mais.
Baixando uma imagem OpenStack
Fedora CoreOS é designado para ser atualizado automaticamente, com diferentes rotinas por fluxo. Uma vez que você tenha escolhido o fluxo relevante, faça o download, verifique e descomprima a última imagem OpenStack:
Para mais informações sobre ofertas de Fluxos FCOS veja Fluxo de atualizações. |
STREAM='stable'
coreos-installer download --decompress -s $STREAM -p openstack -f qcow2.xz
Alternativamente, você pode baixar manualmente uma imagem OpenStack da página de downloads. Verificar o download, seguindo as instruções nessa página, e descomprimir.
Realizando o upload da imagem para o OpenStack
FILE=fedora-coreos-XX.XXXXXXXX.X.X-openstack.x86_64.qcow2
IMAGE=${FILE:0:-6} # pull off .qcow2
openstack image create --disk-format=qcow2 --min-disk=10 --min-ram=2 --file=$FILE $IMAGE
openstack image list --name=$IMAGE
Lançando uma instância de VM
Agora que você tem uma imagem criada na sua conta você pode lançar uma instância de VM. Você terá que especificar vários detalhes de informação no comando, como a versão da instância, informação de rede, chave SSH, etc…
Você também precisará da configuração Ignition que você criou
anteriormente. Aqui está representado no comando de exemplo como
./example.ign
, que indica um arquivo no diretório corrente nomeado
example.ign
.
OPENSTACK_NETWORK=private
OPENSTACK_KEYPAIR=mykeypair # optional
OPENSTACK_FLAVOR=v1-standard-2
INSTANCE_NAME=myinstance # choose a name
openstack server create \
--key-name=$OPENSTACK_KEYPAIR \
--network=$OPENSTACK_NETWORK \
--flavor=$OPENSTACK_FLAVOR \
--image=$IMAGE \
--user-data ./example.ign \
$INSTANCE_NAME
Especificar --key-name é opcional se você prover uma chave SSH na sua
configuração Ignition.
|
Monitorar o progresso de criação da instância com openstack server show
$INSTANCE_NAME .
|
Próximo, se você gostaria de acessar por SSH a instância de fora do ambiente OpenStack, você pode assinalar um IP público para a instância:
OPENSTACK_NETWORK=public
openstack floating ip create $OPENSTACK_NETWORK
FLOATING_IP=1.1.1.1 # do ip flutuante recém-criado
openstack server add floating ip $INSTANCE_NAME $FLOATING_IP
Agora você deve ser capaz de acessar por SSH a instãncia utilizando o
endereço IP associado com o IP flutuante. Se você não mudou os defaults, o
usuário é core
e ssh core@$FLOATING_IP
deve funcionar.