== 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. ==== Liste der Features und Status ==== EL = Enterprise Linux (RHEL,SL,CentOS) || feature || EL || Ansible || Kommentare || || aaru ||6,7,8|| (./) || || || afs_backup ||7|| || || || afs_client ||6,7|| || || || afs_server ||6,7|| || || || ai ||7|| || || || arcx ||6,7|| || || || atlas ||5,6|| || obsolete? || || automount ||6,7,8|| || Wird ersetzt durch: https://repo.zeuthen.desy.de/ansible-role/autofs || || cfengine ||6,7|| || obsolet, davon wollen wir ja weg ;-) || || conmgr ||7|| || || || cta ||6|| || || || cups ||6,7,9|| (./) || wird ersetzt durch https://repo.zeuthen.desy.de/ansible-role/cups-server || || cvmfs ||6,7,8|| (./) || ersetzt durch https://repo.zeuthen.desy.de/ansible-role/cvmfs-client || || dcache ||7|| || || || dhcp ||7|| (./) || ersetzt durch https://repo.zeuthen.desy.de/ansible-role/dhcp-server || || doocsadm || 6,7|| || || || exclude_macs || 7|| || obsolete || || exports || 6,7|| || || || ganglia ||7|| || Use Case sollte in Zukunft mit Prometheus/Grafana abgedeckt werden || || gdm ||6,7|| || || || grid ||7|| || obsolet, ersetzt durch mehrere Ansible-Rollen (myproxy-server, gridftp-server, gridmap) || || group ||6,7,8|| || || || hostmgt ||7|| (./) || https://repo.zeuthen.desy.de/ansible-role/hostmgt || || hosts ||6,7|| || wird durch https://repo.zeuthen.desy.de/ansible-role/etc-hosts ersetzt (auf EL8 default) || || httpd ||7|| || || || infiniband ||7|| || || || iptables ||6,7|| || replaced by Ansible role https://repo.zeuthen.desy.de/ansible-role/nftables on EL8 || || iss ||7|| || || || kerberos ||6,7|| || wird durch https://repo.zeuthen.desy.de/ansible-role/kerberos-client ersetzt (auf EL8 erfolgt) || || kernel ||6,7|| || || || klogin ||6,7,8|| || || || kvm || 6,7 || || || || ldap ||7|| (./) || ersetzt durch https://repo.zeuthen.desy.de/ansible-role/openldap-server || || linux ||6,7|| || || || localdisks ||6,7|| || || || lustre ||7|| || || || mailsrv ||7|| || || || motd ||7,8|| (./) || https://repo.zeuthen.desy.de/ansible-role/motd || || mysql ||7|| || || || name_srv ||7|| || ersetzt durch https://repo.zeuthen.desy.de/ansible-role/bind-nameserver , Client-Seite (/etc/resolv.conf) fehlt noch|| || netgroup ||6,7,8|| || || || nfs || 5,6 || || obsolete || || noc || 7,9 || (./) || wird ersetzt durch https://repo.zeuthen.desy.de/ansible-role/noc || || nsswitch ||6,7|| || ab EL8 https://repo.zeuthen.desy.de/ansible-role/authselect || || osmng || 6|| || || || osmdevel || 6 || obsolete || || pac || 5,6|| || || || pam ||6,7|| || ab EL8 https://repo.zeuthen.desy.de/ansible-role/authselect || || passwd ||6,7,8|| || || || passwd_prog ||6,7|| || || || postgres || 7|| || || || radius ||7,9|| (./) || ersetzt durch https://repo.zeuthen.desy.de/ansible-role/radius || || reg_notebooks ||7|| || obsolete || || samba || 5,6|| || Ansible role? || || scout ||5,6|| || obsolete || || security ||6,7|| || || || sge ||7|| || braucht nicht portiert werden, SGE ist Auslaufmodell || || ssh ||6,7|| || wird durch https://repo.zeuthen.desy.de/ansible-role/openssh ersetzt (auf EL8 default) || || sudo ||5,6|| || obsolete since SL7, no clear replacement at the moment || || syslog ||6,7,8|| || || || tcp_wrapper ||6,7|| || sollte auslaufen, default auf EL8: "allow all" || || tidy_up ||6,7|| || || || tsm || 7 || || || || vamosw ||7|| || || || xntp ||6,7,|| || läuft aktuell mit der von Kickstart geschriebenen Konfiguration auf EL8 || || znmon ||6,7|| || || || zzz ||6,7|| || || == Konfigurationsmaster == Infos zum Konfigurationsmaster findet man [[KonfigMaster| hier]]