Python - Exercícios

Descrição

Depois de ler alguns conceitos, e fazer alguns pequenos scripts para auxiliar no dia-a-dia, decidi fazer o curdo de Python Fundamentals e o Python Programming for SysAdmins.

O primeiro curso terminou esta semana, e recomendo a todos que quiserem receber uma base estruturada da linguagem.

No curso a instrutura Mariana, nos deu vários exercícios que estimulavam a lógica, como:
  • Cadastro de um ou mais cursos para um determinado aluno;
    • Estimulando a criação e manipulação de listas, dicionários e funções;
  • Sistema de entrega de produtos via correio:
    • Estimulando a manipulação de dicionários e arquivos externos, herança, polimorfismo e conexão com banco de dados;
Parafraseando novamente o srº Marcus Greenfel, 'programar se aprende programando', então decidi procurar algumas outras fontes com exemplos diretos e práticos para exercitar tanto a lógica quando a linguagem.



Objetivo


  1. Listar plataformas para exercícios de python;
  2. Elucidar comentários sobre as ferramentas / sites;


Solo Learn






Este foi o primeiro contato que tive com uma plataforma de aprendizado e exercícios, inicialmente era o learn python, e a algum tempo passou a ser o solo learn, que além do python tem diversas outras linguagem, tando interpretada como compilada.

Usei pouco o site, e concentro o uso mais o app para Android o que ajuda muito, pois posso estudar em qualquer lugar.

Tanto o site quanto o app focam no aprendizado da linguagem, e não necessariamente em exercícios que forçam a lógica do programador.

A plataforma é separada por modulos que vão desde "O que é python?" a expressões regulares, e padrões da PEP8.






















Outro ponto interessante da plataforma é que ela te da um certificado na conclusão do curso, e também disponibilizar uma base para você programar/testar o conceitos aprendidos:









Por fim, recomendo a utilização da plataforma para pessoas que nunca tiveram contato com o python, e/ou para quem já tem um conhecimento básico e deseja aprofundar em outras classes e métodos da linguagem. 




Lista de Exercícios - Python Brasil





A lista de exercícios da pagina python brasil é ótima.
Ela possui os exercícios ordenados de forma separada por assunto, e dentro de cada assunto os exercícios começam fáceis e vão aumentando em nível de dificuldade e lógica.

O melhor do site (além da quantidade de exercícios) são as aplicabilidades em um mundo real, o que da um sentido ao programa. Um exemplo disso é este exercício:


Outro ponto bem interessante na página é o CookBook, que é literalmente uma lista de receitas, das algumas funções, classes e/ou scripts que podem vir a ser uteis em determinados momentos.
Nesta sessão encontramos desde arquivos simples para conexão em um banco, até scrips (basico) de threading e inteligencia artificial com o PyAIML.











Desta forma, o site do Python Brasil vem endereçar algo que o Solo Learn infelizmente não tem, que são exercícios voltados para o dia-a-dia, e para desenvolvimento da lógica.




HackerRank












O HackerRank junta toda a bagagem de explicação e o forum de discussões que o Solo Learn possui, e os exemplos práticos que o Python Brasil oferece, o que transforma ele em uma plataforma sensacional para estudos.

Assim como o Solo, ele é uma plataforma que contem outras linguagens (C, Ruby, Java), contudo também possui outros tracks que são muito interessantes, como:
  • Sistemas distribuídos;
  • Inteligencia Artificial;
  • Algoritimos;
  • Databases;













E também possui algumas competições que possuem inclusive bonificações para os primeiros colocados.

Para o sistema de aprendizado e testes, a nível de explicação ele é tão bom quanto o Solo, contudo tem mais opções de funções das classes que são apresentadas.

A interface gráfica é limpa, e voce pode alterar a visualização para ficar mais fácil para fazer os desafios de problemas, o que casa muito bem com o que a plataforma vem endereçar: 'Desenvolvimento da lógica, e aplicação da linguagem.' 











Por fim, o HackerRank é uma ótima ferramenta que vem para endereçar pontos que as outras não tinham, e assim facilitar no aprendizado.



Conclusão

As três sugestões casam muito bem, uso-as da seguinte forma:
  1. Solo: Via app no celular;
  2. Python BR: Exercícios para lógica e scripts uteis;
  3. HackerRank: Exercícios para lógica e plataforma para testes;
Be happy,  :)





Instalação Eve-NG (Unetlab)

Descrição

Para prosseguir no plano de automação em redes, além da instalação do python, iremos também precisar de um simulador para equipamentos de redes em geral.

Para simuladores estou usando o Eve-ng
Ele te da possibilidades de emular praticamente tudo que existe, desde de equipamentos básicos (router/switch), passando por equipamentos de complexidade maior (ASR/NXOS), até mesmo appliances (vWAAS, vWLC, ACS, ISE,F5,Juniper).



Objetivo


  1. Instalar o software de virtualização de redes (VM Player);
  2. Instalar o Eve-ng;
  3. Configurar o Eve para IOL;

VM Player

Para usar o Eve, precisaremos de um programa de virtualização de máquinas.
Desta forma segue o link para download da versão 6 do mesmo:


Após o download, basta instalar no padrão windows (next-next-finish), e abri-lo.

O programa deve iniciar sem nenhuma maquina, no meu caso já existem outras máquinas:



Eve-NG

A instalação do Eve, é bem mais complexa do que a do VMPlayer, para isso tirei alguns prints das partes mais importantes (parte do vmplayer).

ISO

Primeiramente efetue o download da ISO no site da UnetLab: EVE-NG

Criar máquina

Clique em "Create a new virtual machine", e selecione a opção "Installer disc image file (iso):".
Nesta opção selecione a ISO que acabou de baixar.

Installer disc image (iso):





















Por padrão o aplicativo tenta utilizar o "Easy Install", basta colocar qualquer coisa, pois isso não será utilizado posteriormente.



















Na próxima pagina será solicitado o nome da máquina, coloquei como Eve-NG.


Nesta parte, nos é solicitado o tamanho do disco que utilizaremos (20Gb), deixe também marcado a opção "Split virtual disk...", que basicamente vai aumentar o disco conforme ele for crescendo.



















Após isso, basta terminar a criação da máquina virtual.

Configuração Eve-NG

Para o startup da máquina (é baseada em ubuntu), basta seguir as opções padrões normalmente.
Lhe será perguntado algumas informações durante o startup, contudo nada de uma complexidade elevada.

Após terminar toda a instalação do SO, a vm vai iniciar e começar alguns updates automaticamente, não se assuste com isso, não vai adiantar reiniciar a máquina, pois ela vai recomeçar de onde parou.















Depois dos updates e instalação do Eve, o SO vai reiniciar mais duas vezes, sendo a segunda depois de voce configurar o IP de acesso (sugiro colocar como static), e estará pronto para utilização.




















Acesso Web


Após os acessos de IP configurados, conseguiremos acessar a ferramenta web, com o usuário e senha padrão (root senha: eve)























Packet Windows

Adicionalmente a instalação do Eve, é necessário a instalação de um pacote de integração.
A instalação é windows-like, então não vou entrar em detalhes, segue abaixo o link:

Passando IOLs para o EVE

Após a configuração da maquina virtual e da parte web, a ultima parte é fazer o upload da IOLs para o EVE, e assim conseguirmos montar as topologias.

Para isso vamos utilizar o software winscp, ou apenas o scp se você estiver utilizando linux.

Realizei o upload das seguintes imagens na pasta: /opt/unetlab/addons/iol/bin
  • L2-ADVENTERPRISEK9-M-15.2-20150703
  • L3-ADVENTERPRISEK9-M-15.2-M5.3
  • L2-ADVENTERPRISEK9-M-15.2-IRON-20151103
  • L3-ADVENTERPRISEK9-M-15.4-2T

Apenas realizar o upload das imagens não é o bastante para ela estar disponível no ambiente web, é necessário criar o arquivo iourc.
Ele é basicamente a licença para utilizar as IOLs.

Quanto tentamos por exemplo testar a IOL com o comando:

  1. cd /opt/unetlab/addons/iol/bin
  2. touch NETMAP
  3. LD_LIBRARY_PATH=/opt/unetlab/addons/iol/lib /opt/unetlab/addons/iol/bin/L3-ADVENTERPRISEK9-M-15.2-M5.3.bin 1
Nos é apresentado a tela de que existe um erro na licença, e nos pede para conseguir no site:


Contudo, acredito que com poucas googladas, é possivel conseguir um script em python (CiscoKeyGen.py), e roda-lo com python2.7.

Com isso basta rodar o comando abaixo:

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions


Criando a primeira topologia


Utilizar o EVE é bem facil, e nesta versão ele ficou ainda mais intuitivo.
Para criar uma topologia basta:

1 - Criar uma pasta (no exemplo criei a pasta CCNP).
2 - Criar um lab clicando no botão grifado em amarelo:




















3 - Clicar no Lag (EIGRP.unl), e depois em "open":

















4 - Clicar bom o botão direito em qualquer lugar da tela;
5 - Clicar em "add a new node", e selecionar o Cisco IOL:




















6 - Efetuar as conexões pelo botão "Connect node" do lado esquerdo da tela;
7 - Clicar no equipamento de origem, selecionar a interface de origem;
8 - Clicar no equipamento de destino, selecionar a interface de destino;


















9 - Iniciar todos os nodes pelo botão "More actions" do lado esquerdo da tela;





















10 - Para acessar utilizo o programa "superputty", o que preciso é apenas descobrir a porta que a aplicação disponibilizou para o router em questão.
Consigo isso parando o mouse em cima do equipamento sem clicar, e no rodapé da pagina vai aparecer o IP:PORTA:





















 11 - Assim, basta acessar o SuperPutty, selecionar o "Telnet", e colocar o IP:PORTA na parte de "Host"










Be happy,  :)

Python - Instalação Python3

O Python é uma linguagem de alto nível, que ganhou uma força gigantesca nos últimos anos.

Isso ocorre sobretudo pela facilidade que existe na programação, e na vasta quantidade de bibliotecas que ele possui.
Um grande amigo meu (Marcus Grenfell), costuma dizer que "o mais legal no python, é que independente do que você vai fazer, alguém já desenvolveu uma biblioteca para te ajudar" 

Isso vai desde uma simples biblioteca para receber argumentos do SO (os), até mesmo coletar resultados de jogos (pyfutebits).

Bem, neste post vou mostrar como eu instalo o python3 em uma distribuição CentOS 6.7.




  • Descompactar o pacote:
    • tar -xzvf Python-3.5.2.tgz
  • Instalar o kit de desenvolvedores:
    • Necessário sobretudo para os pacotes gcc
    • yum groupinstall 'Development Tools'
  • Instalar o SSL:
    • Mandatório para a compilação, e instalação do pip
    •  yum install openssl-devel openssl
  • Instalar libs necessárias e sqlite:
    • Opcional. Útil para gravações de informações
    • yum install zlib-devel bzip2-devel sqlite sqlite-devel 
  • Instalar mysql server
    • Opcional. 
    • yum install mysql-server MySQL-python
  • Entrar na pasta e iniciar a instalação:
    • cd Python-3.5-2
    • Fazer a instalação com o suporte para o pip3
    • ./configure --with-ensurepip=upgrade
    • make
    • make install
    Be happy,