Pesquise...

Últimos Posts

Arquivo de Posts

2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo!

     
  •      
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

Total de Acessos


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