Saudações,
Faz alguns anos que um amigo meu precisava aprender Java e ele não queria mexer muito com esse negócio de instalar e configurar ambientes. Na época eu recomendei um PaaS grátis.
Essa semana um outro amigo, que quer aprender PHP, falou algo parecido e novamente eu recomendei a mesma plataforma.
OpenShift: tudo para os iniciantes na programação
Certamente o OpenShift não é só para iniciantes. Esta plataforma é um PaaS que atente qualquer tipo de necessidade neste segmento de mercado. Contudo, este post é apenas uma introdução. A plataforma é bem documentada e junto da comunidade você encontrará respostas às suas duvidas.
Comece acessando openshift.com/learn/get-started e crie uma conta grátis. Depois acesse openshift.com/products/pricing e cadastra-se no plano STARTER...
Plano grátis conta com 1 GB de RAM e 1 GB de disco |
Meus recursos foram alocados e liberados em torno de 24 horas. Tenha paciência! Você recebera um e-mail de notificação.
Depois da alocação, acesse manage.openshift.com e clique no botão Open Web Console...
Para lhe apresentar a plataforma eu escolhi a linguagem Python. Sendo assim no Catalogo de Serviço pesquise por Python, ou clique em Languages -> Python -> Python...
Nas telas que se seguem, use os dados abaixo como exemplo...
Nome de Projeto: meu-projeto
Nome de Exibição do Projeto: Meu Projeto
Descrição do Projeto: Meu projeto em Python
Para este teste eu escolhi a versão 3.6 Python.
Nome da Aplicação: meuapp
Repositório Git: https://github.com/OpenShiftDemos/os-sample-python.git
O endereço do Repositório Git contem o código inicial do projeto, e instruções para usarmos o micro framework Flask.
Depois de criado, acesse o seu projeto e você verá que uma URL do tipo meuapp-meu-projeto.nome-do-host-da-aplicacao foi liberada...
Neste caso, acessando a URL veremos apenas um "Hello World!".
Precisamos agora interagir via linha de comando usando o cliente OKD. O CLI antigo rhc está defasado!
Baixe o binário oc em okd.io/download.html. Até a presente data ele está na versão 3.10.0. Como eu estou no Linux, eu baixei o arquivo v3.10.0-dd10d17-linux-64bit.tar.gz.
Descompacte o v3.10.0-dd10d17-linux-64bit.tar.gz em um local de sua escolha.
Instale os pacotes git e python3-flask. Em sistemas baseado em Debian em um terminal execute...
$sudo apt install git python3-flask
Ascenda à pasta descompactada anteriormente e faça um clone do Git usado neste post...
$git clone https://github.com/OpenShiftDemos/os-sample-python.git
Agora você deve ter uma estrutura de diretório do tipo...
Vamos fazer o primeiro teste? Dentro da pasta em questão execute...
$python3 os-sample-python/wsgi.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Acessando o endereço 127.0.0.1:5000 você verá um "Hello World!". No terminal, pressione CTRL+C para finalizar.
Dentro da pasta os-sample-python crie uma pasta chamada static e outra de nome templates.
ATENÇÃO! Nunca deixe variáveis de ambientes expostas na web. Efetue o teste, remova ou desative a aplicação.
Dentro da pasta templates crie um arquivo de nome envinfo.html com o seguinte conteúdo...
<!DOCTYPE html> <html> <head> <title>env info</title> </head> <body> {% for param in osenv %} <p>{{ param }} = {{ osenv[param] }}</p> {% endfor %} </body> </html>
Como você pode ver, o template basicamente é um arquivo HTML contendo bloco de instruções para o renderizador; o Jinga. E, como todo HTML, não há necessidade de indentação como no Python; fiz aqui somente para melhor visualização.
O que estiver dentro de {% ... %} corresponde a um bloco de instrução, no nosso caso um FOR. E o que esta dentro de {{ ... }} corresponde a uma variável que será retornada. Para mais informações acesse flask.pocoo.org/docs/1.0/templating.
Neste ponto, a sua estrutura de diretórios estará assim...
/openshift-origin-client-tools-v3.10.0-dd10d17-linux-64bit │ ├── README.md ├── LICENSE ├── oc └── os-sample-python ├── config.py ├── README.md ├── requirements.txt ├── static ├── templates │ └── envinfo.html └── wsgi.py
Edite o arquivo wsgi.py e dentro dele deixe o seguinte conteúdo...
from flask import Flask, render_template import os application = Flask(__name__) @application.route("/") def hello(): return "Hello World!" # app para listar variaveis de ambiante @application.route("/envinfo") def envinfo(): # passando variaveis para o renderizar return render_template('envinfo.html', osenv = os.environ) if __name__ == "__main__": application.run()
Retorne novamente ao terminal, e na pasta do binário oc, execute...
$python3 os-sample-python/wsgi.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Em um navegador acesse 127.0.0.1:5000/envinfo e veja as suas variáveis de ambiente.
Funcionou? Ótimo! Agora é hora de enviar o seu APP para o OpenShift.
Certifique-se que o oc tenha permissão de execução com o comando...
$chmod +x oc
Acesse a sua conta no OpenShift, clique no menu do usuário e na opção Copy Login Command...
O comando será copiando para a área de transferência! |
Retorne ao terminal e cole o seu comando que deve parecer com....
$./oc login https://api.starter-us-west-2.openshift.com --token=iii...-CCC-ZZZ..._-UUU...
Logged into "https://api.starter-us-west-2.openshift.com:443" as "dotjunior@gmail.com" using the token provided.
You have one project on this server: "meu-projeto"
Using project "meu-projeto".
Uma vez logado, para enviar o seu programa, execute...
$./oc start-build meuapp --from-dir="./os-sample-python"
Uploading directory "os-sample-python" as binary input for the build ...
build "meuapp-02" started
Depois do comando acima, aguarde alguns segundos e o seu projeto estará online.
Se você acessar a URL do seu projeto você ainda terá o "Hello World!". Agora, acessando url-do-projeto-no-openshift/envinfo você obterá uma tela do tipo...
SÓ TESTE! NÃO deixe variáveis assim expostas. |
Bem, é isto! Agora é com você. O Python com Flask é bem simples de aprender.
Quer saber mais? Acesse...
https://blog.openshift.com/getting-started-python/
https://docs.okd.io/latest/cli_reference/
http://flask.pocoo.org/docs/
http://jinja.pocoo.org/docs/
Ah!!! Se você quiser acessar a linha de comando no OpenShift, no Console Web, em Applications -> Pods, pegue o nome do seu pod atual...
Anote o nome do Pod com status Running! |
Você também pode executar o comando oc get pods para obter uma lista dos seus Pods.
Com o nome do pod, execute o comando oc rsh nome-do-pod, por exemplo....
$./oc rsh dotjunior-17-p...x
(app-root) sh-4.2$
E lembres-se de fechar a sessão com o seu ambiente...
$./oc logout
Logged "dotjunior@gmail.com" out on "https://api.starter-us-west-2.openshift.com:443"
Paz a todos!
0 comentários:
Postar um comentário