== Konfigurationsmanagement mit VAMOS, Git, SUE, Cfengine und Ansible == <> ==== Beschreibung von SUE/SVN ==== Diese Infos sind teilweise veraltet. Sue wird seit 2020 mit Git verwendet. Außerdem findet eine Migration nach Ansible statt. ===== Konfiguration der Host Systeme ===== * einige Scripte unter /products/sue/etc/ können nach der Umstellung nicht mehr benutzt werden und rufen automatisch die neuen Scripte aus dem RPM DZ_sue * die sue Scripte befinden sich in /usr/sue/sbin, keine Links ins AFS mehr, (rpm DZ_sue) * /usr/sue/sbin/sue.update * neue Option -e(env) : es ist möglich, Variablen aus ''/usr/sue/var/env.pl'' zu überschreiben * es wird im noaction und verbose Modus informiert, welches Feature gerade abgearbeitet wird * /usr/sue/sbin/sue.checkout [-h] wird zum Auschecken verwendet, Pfad: /var/cache/suecf/repo * /usr/sue/sbin/sue.bootstrap * erzeugt alle Links unter /usr/sue/etc/ für die Konfiguration der Features und /usr/sue/var/env.pl * dafür wird auf dem vamosweb ein cgi Script mkconf2 gerufen, welches ein aktuelles tar-File generiert mit env.pl, den entsprechenden Featurelinks und mehr {{{ /usr/sue/sbin/sue.bootstrap -h usage: -d|-v set debug mode -h show usage -P generating sue env in this directory -F : to test a feature on a host (maybe before putting the code into git), examples: -F sudo:/tmp/test; /tmp/test/feature/sudo and /tmp/test/archive/sudo have to exist -F group:/afs/.ifh.de/common/installation/test }}} * /usr/sue/sbin/check_status überprüft Netwerk und ob znrepo verfügbar ist * /usr/sue/sbin/set_status ist ein Link auf check_status und wird verwendet, um nach fehlgeschlagenem Checkout oder Sue-Run den Zustand zu melden, aber weitere Mails zu verhindern * es gibt jetzt nur noch ein Script, welches beim Booten, für den Full- oder Updates Modus gestartet wird: /usr/sue/sbin/sue.run {{{ /usr/sue/sbin/sue.run -h check network connection and the availability of the git server, runs 'git pull; sue.bootstrap' and then sue.run with the given mode informs 'scout-linux' in case of problems Usage: -d set debug mode, no delay -v set verbose mode (more cfengine output), no delay -n set noaction mode, implied debug mode -s skip sue.bootstrap -m set mode: full,boot,update or now(default) nightly run in 'full' mode with delay run in 'boot' mode without delay daily run in 'update' mode for requested features ( by vamos workflow ) run in 'now' mode without delay for given features in future: daily run can switch to full mode with touchfeatures -F ALL ... -h show usage }}} * sue.run * während des Bootens darf sue.run nur im "boot" Modus laufen * Statuscheck * Check, ob /etc/nosue existiert * Delay ermitteln * Git pull * Ermittlung der Features, die abzuarbeiten sind (über Webservice von ''configsrv'') * Abarbeitung der Features ==== FAQ zu SUE/Cfengine ==== * Liste der konfigurierten Features * ''/usr/sue/sbin/sue.bootstrap'' generiert Liste/Verzeichnis * Anzeige mit ''/usr/sue/sbin/sue.update --list'' ==== Updates per Cron-Jobs ==== ===== tagsüber nur per workflow angestoßene Features (6-23 Uhr alle 10 Minuten) ===== * cron job: ''/usr/sue/sbin/sue.run -m update'' * läuft nur, wenn ''service sue_boot status'' ein OK zurückmeldet * das sind z.Z.: hosts,netgroups,passwd,klogin,ssh * oder manuell aktivierte Features per ''activate [-h]'' auf SL5/SL6: {{{ /usr/sue/sbin/activate -F list_of_features [-H list_of_hosts] [-N list_of_netgroups] }}} * nach der Abfrage der `ToDo`-Liste wird diese auf dem ''configsrv'' gelöscht * Beispiele: {{{ activate -F scout,sudo -N linux-server activate -F ANY -H mydesk # alle Features, die standardmäßig laufen, der Test erfolgt erst auf dem Client activate -F nagios -H ANY }}} ===== Vollständiger Lauf (ab 3 Uhr mit Verzögerung) ===== * cron job: ''/usr/sue/sbin/sue.run -m full'' ==== Nutzung von Git ==== Die Entwicklung von Sue/Git findet im gitlab auf repo.zeuthen.desy.de statt. Sue holt sich die Repos von einem der Git Mirror znrepo[1-3]. Um Zugriff zu https://repo.zeuthen.desy.de/infra/sue-cfengine zu erhalten bitte auf 1x Anmelden. Anschließen jemanden aus der Unix Gruppe bitten in die Gitlab Infra Gruppe aufgenommen zu werden. In https://repo.zeuthen.desy.de/profile/keys einen SSH Key hinterlegen oder alternativ immer per HTTPs arbeiten. * git clone https://repo.zeuthen.desy.de/infra/sue-cfengine.git * cd sue-cfengine * gewünsche Änderungen durchführen * wenn neue Dateien erstellt wurden. "git add $PATH" bzw. "git add ." im aktullen Pfad * git commit -am "meine aktuellen Änderungen sind das und das" * git push * bei https wird jetzt nach dem Usernamen und Passwort gefragt. Hier mit dem zna* Account sich anmelden. ==== Nutzung von SVN ==== Veraltet ===== Einchecken neuer Features ===== * auschecken * einchecken von ~TFEAT/, ~PFEAT/, ~TARCH/, ~PARCH/ * Kopieren der neuen Verzeichnisse ins eigene Repo und notwendige Anpassungsarbeiten durchführen * bitte vorher nach Möglichkeit aufräumen * dann mit ''svn add /...'' die Verzeichnisse hinzufügen * auch prüfen: cfengine Module, utils aktualisieren * svn commit -m 'Kommentar' * Testen und Umstellen auf SVN: mehrere Möglichkeiten: 1) man kann das private ausgecheckte Repository zum Testen verwenden, Beispiel: * ''touch /etc/nosue'' * ''/usr/sue/sbin/sue.bootstrap -F passwd:/afs/ifh.de/user/z/znawn/computing/svn/repo/test -d '' * jetzt verwendet sue.update den angegebenen Baum : /usr/sue/sbin/sue.update -n [-v] passwd * nach Beenden der Tests ''/usr/sue/sbin/sue.bootstrap;rm /etc/nosue '' * touch ~TFEAT//svn 2) * das feature auf ''noautotest'' stellen * touch ~TFEAT//svn * auf einem Host, der umgestellt wurde, prüfen: {{{ /usr/sue/sbin/sue.checkout /usr/sue/sbin/sue.bootstrap /usr/sue/sbin/sue.update -n [-v] }}} 3) * nach sue.checkout und sue.bootstrap kann man einzelne Variablen für Tests auf einem Host ändern * Beispiel: Repository für feature klogin auf SVN Repo umdefiniert {{{ # Syntax wie /usr/sue/var/env.pl cat /tmp/env.pl $ENV{"CF_PREFIX_KLOGIN"}='/var/cache/suecf/repo/test'; # Option -e erlaubt Überschreiben/Setzen von Variablen aus /usr/sue/var/env.pl /usr/sue/sbin/sue.update -n -e /tmp/env.pl [-v] }}} * nach notwendigen Anpassungen ''touch ~TFEAT//svn'' * bei Features, deren Repo vom Vamos Workflow aktualisiert wird, muß auch dafür gesorgt werden, dass SVN Repo aktualisiert wird. Das Feature ''host'' wurde bereits umgestellt, siehe ''/afs/ifh.de/project/VAMOS/prod/conf/workflow-config''. Das Script ''svn_commit'' checkt die Änderungen ein. * auf pallas als root ''kinit -k registry; cd /var/site/vamos; svn co `https://znrepo.ifh.de/svn repo` '' * unter dem Baum ''/var/site/vamos/repo'' Änderungen vom Workflow einpflegen lassen ==== Liste der Features und Status ==== EL = Enterprise Linux (RHEL,SL,CentOS) || feature || EL || Ansible || Kommentare || || aaru ||6,7,8|| (./) || || || afs_backup ||5,6|| || || || afs_client ||5,6|| || || || afs_server ||5,6|| || || || ai ||5,6 || || more to done || || arcx ||5,6|| || || || atlas ||5,6|| || || || automount ||5,6|| || || || cfengine ||5,6,7|| || || || conmgr ||5|| || || || csinfo12 ||6|| |||| || cta ||5,6|| || || || cups ||5,6|| || || || cvmfs ||5,6|| || || || dcache ||5,6|| || || || dhcp ||5,6|| || needs workflow support || || doocsadm || 5,6|| || || || exclude_macs || 5,6|| || || || exports || 5,6|| || || || ganglia ||5,6|| || || || gdm ||5,6|| || || || grid ||5,6|| || || || group ||5,6,7|| || || || hostmgt ||5,6|| || || || hosts ||5,6,7|| || || || httpd ||5,6|| || || || infiniband ||5,6|| || || || iptables ||5,6,7|| || || || iss ||5,6|| || || || kerberos ||5,6|| || || || kernel ||5,6|| || || || klogin ||5,6,7|| || || || kvm || 5 || || || || ldap ||5|| || || || linux ||5,6|| || || || localdisks ||5,6|| || || || lustre ||5,6|| || || || mailsrv ||5|| (Nov 2012)|| for SL6 more to do || || motd ||5,6|| || || || mysql ||5,6|| || || || nagios ||5,6|| || now server and client || || name_srv ||5,6|| || || || netflow ||5,6|| || || || netgroup ||5,6|| || needs workflow support|| || nfs || 5,6 || || || || nsswitch ||5,6,7|| || || || osmng || 6|| || || || osmdevel || 6 || || || pac || 5,6|| || || || pam ||5,6|| || || || passwd ||5,6,7|| || || || passwd_prog ||5,6|| || || || postgres || 5,6|| || || || products ||5|| || || || reg_notebooks ||5,6|| || radius server, ...|| || rlogsurf || 6|| || || || samba || 5,6|| || now with a regular archive, no longer uses /project/install || || scout ||5,6|| || || || security ||5,6,7|| || || || sge ||5,6|| || || || spamd ||5|| || || || ssh ||5,6,7|| || || || sudo ||5,6|| || || || syslog ||5,6|| || || || tcp_wrapper ||5,6,7|| || cleanup || || temp || 5,6|| || was since May 2012|| || tidy_up ||5,6, 7|| || || || trusted ||5|| || updated it, too || || tsm || 5,6 || || || || vamos ||5,6||todo|| || || vamosw || 6|| || || || vsftpd ||5(,6?)|| || || || xntp ||5,6|| || || || znmon || 5,6|| || || || zzz ||5,6|| || || == Konfigurationsmaster == Infos zum Konfigurationsmaster findet man [[KonfigMaster| hier]]