Rundeck - Um Poderoso Agendador de Tarefas

Neste artigo falarei um pouco da ferramenta Rundeck e seu poder para automatizar a execução de scripts/tarefas em diversos servidores, substituindo assim a crontab. Também será abordada a instalação desta fantástica ferramenta sem a necessidade de permissões de root, ou seja, poderá ser executado com qualquer usuário.

[ Hits: 15.011 ]

Por: Leonardo Berbert Gomes em 29/03/2020 | Blog: https://www.linkedin.com/in/leoberbert


Introdução



Acho que todos que estão lendo este artigo, já necessitaram realizar o agendamento de um script no Linux e optaram pela Crontab. Porém, a Crontab não é muito intuitiva e nem sempre lembramos a sintaxe correta de cada campo, neste caso sempre somos obrigados e recorrer para a sua documentação.

Um outro ponto a falarmos sobre a crontab, é que se temos um parque com diversas máquinas e precisamos executar tarefas em todas, somos obrigados a ir em uma por uma e realizar esta configuração, o que acaba sendo inviável devido à perda de produtividade.

Neste artigo apresentaremos uma ferramenta que fará com que todo esse trabalho se resuma a uma simples configuração do script a ser executado em um único local. Talvez nosso maior trabalho em si, seja realizar a configuração da relação de confiança da máquina servidor para os hosts onde serão executadas as respectivas tarefas.

Então, vamos ao que interessa!

Download e Instalação

Antes de começarmos, é importante ressaltarmos que o Rundeck é uma ferramenta desenvolvida em Java, logo ele possui a dependência dele.

1. Java:

Para não ficarmos presos às versões do Java, disponibilizarei o link da página de Download:
Será necessário realizar o download do arquivo conforme mostrado abaixo:
Linux: RUNDECK - Um poderoso Agendador de Tarefas
2. Rundeck:

Para que não ficarmos presos às versões do Rundeck, disponibilizarei o link da página de Download:
Será necessário realizar o download do arquivo conforme mostrado abaixo:
Linux: RUNDECK - Um poderoso Agendador de Tarefas

Utilizaremos um usuário chamado "rundeck" para realizar a instalação da ferramenta, este usuário não possui qualquer permissão especial.

Após realizar os downloads citados acima, vamos transferir os arquivos para nosso servidor. No meu caso, realizei o download dos seguintes arquivos:
  • Java: "jre-8u241-linux-x64.tar.gz"
  • Rundeck: "rundeck-3.2.3-20200221.war"

Transferirei o arquivo "jre-8u241-linux-x64.tar.gz" para o diretório Home do meu usuário, que neste caso é /home/rundeck.

Será necessário descompactar o arquivo utilizando o comando abaixo:

tar -xf jre-8u241-linux-x64.tar.gz

Após descompactar o arquivo acima, será criado o diretório "jre1.8.0_241". Porém, eu particularmente prefiro colocar um nome mais intuitivo neste diretório e para isso criaremos um link simbólico remetendo a este diretório, conforme mostrado abaixo:

ln -s jre1.8.0_241 java

O resultado esperado do comando acima, é que seja criado o link simbólico conforme mostrado abaixo:

ls -lrt
total 85612
drwxr-xr-x. 6 rundeck rundeck      211 Dez 11 07:47 jre1.8.0_241
-rw-rw-r--. 1 rundeck rundeck 87666306 Mar  9 14:33 jre-8u241-linux-i586.tar.gz
lrwxrwxrwx. 1 rundeck rundeck       12 Mar  9 15:05 java -> jre1.8.0_241


Para mantermos uma boa organização, removeremos o arquivo de instalação do Java com o comando abaixo:

rm -f jre-8u241-linux-i586.tar.gz

Será necessário editarmos o arquivo ".bashrc" do usuário escolhido e configurarmos a variável de ambiente do Java inserindo as linhas abaixo:

export JAVA_HOME=$HOME/java
export PATH=$JAVA_HOME/bin:$PATH

Em seguida, carregaremos as variáveis com o comando abaixo:

source .bashrc

Agora iremos validar se o Java encontra-se instalado, para isso utilizaremos o comando abaixo:

java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)


Por fim, iremos executar o Rundeck em nosso servidor. Por padrão, costumo sempre criar um diretório com um nome próximo ao do arquivo "war", faço desta forma para ficar mais fácil no momento de realizar um upgrade de versão, onde eu poderei simplesmente alterar o link simbólico e, em caso de problemas, basta retornar à versão anterior:

mkdir rundeck-3.2.3-20200221

Obs.: note que o diretório acima, possui o nome muito próximo ao do arquivo de download "rundeck-3.2.3-20200221.war".

Vamos agora nos organizar, criando um link simbólico apontando para a pasta do "rundeck".

ln -s rundeck-3.2.3-20200221 rundeck

E, por fim, iremos transferir o arquivo baixado "rundeck-3.2.3-20200221.war" para o diretório /home/rundeck/rundeck. O resultado esperado é que o retorno mostrado abaixo:

pwd; ls -lrt
/home/rundeck/rundeck
total 161004
-rw-rw-r--. 1 rundeck rundeck 164864031 Mar  9 14:52 rundeck-3.2.3-20200221.war


Vamos executar nosso rundeck pela primeira vez. Para isso utilizaremos o comando abaixo:

cd $HOME/rundeck/rundeck/; java -jar rundeck-3.2.3-20200221.war
Linux: RUNDECK - Um poderoso Agendador de Tarefas
Se todos os passos tiverem sido executados corretamente, o resultado esperado será o mostrado acima, onde poderemos acessar a interface WEB do Rundeck através do link abaixo, conforme é informado nos logs na linha "Grails application running at http://centos:4440 in environment: production":

Link: http://centos:4440

Obs.: altere o link acima de acordo com o hostname do seu servidor.
Linux: RUNDECK - Um poderoso Agendador de Tarefas


    Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração de Projeto e Hosts
   3. Criação de JOB
Outros artigos deste autor

Solucionando problemas no sistema de arquivos

Instalando Apache, PHP e PostgreSQL no Slackware 12 (compilando)

Monitorando as conversas do MSN

Centralizando logs com Promtail + Loki + Grafana

Linux, uma história sem fim!

Leitura recomendada

Aprendendo o básico do Emacs

Debian-BR CDD: Mais um excelente trabalho brazuca

Configurando Webcam com o Mercury

SIAGES: Uma oportunidade de negócio com software livre

Construa sua própria URA (IVR) no seu Asterisk

  
Comentários
[1] Comentário enviado por danniel-lara em 30/03/2020 - 08:21h


Muito boa essa ferrramenta ja utilizei integrado com Ansible , depois migrei para o AWX

[2] Comentário enviado por diegomrodrigues em 31/03/2020 - 22:10h

Muito interessante essa ferramenta, estou testando com alguns servidores.
Atenciosamente,
Diego M. Rodrigues


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts