Descubra como o Rundeck pode otimizar suas tarefas de sysadmin

Descubra como o Rundeck pode otimizar suas tarefas de sysadmin

O que é?

Rundeck é mais que simplesmente um software. Trata-se de uma plataforma open-source com interface web, que auxilia o administrador na automatização de rotinas operacionais em data-center ou ambiente cloud. O Rundeck provê um grande número de funcionalidades que ajudam a economizar tempo com tarefas do dia a dia de qualquer sysadmin. Além disso, o Rundeck combina tarefas complexas, em shell-script ou Python, que podem ser agendadas e facilmente executadas em uma série de hosts, aqui denominados nodes. 

Vantagens

O Rundeck é bem desenvolvido, possui atualizações constantes e ampla documentação disponível. Possui um ótimo desempenho, design e compatibilidade com outras tecnologias, tais como, shell script, python, ansible, e muitas outras. O Rundeck é gratuito, embora possua uma versão comercial. Em suma, o Rundeck é seguro, podendo ser utilizado em ambientes de produção sem maiores preocupações.

Desvantagens

Existem pouquíssimas desvantagens em utilizar o Rundeck. Embora traduzido, possui uma tradução incompleta, não abrangendo todos os menus e opções disponíveis. Além disso, a configuração dos nodes é por vezes, em caso de uma quantidade grande de máquinas, um pouco trabalhosa. Adicionar o usuário de trabalho em cada node pode ser um pouco cansativo e demorado, mas uma vez configurados, passamos a economizar muito tempo nas tarefas de sysadmin.

Configurando os Nodes

Existem diversas formas de configurar um node no Rundeck. Na versão paga, é disponibilizado um assistente que facilita essa configuração. Porém, em nosso caso utilizaremos a versão community, onde os nodes são adicionados em formato YAML, ou simplesmente YML. Uma grande vantagem na utilização desse formato, é a possibilidade de versionamento da infraestrutura utilizando GIT. 

Para configurar o Rundeck para utilizar o formato YAML, seguiremos os seguintes passos: Configuração do Projeto, Editar Nós. Na tela abaixo, selecione a quarta opção, File.

Após selecionar File, especifique em formato, o tipo resourceyaml. Em File Path, selecione o arquivo /var/lib/rundeck/projects/nomedoprojeto/nodes.yml. Marque a opção Generate, Include Server Node e Writable. Após, clique em salvar.

Abaixo,  segue um exemplo de configuração de um node. A sintaxe é simples e bem intuitiva. Embora possa parecer um pouco complicada, é mais simples do que a alternativa disponível, o tradicional XML

É importante tomar cuidado com a tabulação dos arquivos YAML, sempre utilize dois espaços e nunca tab. 

Adicionando usuário do Rundeck

Para garantir que a configuração funcione, será necessário adicionar um usuário para o Rundeck no node. Esse usuário pode ser adicionado da mesma forma que qualquer outro usuário. Em nosso caso, ele será chamado de rundeck, porém isso é opcional. Para isso seguiremos os seguintes passos:

  • Criar o usuário rundeck em todos os nodes;
  • Adicionar o usuário ao sudoers;
  • Copiar a chave do rundeck para os nodes;

Adicionando usuário do Rundeck

Para adicionar o usuário rundeck, executaremos o seguinte comando no terminal:

sudo useradd -r -s /bin/bash -m -d /var/lib/rundeck rundeck

Adicionando usuário ao sudoers

Para que tudo funcione corretamente, é necessário garantir permissões de super-usuário ao recém adicionado usuário rundeck. Faremos isso através do SUDO, editando o arquivo /etc/sudoers. Para isso, basta adicionar a seguinte linha: 

rundeck ALL=(ALL:ALL) ALL

Criando a chave

Por segurança, a arquitetura do Rundeck foi construída para trabalhar com chaves RSA. A criação do par é simples, bastando executar o comando abaixo no seu terminal. 

ssh-keygen -m PEM -N ‘’ -f keys/rundeck

Importando a chave

Para finalizar a configuração, basta copiar a chave que está disponível em ~/keys/rundeck/rundeck.pub para dentro do arquivo /var/lib/rundeck/.ssh/authorized_keys do node. Isso pode ser feito através do seu editor de textos preferido, copiando e colando. Pronto, a configuração está completa!

Executando comandos ad-hoc

Uma vez que os nodes estejam configurados, podemos executar comandos remotamente. Para isso, acesse “Comandos”, em seguida selecione “Mostrar todos os nós” no menu representado por uma seta.

Na imagem abaixo, observamos a execução com sucesso do comando uptime em quatro nodes diferentes.

Jobs

O Rundeck é uma incrível ferramenta para os administradores. Uma das principais vantagens está nos JOBS. Mas o que são jobs? Os jobs são tarefas pré-configuradas no rundeck e que podem ser executadas de forma arbitrária ou automática. Em outras palavras, você pode escrever um script complexo que será executado em poucos passos por pessoas com menor conhecimento. 

Para nosso exemplo, escreveremos um script responsável por reiniciar o servidor web no node, mas poderia ser um backup de uma base SQL, por exemplo. Consideremos para tanto, o fato de que distribuições diferentes nomeiam seu servidor web de forma diferente. No Centos, por exemplo, é chamado de httpd, já no Ubuntu se chama apache2.

Sabendo que nossos nodes são Ubuntu ou Centos, fica fácil escrever um pequeno script para identificar qual das duas distribuições está sendo utilizada. Após identificada, basta reiniciar o servidor web de acordo com o nome apropriado do serviço. A melhor forma administrar esse script seria hospedá-lo no GIT, permitindo versionamento. Porém, em nosso exemplo, para fins didáticos, realizaremos a configuração diretamente no Rundeck.

Adicionando um JOB

Após clicar no menu JOBS dentro do projeto desejado, na tela seguinte, selecione Jobs Actions em seguida em New Job.

Na sequência, devemos informar um nome e descrição para o nosso job. Na guia Workflow, em Add Step selecionaremos Script. O conteúdo é o demonstrado na imagem anterior. Para finalizar, basta salvar o nosso job.

Executando o job

Uma vez que o job foi criado, executá-lo se torna uma tarefa fácil. Na página de jobs, selecione o recém criado e clique em Run Job Now.

Viu como é fácil?

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Como montar seu próprio Registry Privado com Harbor
Próxima Descubra como o Helm facilita a instalação de aplicações no Kubernetes

About author

Rodrigo Prestes
Rodrigo Prestes 2 posts

Analista Linux, apaixonado por tecnologia e música eletrônica.

View all posts by this author →

Você pode gostar também

DevOps

Autenticando terraform na Google Cloud sem compartilhamento de chaves

O terraform atualmente é, de longe, a ferramenta de infraestrutura como código mais popular no mundo de TI e de Cloud. Ele tem suporte aos principais provedores de cloud e

Infraestrutura TI

Descubra como monitorar sua JVM com Prometheus e Grafana

Saiba o que ocorre com a sua JVM! O monitoramento e a visibilidade do ambiente de TI sempre foram de grande importância para seus gestores e administradores, seja para avaliação

Monitoramento TI

Guia definitivo para instalação e configuração do Graylog, MongoDB e Elasticsearch

Este post tem como objetivo apresentar um guia para instalação e configuração do Graylog, MongoDB e Elasticsearch com alta disponibilidade utilizando um cluster com Docker Swarm. A solução independe de sistemas operacionais pois