Pesquise...

Últimos Posts

Arquivo de Posts

2026 - 2025 - 2024 - 2023 - 2022 - 2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

     
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

Total de Acessos

Mostrando postagens com marcador Jinja. Mostrar todas as postagens
Mostrando postagens com marcador Jinja. Mostrar todas as postagens

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!