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.
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:
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.
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.
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:
- 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:
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
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
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:
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()
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
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
- substituir o valor de configuração ALLOWED_HOSTS no seu nome de domínio de ambiente Jelastic (que pode ser visto no dashboard)
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.
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.
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.
2 – Pressione o botão Deploy to e escolha o ambiente de destino.
3 – Quando essa operação estiver concluída, selecione o botão Abrir no navegador ao lado de seu ambiente.
4 – Isso é tudo! Agora você pode desfrutar de trabalhar com sua aplicação Mezzanine CMS.
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/