Porque utilizar Python para automatizar a sua infra-estrutura

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Porque utilizar Python para automatizar a sua infra-estrutura

Python é uma linguagem de programação interpretada, que foi criada no início dos anos 90 por Guido Van Rossum. A linguagem é open-source e é mantida pela Python Software Foundation, uma organização sem fins lucrativos que promove o crescimento da linguagem.

É uma linguagem de alto nível e multi-plataforma, sendo compatível com sistemas operacionais Linux / Unix, Microsoft Windows, MAC OS, dispositivos embarcados o sistema operacional móvel Android, ou seja o mesmo código pode ser executado em diversos sistemas operacionais.

Os casos de uso da linguagem são variados, possui suporte a diversos frame-works para desenvolvimento, bibliotecas gráficas, programação de rede e comunicação, segurança, scripts para automatização de tarefas, suporte aos principais bancos de dados existentes e uma vesta coleção de módulos que podem ser embutios nos programas desenvolvidos.

A linguagem traz em si a simplicidade na syntaxe, facilitando assim o seu aprendizado e sendo muito utilizada em ambientes de estudo de programação, além de trazer o suporte a orientação a objetos.

Uma das abordagens mais interessantes da linguagem é a utilização para automação de tarefas, onde os scripts desenvolvidos se encarregam das tarefas repetitivas, proporcionando aos administradores de sistema a dedicação do seu tempo em outras tarefas.

No quesito de automação de tarefas existe a possibilidade da criação de scripts que executem tarefas simples de sistema, como a sincronização de tempo utilizando um servidor NTP, como até mesmo a execução de bots para realizar tarefas no ambiente gráfico controlando movimentos de mouse e combinações de teclas.

Instalação

No Linux, a linguagem Python é compatível com a maioria das distribuições atuais e pode ser inclusive instalada pelos repositórios oficiais.

A Seguir é demonstrado como instalar o interpretador nas principais distribuições disponíveis atualmente:

Debian / Ubuntu

Na distrubuição Debian e seus derivados o Python vem instalado na versão 2.7, instalaremos a versão 3 por ser mais atual:

# apt-get install python3

Será exibido um aviso informando sobre as dependências a serem baixadas, pacotes instalados e espaço em disco utilizado, basta concordar:.

RedHat / CentOS

O processo para instalação do Python em sistemas RedHat e seus derivados como o CentOS é semelhante, utilizando o gerenciador yum:

# yum install python3

Windows

Para efetuar a instalação em sistemas Microsoft Windows, basta efetuar o download da versão mais recente do Python em https://www.python.org/downloads/.

 Após efetuar download do instalador, basta executar o mesmo e será apresentada a tela referente ao instalador:

As duas checkbox apresentadas acima devem ser marcadas para prosseguir corretamente com a instalação.

Em seguida, basta clicar em “Install Now” e o instalador prosseguirá com a instalação padrão do Python:

Serão instalados todos os componentes essenciais para que o Python funcione corretamente, e associados os tipos de arquivo correspondentes.

Após finalizada a instalação é exibida a tela abaixo, basta clicar no botão “Close” para finalizar:

Ao finalizar a instalação, abra o promtp de comandos do Microsoft Windows, e então digite “python”:

Utilizando o Python Shell

O melhor meio de aprender a linguagem Python, é através do Python Shell ou do utilitário Idle.

Para utilizar o Python Shell basta digitar python3 no prompt de comandos do Microsoft Windows ou através do console no Linux.

Para utilizar o Idle basta selecionar no diretório de arquivos instalados na sessão de desenvolvimento o Idle (Using Python 3.5), será exibida a versão do Idle conforme a figura abaixo sendo executado em um sistema Linux:

A partir do Idle, é possível executar qualquer comando da linguagem, digite por exemplo 3 + 3, e veja o resultado:

>>> 3 + 3

6

Somados dois números inteiros e o resultado está na linha seguinte, a seguir um exemplo atribuindo o valor a uma variável:

>>> soma = 3 + 3

>>> print(soma)

6

Entrada e saída de dados

O processo de entrada e saída de dados em Python é realizado com as funções input e print, a seguir um exemplo referente a estas duas operações:

>>> nome = input(“Escreva o seu nome: “)

Escreva o seu nome: Marcos

>>> print(nome)

Marcos

Na primeira linha, foi atribuido um valor em formato de string na variável nome, em seguida digitamos um nome qualquer e na terceira linha é impresso o valor da variável com a função print.

Utilizando módulos

O Python possui diversos módulos que podem ser utilizdos na integração de programas robustos, a seguir um exemplo utilizando alguns destes módulos.

OS

O módulo OS permitte obter informações do sistema operacional, como tipo de sistema, arquitetura e até mesmo executar comandos com a função system:

>>> import os

>>> os.name

‘posix’

Na primeira linha efetuamos a importação do módulo OS, em seguida foi utilizada a função name, onde foi retornado o valor “posix”, no caso um sistema Linux / Unix. Este valor seria retornado “nt” no caso de um sistema Microsoft Windows ou “ce” para Microsoft Windows CE.

Pyperclip

Com o módulo Pyperclip é possível gerenciar o clipboard do sistema, gerenciando tais informações:

>>> import pyperclip

>>> pyperclip.copy(“Teste módulo pyperclip…”)

>>> pyperclip.paste()

‘Teste módulo pyperclip…’

Na primeira linha  como o módulo OS, é necessário fazer a importação do módulo. Logo adicionamos ao clipboard a string “Teste modulo pyperclip”. Na linha seguinte colamos este módulo no clipboard com a função paste.

Automatizando Tarefas

Por se tratar de uma linguagem de alto nível, open-source com licença permissiva e multi-plataforma, o Python pode ser utilizado em diversas aplicações.

Em segurança, Python é utilizado para o desenvolvimento de diversas ferramentas, que atuam desde a elaboração de pen-test, detecção de vulnerabilidades, e auditorias de segurança.

Python e uma linguagem que trabalha muito bem os tipos de dados do tipo string, perfeita para formatar a visualização de logs e arquivos específicos no dia dia dos sysadmins. Economiza tempo analisando diversos arquivos, alem de possuir módulos para gerenciamento de arquivos de texto e até mesmo arquivos compactados em formato .zip.

Graças ao suporte disponibilizado pelos diversos módulos disponíveis, com a linguagem Python é possível trabalhar também com arquivos de planilhas me Microsoft Excel e LibreOffice Calc, arquivos em formato de editores de texto mais avançados como o Microsoft Word e LibreOffice Writer, além de total suporte a arquivos em formato .pdf, no qual podem ser gerados relatórios customizados de sistema operacional, segurança, inventário de software, além da possibilidade do sysadmin para criar processos inovadores.

No dia dia da administração de redes e infra-estrutura a linguagem Python também é útil no quesito de tempo, isso mesmo a linguam possui suporte a agendamento de tarefas e monitoramento de tempo em geral, podendo executaar tarefas como limpeza de cache, envio de notificações e emails, além de notificações gráficas e controle de mouse e telcado através do módulo pyautogui.

A seguir veremos alguns exemplos de como instalar o interpretador em sistemas Linux e Microsoft Windows na versão mais recente(3).

Com diversos benefícios que a linguagem Python oferece, a tendência é surgirem ferramentas escritas na linguagem que possuem diversas utilidades.

Podemos destacar o Ansible no que diz a automação de servidores, gerenciamento de configurações e inventário.

Ansible

O Ansible foi desenvolvido por Michael DeHaan pela Ansible Inc, logo adquirida pela RedHat. Seus requisitos de sistema são  a execução do protocolo SSH nos clientes e o Python 2.7.

Em seu funcionamento, o servidor Node ou Nó, envia requisições aos clientes definidos na lista de inventário via protocolo SSH.

O servidor executa diversos módulos no cliente,  como pacotes instalados, arquivos, estes são definidos em um arquivo .yml,.

Entretando, por não precisar de agentes na instalação, o Ansible se destaca diante das alternativas existentes, como Chef e Puppet.

Temos também outra vantagem é o suporte a praticamente todas as versões de Linux / Unix /BSD atuais.

O node trabalha com clientes Microsoft Windows utilizando o PowerShell e graças ao suporte multi-plataforma da linguagem Python.

Fabric

O Fabric é uma biblioteca e ferramenta de linha de comando Python que utiliza a s versões 2.5 e 2.7 da linguagem e assim como o Ansible utiliza o protocolo SSH para implementação de aplicativos ou tarefas de administração de sistemas.

Fornece um conjunto de operações locais e remotas, além de upload de arquivos e funções auxiliares de entrada de dados.

Envolve a criação de um módulo contendo funções, logo as executa por meio da ferramenta de linha de comando fab.

Além de usar através da ferramenta fab, os componentes do Fabric podem ser importados para outro código escrito em Python, fornecendo uma interface para o protocolo SSH utilizando a biblioteca Paramiko.

É importante citar o Oracle Orchestration Cloud Service, sendo possível executar chamadas REST, scripts e total compatibilidade com Python.
Referências

https://www.python.org – Site oficial onde estão contidas as versões da linguagem disponíveis para download, documentação, divulgação de vagas de emprego, recursos de aprendizado, informações sobre eventos, além decanais de comunicação com a comunidade.

https://www.python.org.br – Site referente a comunidade Python Brasil, trazendo documentações em português brasileiro, recursos de aprendizado, downloads, além de documentação via Wiki.

https://automatetheboringstuff.com/ – Trata-se de um excelente livro redigido pelo autor Al Sweigart. O livro  trata de diversos exemplos de automação de tarefas em linguagem Python com exemplos práticos.

https://www.ansible.com/ – Sistema de automação e gerenciamento de configurações escrito em linguagem Python.

https://cloud.oracle.com/pt_BR/orchestration – Oracle Orchestration Cloud Service para automatização de tarefas em cloud.

http://www.fabfile.org/ – Fabric, uma biblioteca de automação escrita em Python.

Assine a nossa newsletter

Receba atualizações e aprenda com os melhores

Veja mais

Você Quer Impulsionar Seu Negócio?

mande-nos uma mensagem e mantenha contato

Atendimento Mundo DevOps
Enviar via WhatsApp