[DevOps #02] - Rundeck
Olá pessoal, espero que estejam bem! Este é o segundo post da série semana DevOps, hoje iremos conhecer o rundeck, com um breve resumo e logo em seguida partiremos para a prática(hands-on)...
Resumo
Tópicos
- O que é o Rundeck?
- O Rundeck é gratuito?
- Rundeck Enterpise (fka Rundeck Pro)
- Recursos destaques do Rundeck
- Como o Rundeck difere do Jenkins?
- O Jenkins pode integrar com o Rundeck?
- Instalação do rundeck
- Criação de um projeto
- Adicionando um node
- Executando scripts
- Registro de logs
O que é o Rundeck?
Rundeck é uma ferramenta de código aberto que ajuda a definir, implantar e gerenciar automação. Ele fornece console da web, ferramentas CLI e uma API da web. Ele é escrito em Java e permite que você execute tarefas em um conjunto de nós. A polÃtica de controle de acesso baseado em função oferece mais flexibilidade para gerenciar diferentes permissões de acesso do usuário. As automações de processos são definidas como jobs. Você pode definir cada etapa do fluxo de trabalho, que pode ser um trabalho em si ou qualquer tarefa. O usuário pode fornecer opções de entrada na definição do trabalho. Essas opções podem ser usadas no fluxo de trabalho do trabalho como uma variável. Os valores das opções podem ser padrão, de múltipla escolha ou protegidos. O Rundeck é mais como uma ferramenta de orquestração que pode ser usada para gerenciar servidores ou ambientes em nuvem. Ele oferece suporte e se integra bem à s ferramentas e práticas modernas de DevOps.
O Rundeck foi projetado para aceitar a realidade de que infraestrutura e ferramentas heterogêneas são um fato da vida em qualquer organização de tamanho considerável. É por isso que a Rundeck não obriga a substituir os scripts, comandos ou ferramentas que você usa hoje. Você usa o Rundeck para executar fluxos de trabalho em sua automação existente (por exemplo, Ansible, Puppet, Chef, Jenkins, Docker, Kubernetes, ferramentas legadas e todos os seus scripts / APIs personalizados) ou automatizar rapidamente procedimentos manuais anteriores. Com o Rundeck, você pode reutilizar as habilidades de automação que já possui e adicionar novas conforme necessário.
O Rundeck é gratuito?
Rundeck Open Source é um software de código aberto gratuito licenciado sob a Apache Software License v2.0 , e você pode participar do projeto no GitHub. Para aqueles que escrevem e executam trabalhos Rundeck em pequena escala (por exemplo, uso limitado ou dentro de uma equipe), o Rundeck de código aberto oferece os recursos de que você precisa, gratuitamente.
Rundeck Enterpise (fka Rundeck Pro)
O foco do Rundeck Enterprise, é tornar o Rundeck pronto para produção em escala empresarial. O Rundeck Enterprise, desenvolvido com base no Rundeck de código aberto, é o pacote de software e serviços para executar o Rundeck como um serviço de nÃvel empresarial.
ConstruÃdo e testado para a empresa, o Rundeck Enterprise inclui recursos exclusivos (incluindo clustering / HA, fluxo de trabalho avançado, gerenciamento de ACL aprimorado, painéis / visualização aprimorados) e plug-ins exclusivos. Suporte profissional e serviços de integração também fazem parte do pacote de assinatura Rundeck Enterprise.
Recursos destaques do Rundeck
- Execução de comando distribuÃdo
- Fluxo de trabalho (incluindo passagem de opções, condicionais, tratamento de erros e várias estratégias de fluxo de trabalho)
- Sistema de execução plugável (SSH e WinRM por padrão; Powershell disponÃvel)
- Modelo de recursos plugável (obtenha detalhes de sua infraestrutura de sistemas externos)
- On-demand (Web GUI, API ou CLI) ou execução de trabalho agendada
- Armazenamento de chaves seguro para senhas e chaves
- PolÃtica de controle de acesso baseado em função com suporte para LDAP / ActiveDirectory / SSO
- Ferramentas de edição / gerenciamento de polÃticas de controle de acesso
- Histórico e registros de auditoria
- Use qualquer linguagem de script
Como o Rundeck difere do Jenkins?
Em palavras simples, Jenkins é empregado para desenvolvimento e Rundeck, para operações. Ambas as ferramentas compartilham certos recursos comuns, pois a interface de trabalho fornecida é para autoatendimento.
O Jenkins pode se integrar ao Rundeck?
O Jenkins pode lidar com as compilações para o ciclo de integração contÃnua de desenvolvimento e o acionamento do Rundeck é necessário para controlar a orquestração distribuÃda na implantação. Plugins estão disponÃveis para a integração do Jenkins com o Rundeck. Quando definimos um trabalho no Jenkins, podemos especificar a tarefa para acionar um trabalho após verificar o status de execução de determinado trabalho.
Da mesma forma, se os privilégios de administrador do Jenkins forem fornecidos ao Rundeck, ele poderá acessar os artefatos de trabalho. Assim, o Rundeck pode pegar os artefatos do trabalho do Jenkins e pode acionar a implantação. O mecanismo de reversão com Rundeck funciona bem quando uma implantação não funciona conforme o esperado. Podemos escolher quaisquer artefatos salvos do Jenkins como artefatos de implantação.
Instalação do rundeck
Para este laborátorio irei utilizar o Centos 7.8, na GCP. Para instalações personalizadas e/ou instalações em derivações do debian, docker ou execução via jar consulte a documentação oficial clicando aqui.
Requisitos de sistema
Sistemas operacionais suportados:
- Red Hat Enterprise Linux
- Oracle Linux
- CentOS
- Ubuntu
- Windows Server
Recursos mÃnimos:
- JAVA 8 or 11 Installed.
- 2 CPUs
- 2 CPUs per instance
- 4 GB RA
- 20 GB hard disk
Database
- Mariadb version
- Mysql version
- Postgres version
- Oracle version
Log store
- Sistema de arquivo
- Armazenamento de objetos compatÃvel com S3
Amazon EC2
- Tamanho da instância de m3.medium ou maior
- Um tamanho de instância de m3.xlarge ou maior se houver mais de 100 hosts
Root (ou administrador no Windows) não é necessário ou recomendado.
Se houver necessidade de acesso root, configure o usuário Rundeck para ter acesso via sudo.
Instalando em distribuições CentOS ou Red Hat Linux
Instale com yum
Você pode os comandos abaixo para adicionar o repo Rundeck yum e instalar o Rundeck:
rpm -Uvh http://repo.rundeck.org/latest.rpm
sudo yum install rundeck java
Iniciando Rundeck
sudo service rundeckd start
SaÃda
[root@srvcloud /]# sudo service rundeckd start
Starting rundeckd (via systemctl): [ OK ]
Para verificar se o serviço foi iniciado corretamente, abra os registros de log:
tail -f /var/log/rundeck/service.log
Logando pela primeira vez
- Navegue para http: // localhost: 4440 / em um navegador
- Faça login com o nome de usuário admin e senha admin Rundeck agora está instalado e funcionando!
Criando seu primeiro projeto
Como pode ser visualizado na imagem abaixo, existem diversas funcionalidades que podem ser definidas no escopo do projeto. Vale conferir, para este momento irei deixar todas essas opções como padrão.
Adicionando nós ao projeto
Executando comandos aleatórios
Opções de configurações dentro do projeto
Criação de JOB
Editando o workflow
Existem muitas opções nessa funcionalidade, vale a pena explorá-las uma a uma. Uma opção bem interessante é a de adicionar opções dentro do job e escolhe-las no momento da execução, essas opções podem ser definidas dentros dos scripts de execução.
Execução do JOB criado
Registro de atividades
Lisa de tarefas
Por hoje é isso, espero que este post tenha sido útil para lhe dar um norte e conhecer esta ferramenta e quem sabe utilizá-la no ambiente em que trabalha.
No comments