Utilizando o Ansible – parte 2

ansible-2_abertura

A primeira parte constituiu de uma introdução ao Ansible, apresentando alguns conceitos básicos, configurando um ambiente para executá-lo com ajuda do Vagrant e Virtualenv e até realizando um teste bem simples para saber se tudo estaria funcionando corretamente.

Nesta parte será a vez de explorar alguns dos módulos disponíveis na ferramenta, rotinas que são executadas remotamente nos nós e que controlam recursos do sistema como status de serviços, instalação ou remoção de pacotes, transferência de arquivos, execução de comandos etc.

Continuar lendo

Anúncios

Utilizando o Ansible – parte 1

ansible-1_abertura

O Ansible é uma ferramenta que automatiza as tarefas de provisionamento de software, gerenciamento de configuração e instalação de aplicações. Foi originalmente desenvolvido por Michael DeHaan e que através da Ansible Inc ofereceu suporte comercial à ferramenta até outubro de 2015 quando esta foi adquirida pela Red Hat. É compatível com diversas distribuições GNU/Linux — não só a “família RH” (CentOS, Fedora, RHEL etc) — e também outros sistemas operacionais.

E nesta primeira parte, a instalação e, claro, alguns testes básicos… 🙂

Continuar lendo

Um exemplo prático de coprocesso

sqlite_bash_cursor-1_abertura

Algo totalmente fora do planejado e feito mais como prova de conceito: uma “biblioteca” que permite a scripts escritos em Bash acessarem bases de dados do SQLite utilizando uma conexão persistente implementada através de um coprocesso. É uma abordagem bem diferente da execução do SQLite (via pipe) a cada consulta efetuada e mais próxima do conceito do database cursor utilizado em diversas linguagens de programação.

No ficou acabou ficando tão interessante que resolvi disponibilizá-lo como um projeto no GitHub com direito a uma documentação (bem) básica e até um programa de exemplo! 🙂

O comando ‘select’

select-1_abertura

O select é um comando interno do Bash e sua função é construir dinamicamente um menu a partir de uma lista de opções. Isto é, ele atribui um valor numérico para cada item, lista na tela, exibe um prompt e fica aguardando a seleção do usuário antes de seguir adiante.

E se você já utilizou o comando tzselect alguma vez na vida, saiba que já esbarrou com ele pela frente… 🙂

Continuar lendo

Coprocessos em Bash – parte 2

coproc-2_abertura

Na primeira parte o coprocesso foi tanto definido com também utilizado para a leitura de forma assíncrona da saída do comando tail mas até o momento foi apenas o monólogo com um programa enviando regularmente linhas de texto a serem impressas na tela. Nesta parte algo mais bidirecional com troca de dados com o coprocesso, uso de uma variável diferente de COPROC e, claro, mais algumas explicações. 🙂

Continuar lendo

Coprocessos em Bash – parte 1

coproc-1_abertura

Quando você executa um programa, pela linha de comando ou a partir de um script, o Bash se encarrega de executá-lo, aguardar a execução terminar, verificar se ela foi bem sucedida¹ e, sendo o caso, direcionar o resultado para a tela, arquivo etc…

No coprocesso² acontece algo diferente; já que o Bash o deixará executando em segundo plano e ao mesmo tempo redirecionará as entrada e saída padrão dele para descritores de arquivo que funcionarão como um canal de comunicação entre eles. É um recurso poderoso e ao mesmo tempo simples de implementar.

E nesta primeira parte, além de uma rápida introdução, a leitura da saída de um programa através de um coprocesso.

(¹) Ou em caso de erro notificar o corrido ou então desviar a execução para algum tratamento de exceções.

(²) Não inventei este nome! Eles são chamados assim mesmo pela documentação do Bash.

Continuar lendo