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:
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:
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
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.