Back-End

22 jun, 2016

Como colocar o Mezzanine CMS dentro da Jelastic Cloud – Parte 02

Publicidade

Neste artigo dividido em duas parte, veja como por o Mezzanine CMS na Jelastic Cloud. Veja a primeira parte aqui.

***

Para um servidor SQL separado

No Jelastic, o Mezzanine pode ser configurado para trabalhar com qualquer um dos servidores baseados em MySQL (ou seja, o próprio MySQL, MariaDB ou PerconaDB – as configurações são as mesmas para todos eles). Além disso, você pode usar o PostgreSQL como opção.

Aqui, vamos considerar a configuração necessária com o exemplo de PerconaDB 5.6, proporcionando ao mesmo tempo as configurações correspondentes para Postgres ao lado se elas forem diferentes.

1 – Então, se você preferir usar um servidor de banco de dados separado, navegue de volta para o painel do Jelastic, escolha a opção Change environment topology do seu ambiente Mezzanine, escolha o node desejado dentro da seção SQL wizard e clique em Apply.

jelastic-7

Nota: Percona DB é um node opcional, uma vez que é baseado no cartridge packaging model. No caso de você querer usá-lo, mas não encontrar esse servidor na seção SQL do seu assistente, envie um pedido para o seu provedor de hospedagem para sua habilitação.

2 – Depois que o node for adicionado com sucesso ao seu ambiente, selecione Abrir no navegador ao lado para a página PhpMyAdmin ser aberta. Faça login com as credenciais que você recebeu por e-mail durante a instalação do servidor:

jelastic-8

3 – Quando você estiver dentro, navegue até a aba usuários, a fim de criar uma conta separada para a interação com o banco de dados Mezzanine CMS. No frame aberto, clique em Adicionar usuário e especifique o nome de usuário e a senha apropriada.

jelastic-9

Além disso, assinale as opções Create database with the same name and grant all privileges e Grant all privileges on wildcard name (username\_%) para obter um banco de dados com os privilégios necessários. Em seguida, pressione o botão Go.

Dica: Para o banco de dados PostgreSQL, a única ação necessária é a criação de um novo banco de dados no usuário padrão do banco de dados. Para isso, depois de estar logado, selecione o link Create database. Dentro do formulário de entrada que apareceu, especifique o nome para o novo banco de dados, deixando todo o resto das configurações inalteradas, e clique no botão Create.

jelastic-10

4 – Após a criação do banco de dados com êxito, retorne ao seu console com a conexão SSH aberta no servidor Apache Python e navegue até o arquivo local_settings.py dentro da pasta ~/ROOT/ROOT. Aqui, você precisa especificar as seguintes configurações:

  • ENGINE – django.db.backends.mysql (ou django.db.backends.postgresql_psycopg2 para banco de dados PostgreSQL)
  • NAME – digite o nome do banco de dados criado anteriormente (mezzanine, no nosso caso)
  • USER e PASSWORD – digite os que você especificou durante a criação do banco de dados (ou indique as credenciais padrão se estiver usando PostgreSQL)
  • HOST – IP interno do servidor de DB escolhido

Dica: Para descobrir o endereço IP do servidor, expanda a lista Additional próxima a ele no painel Jelastic:

jelastic-11

  • PORT – especifique o número de porta 3306 (ou 5432, se estiver trabalhando com PostgreSQL)

Como resultado, a seção DATABASES deve ser semelhante ao seguinte:

jelastic-12

5 – Em seguida, a fim de fazer com que o servidor funcione com um banco de dados baseado em MySQL, o conector apropriado precisa ser instalado via pip:

pip install mysql

jelastic-13

Dica: Para obter o conector Python para o servidor PostgreSQL, o comando a seguir deve ser executado:

PATH=$PATH:/usr/pgsql-9.4/bin/ pip install psycopg2

jelastic-14

Observe também que você pode precisar modificar a string pgsql-9.4 de acordo com a versão fornecida do servidor PostgreSQL em sua plataforma Jelastic.

6 – Uma vez que o módulo SQL necessário é instalado, você pode prosseguir com a criação do schema DB:

python manage.py createdb --noinput

Após o DB ser criado, vamos garantir que a aplicação está operacional e aplicar algumas configurações adicionais no servidor de aplicação.

Executando a aplicação Mezzanine

Assim, as principais etapas da instalação do aplicativo Mezzanine CMS estão concluídas agora. A fim de ter certeza de que tudo foi realizado com sucesso, basta parar o processo Apache Python padrão:

sudo service cartridge stop

e depois iniciar o aplicativo novamente (dentro da pasta ~/ROOT):

python manage.py runserver 0.0.0.0:8080

Agora, você pode abrir o seu ambiente no navegador via Jelastic dashboard para acessar a página inicial do aplicativo:

jelastic-15

Esse tipo de aplicativo em execução é adequado para fins de desenvolvimento e testes. No entanto, para ambientes de produção com um grande número de usuários simultâneos, é mais recomendado lançar o servidor web Apache (que será usado para servir o conteúdo estático) em um pacote com o módulo mod_wsgi (necessário para hospedagem de aplicações web em Python com suporte para a especificação WSGI e para implementação da interação com o Python backend).

Então, para lidar com a aplicação Mezzanine com mod_wsgi, faça o seguinte:

1 – Primeiro, você precisa gerar um manipulador WSGI. Para isso, vá ao diretório ~/ROOT/ROOT via console (mediante protocolo SSH) e crie o arquivo wsgi.py lá com o conteúdo a seguir:

import os,sys
virtenv = os.path.expanduser('~') + '/virtenv/'
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
   if sys.version.split(' ')[0].split('.')[0] == '3':
     exec(compile(open(virtualenv, "rb").read(), virtualenv, 'exec'), dict(__file__=virtualenv))
   else:
       execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
   pass

sys.path.append(os.path.expanduser('~'))
sys.path.append(os.path.expanduser('~') + '/ROOT/')
sys.path.append(os.path.expanduser('~') + '/ROOT/ROOT/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'ROOT.ROOT.settings'

from django.core.wsgi import get_wsgi_application
from mezzanine.utils.conf import real_project_name

application = get_wsgi_application()

jelastic-16

Salve o arquivo recém-criado.

2 – Em seguida, defina a symlink, que vai apontar para o arquivo que nós modificamos acima, executando a seguinte linha:

ln -sfT ~/ROOT/ROOT/wsgi.py ~/ROOT/application

3 – Além disso, como nós estamos servindo conteúdo estático com a ajuda do Apache, os dados apropriados precisam ser coletados de antemão (o comando deve ser executado no diretório ~/ROOT):

python manage.py collectstatic

jelastic-17

Como resultado, todo o conteúdo estático para o aplicativo atual será armazenado no diretório ~/ROOT/static.

4 – Além disso, há alguns pequenos problemas, que precisam ser ajustados dentro da configuração ~/ROOT/ROOT/settings.py antes que possamos iniciar o aplicativo. São eles:

  • declarar o parâmetro ROOT_URLCONF em ROOT.ROOT.urls

jelastic-18

  • substituir o valor de configuração ALLOWED_HOSTS no seu nome de domínio de ambiente Jelastic (que pode ser visto no dashboard)

jelastic-19

5 – Depois disso, execute o Apache:

sudo service cartridge start

6 – Isso é tudo! Agora, você pode voltar para o dashboard e pressionar o botão Abrir no navegador ao lado de seu ambiente com Mezzanine CMS (semelhante à maneira como você havia feito durante a verificação de sua operacionalidade). Como resultado, você verá a página de boas-vindas do aplicativo.

jelastic-20

Aqui, você pode acessar o painel de administração usando suas credenciais (ou seja admin/default no caso do uso da opção -noinput, ou as suas personalizadas).

Quando estiver dentro, você será capaz de prosseguir com a modificação do seu site e preenchê-lo com o conteúdo exigido.

jelastic-21

Implementando um arquivo Mezzanine CMS pré-configurado

Para o caso de você ter uma conta do tipo trial e/ou não tiver a possibilidade de acessar seu ambiente via SSH, o arquivo com a aplicação Mezzanine CMS pré-configurado pode ser implementado diretamente, por meio do dashboard Jelastic. Como exemplo, você pode usar nosso pacote Mezzanine 4.1 pronto.

Nota: Em caso de implementação personalizada da sua distribuição Mezzanine, por favor, garanta que ele contenha os seguintes arquivos em sua raiz:

  • arquivo requirements.txt com os nomes de todos os módulos Python que o aplicativo requerer. Esse arquivo será lido pelo script de implementação, a fim de instalar automaticamente os módulos listados com a ajuda do gerenciador de pip.
  • arquivo application com o script de entrada pronto para executar o aplicativo dentro de um ambiente virtual, por meio de Apache mod_wsgi.

Com o nosso pacote, o SQLite é usado para servir o armazenamento de dados por padrão, portanto, apenas o servidor de aplicação é necessário para ser incluído dentro do ambiente. E todo o processo de implementação pode ser realizado apenas em algumas etapas, descritas a seguir:

1 – Envie o pacote com sua aplicação Mezzanine CMS para o dashboard Jelastic via gerenciador de implementação.

jelastic-22

2 – Pressione o botão Deploy to e escolha o ambiente de destino.

jelastic-23

3 – Quando essa operação estiver concluída, selecione o botão Abrir no navegador ao lado de seu ambiente.

jelastic-24

4 – Isso é tudo! Agora você pode desfrutar de trabalhar com sua aplicação Mezzanine CMS.

jelastic-25

Como você pode ver, é muito fácil implementar o Mezzanine CMS (assim como qualquer outro aplicativo baseado no Django) com a hospedagem Jelastic Python. No entanto, caso você enfrente quaisquer problemas com estas instruções, sinta-se à vontade para pedir ajuda dos nossos técnicos especialistas no Stackoverflow.

***

Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://blog.jelastic.com/2016/05/05/how-to-get-mezzanine-cms-inside-jelastic-cloud/