Configuração do Discourse no Azure

Este guia é para aqueles interessados em hospedar um site Discourse de forma autônoma no Azure e o conduzirá pelos detalhes iniciais do Portal do Azure necessários para criar sua VM Linux, para que você possa então seguir o guia de instalação em nuvem padrão, que é independente do provedor de hospedagem web. Se você não está interessado em hospedar seu próprio site, mas gostaria que hospedássemos seu fórum Discourse para você, inscreva-se aqui.

1) Criar um Grupo de Recursos

Antes de criar a VM, vamos criar um Grupo de Recursos. É aqui que tudo relacionado ao seu site Discourse ficará, como discos de armazenamento da VM, rede, grupos de segurança, armazenamento de blobs, etc. Para criar um Grupo de Recursos, clique no sinal de mais verde e selecione “Grupo de recursos”, depois preencha o campo “Nome do grupo de recursos”, selecione sua “Assinatura” e sua “Localização do grupo de recursos”, e então pressione “Criar”.

2) Criar a VM Linux

Vamos criar uma VM Ubuntu 16.04 LTS para este guia. Para isso, clique novamente no sinal de mais verde e pesquise por “Ubuntu Server 16.04 LTS”; ela deve aparecer como uma das VMs disponíveis.

Selecione-a e verifique se o modelo de implantação está definido como “Gerenciador de Recursos”, depois clique em “Criar”.

3) Configurar definições básicas

Agora você deve estar na aba “Básico” de “Criar uma máquina virtual”. Preencha todos os campos obrigatórios para configurar a VM. Selecione o grupo de recursos “discourse” que criamos anteriormente, dê um nome à sua VM como “discourse” e escolha a Região que deseja utilizar.

Ainda na mesma aba “Básico”, você precisará escolher o tamanho da sua VM. O padrão é “Standard D2s v3”, que possui 8 GB de memória e custa US$ 71,42 por mês. Portanto, certifique-se de selecionar “Alterar tamanho” e escolher um tamanho de VM adequado para sua carga de trabalho.

Para o mínimo absoluto, você precisará selecionar a opção “B1ms” com 2 GB de RAM. A “B1s”, embora anunciada com 1 GB, oferece apenas cerca de 800 MB de RAM no nível do sistema operacional, e não há espaço suficiente sobrando para executar o Discourse adequadamente. A “B1ms” custará US$ 17,11 por mês.

Agora preencha o nome de usuário do Linux e faça upload da sua chave pública SSH. Alternativamente, você pode configurar um login baseado em senha, mas o login baseado em chave SSH é preferível.

Agora precisamos garantir que temos acesso web e SSH à máquina selecionando o botão de opção “Permitir portas selecionadas” e escolhendo HTTP, HTTPS e SSH no menu suspenso “Selecionar portas de entrada”. Após a conclusão da configuração, é uma boa ideia limitar o acesso SSH apenas ao seu endereço IP.

Selecione “Revisar + criar”. Verifique se tudo está correto na página de Resumo e depois pressione “Criar”. A criação da VM levará vários minutos.

4) SSH na VM

Precisaremos de acesso à linha de comando para configurar o swap e instalar o Discourse. Assim que a VM for criada, você deverá poder selecioná-la no portal do Azure e, na tela de Visão Geral, ela exibirá o endereço IP público. Abra seu terminal e faça SSH na VM com o nome de usuário que especificamos na etapa 3 deste guia.

Se você não tem certeza de como fazer SSH na VM, pode usar alternativamente o “Console serial” dentro do Portal do Azure, selecionando a VM e, na parte inferior da navegação à esquerda, escolhendo “Console serial”.

Isso abrirá um shell onde você poderá digitar seu nome de usuário e senha que especificou antes de criar a VM. Se não tiver certeza da sua senha, pode usar a opção “Redefinir senha”.

Agora você deve estar em um terminal onde pode digitar comandos:

5) Configurar Swap

Cada VM do Azure vem com um disco temporário separado do disco do sistema operacional, geralmente montado em /dev/sdb1. Você deve garantir que o swap esteja configurado neste disco temporário e não no disco do sistema operacional, porque:

Esta unidade de armazenamento temporário está presente na máquina física que hospeda sua VM e, portanto, pode ter IOPS mais altos e latência menor em comparação com o armazenamento persistente, como disco de dados. - Entendendo a unidade temporária em Máquinas Virtuais do Azure

Edite o arquivo /etc/waagent.conf e atualize as seguintes linhas:

ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=2048

Nota: Se você já tiver um swap configurado no disco do sistema operacional (talvez porque ./discourse-setup o configurou para você), você pode desativá-lo comentando a linha /swapfile em /etc/fstab.

Se não tiver certeza de como editar o arquivo /etc/waagent.conf com um editor de linha de comando como o vim, basta copiar e colar o seguinte comando em seu terminal e pressionar Enter:

sudo sed -i '/ResourceDisk.Format=n/c\\ResourceDisk.Format=y' /etc/waagent.conf && sudo sed -i '/ResourceDisk.EnableSwap=n/c\\ResourceDisk.EnableSwap=y' /etc/waagent.conf && sudo sed -i '/ResourceDisk.SwapSizeMB=0/c\\ResourceDisk.SwapSizeMB=2048' /etc/waagent.conf

Ele pode pedir sua senha se for a primeira vez que você executa um comando sudo.

Em seguida, reinicie sua VM com sudo shutdown -r now.

Para verificar se o swap está funcionando, faça login novamente na sua VM e digite swapon --show. Você deverá ver algo como:

root@azure:~# swapon --show
NAME          TYPE SIZE USED PRIO
/mnt/swapfile file   2G 0B   -2

Note que o arquivo de swap está localizado dentro de /mnt; isso é bom porque esta é nossa unidade temporária.

Você também pode digitar free -h e ver algo como:

root@azure:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        174M        1.5G        3.0M        172M        1.5G
Swap:          2.0G          0B        2.0G

O swap deve ter algum valor na coluna total, o que significa que foi configurado.

6) Instalar o Discourse

Agora que nossa VM Linux foi criada no Azure e temos uma partição de swap, é hora de seguir o Guia Oficial de Instalação em Nuvem.

7) Instalar o Plugin de Armazenamento Blob do Azure (Opcional)

Agora que o Discourse está instalado, você pode seguir as instruções de instalação no tópico Plugin de Armazenamento Blob do Azure. Instalar e ativar este plugin fará com que as imagens enviadas pelos usuários sejam armazenadas no armazenamento de blobs em vez de na sua VM Linux, o que deve ajudar no desempenho, além de evitar que o disco do sistema operacional fique cheio.

33 curtidas

O tópico de discussão meta Instalação do Discourse no Azure inacessível também foi útil para mim em conjunto com este.

3 curtidas

É possível executar o Discourse no Azure como uma instalação sem servidor? Docker-first, sem VM subjacente?

Não é suportado ou bem documentado, mas deve ser possível.

Use o launcher para construir e inicializar uma imagem e enviá-la para um repositório. Em seguida, use o launcher para ver com qual ambiente ele é inicializado. Em seguida, use essas informações para iniciá-lo. Eu já fiz isso para a AWS antes.

Ainda mais indocumentado é o launcher2, que acho que existe no repositório discourse_docker, mas nunca o vi discutido fora dos comentários no GitHub.

Se você gostaria de ajuda e tem um orçamento, entre em contato comigo ou poste em Marketplace.

Eu tenho um orçamento que gostaria de investir, mas isso usando meus recursos internos e talento.

Podemos obter algum suporte da equipe do Discourse se o executarmos como PoC?