Rundeck

By | 23 februari 2016

Omschrijving

Rundek is een job schedular en kan worden gebruikt om bijv. binnen een TAP omgeving jobs te starten / schedulen zoals bijv. een yum update. Voordeel van Rundeck is dat het eenWebGUI heeft waardoor het aanmaken, wijzigen en schedulen van jobs eenvoudig is. De jobs worden onderhuids middels SSH naar een node (=server) uitgevoerd.

In deze uitleg wordt uitgegaan van een CentOS 7 server. 

Installatie

Rundeck is een Java applicatie en heeft dus een Java omgeving nodig, deze kan worden geinstalleerd met:

yum install java-1.7.0-

 

Om Rundeck middels yum te kunnen installeren en updaten moet in /etc/yum.repos.d een repo worden aangemaakt, deze kan worden gedownload / geinstalleerd middels:

rpm -Uvh http://repo.rundeck.org/latest.rpm
Hierna kan Rundeck middels yum worden geinstalleerd:
yum install rundeck

Om Rundeck na een reboot v/d server automatisch te laten starten:

systemctl enable rundeckd

Configuratie

firewall

De Rundeck applicatie draait op de linux server mgt-03-p op port 4440 en is te bereiken via http://{hostname}:4400 Hiervoor dient de firewall te worden opengezet:

firewall-cmd --zone=public --add-port=4440/tcp --permanent

gevolgd door:

firewall-cmd --reload

starten en stoppen

De Rundeck applicatie is een Java applicatie en kan worden gestart / gestopt met

systemctl start|stop rundeskd

Hou er wel rekening mee dat het even kan duren na een stop / start dat alle applicatie-onderdelen ook daadwerkelijk gestopt of gestart zijn.

authenticatie

Standaard kan worden ingelogd met username admin en password admin. Rundeck kan ook authenticeren tegen LDAP/Active Directory

nodes toevoegen

Na de installatie is alleen localhost zichtbaar als node. Om nodes toe te voegen wordt eerst een project aangemaakt, bijvoorbeeld EXAMPLE_T met als omschrijving "test omgeving" Na het aanmaken van een project zal in '''/var/rundeck/projects/{PROJECTNAAM}/etchet bestand recourses.xml worden aangemaakt met de standaard inhoud:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <node name="rundeck.example.com" description="Rundeck server node" tags="" hostname="rundeck.example.com" osArch="amd64" osFamily="unix" osName="Linux" osVersion="3.10.0-327.10.1.el7.x86_64" username="rundeck"/>
</project>
Voeg node regels toe en de resources.xml om servers toe te voegen die vanuit Rundeck gebruikt kunnen worden.

configuratie nodes

De jobs die in Rundeck worden aangemaakt worden met het rundeck useraccount middels ssh uitgevoerd op de betreffende node(s). Hiervoor moet op elke node de group / user rundeck worden aangemaakt en de publieke ssh key van de user rundeck op de rundeck server worden geplaatst in de rundeck user authorized_keys file in /home/rundeck/.ssh

groupadd rundeck
useradd -g rundeck rundeck

Log als root in op een te configureren node en wordt de user rundeck: su – rundeck maak als user rundeck de directory .ssh aan:

mkdir .ssh

De public key staat op de rundeck server in /var/lib/rundeck/.ssh/id_rsa.pub, copyeer de inhoud van deze key (bijv. door copy-paste tussen 2 terminal schermen) naar de betreffende node in /home/rundeck/.ssh/authorized_keys

Zorg dat de rechten goed staan: chmod 640 /home/rundeck/.ssh/authorzed_keys

Controleer of rundeck nu zonder problemen in kan loggen door op de rundeck server de user rundeck te worden (su - rundeck) en met ssh naar de geconfigureerde node een verbinding te maken.

Daarnaast moet de user rundeck rechten krijgen om jobs uit te kunnen voeren, voeg hiervoor de twee onderstaande regels toe aan /etc/sudoers

Defaults:rundeck !requiretty
rundeck ALL=(ALL)  NOPASSWD: ALL

Nu krijgt de rundeck user alle rechten, beter is het om na een testperiode de rundeck user alleen rechten te geven op die programma's die nodig zijn.