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:
About author
Você pode gostar também
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
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
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