LPS:CFEngine3/Implementace
Seznam toho, co CFEngine vlastně spravuje. Ve skutečnosti je toho trochu více (kontroluje, že běží NTP, ...). Zde jsou uvedeny ty nejdůležitější změny, které by mohly ostatní překvapit.
Jak zjistím, jestli něco spravuje
Pokud běží procesy cfengine:
ps xfa |grep cf- 22160 pts/0 S+ 0:00 \_ grep cf- 13626 ? Ss 140:15 /var/cfengine/bin/cf-execd 13634 ? Ss 143:35 /var/cfengine/bin/cf-serverd 13644 ? Ss 54:00 /var/cfengine/bin/cf-monitord
a chcete zjistit, jestli spravuje /etc/resolv.conf, pak stačí:
grep -r /etc/resolv.conf /var/cfengine/inputs/ /var/cfengine/inputs/services/base/fcopy.cf: "file[/etc/resolv.conf]" string => "default"; /var/cfengine/inputs/services/network/resolver.cf: "resolv_conf" string => "/etc/resolv.conf";
Protože CFEngine používá výhradně absolutní cesty, tak když grep nic nevrátí, CFEngine s ním nic nedělá.
Co vlastně spravuje
Toto je jen přehled, kam všude CFEngine šahá, pokud upravuje nějaký soubor, pak je v jeho záhlaví většinou komentář:
############################################################## # CF3 - spravuje CFEngine3 - vsechny upravy budou zruseny! # # ---------------------------------------------------------- # # Hint: pouzij /etc/sysctl.d/ nebo se domluv se spravcem # # http://support.zcu.cz/index.php/LPS:CFEngine3/Implementace # ##############################################################
ale:
- existují soubory (např. /etc/hostname) kde nejsou komentáře povoleny.
- soubory, které mají svůj vzor na AFS (nejčastěji /afs/zcu.cz/common/etc/), protože se hlídá, zda nejsou rozdílné (např. /etc/krb5.conf)
Systém
/etc/apt/apt.conf
Vlastní základní nastavení pro dpkg a apt, použij /etc/apt/apt.conf.d/
/etc/apt/sources.list
Kopíruje vlastní dle verze debianu, pro svoje rozšíření použij /etc/apt/sources.list.d/
/etc/apt/preferences
Kopíruje vlastní dle verze debianu, pro svoje rozšíření použij /etc/apt/preferences.d/
/etc/hosts.allow
Řádkové úpravy pro jednotlivé služby, možno upravovat, pokud tam něco bude CFEnginu chybět, tak si to doplni.
/etc/krb5.conf
Kopíruje se dle vzoru z /afs/zcu.cz/common/etc/
/etc/nagios/nrpe.d/zcu.cfg
Kopíruje se dle vzoru z /afs/zcu.cz/common/etc/nagios/nrpe_local.cfg
/etc/services
Přidávají se řádky pro naše služby, zatím jen pro afsadm
/etc/resolv.conf
Kopiruje se resolv.conf dle doporuceneho nastaveni od hostmastera, prakticky odpovida /afs/zcu.cz/common/etc/resolv.conf.linux
/etc/ssh/sshd_config
Udržuje požadovanou konfiguraci sshd, nelze obejít.
/etc/sudoers
Provádí se řádkové úpravy, v plánu generovat z template.
/etc/sysctl.conf
Používá se template, pro lokální úpravy je možné využít /etc/sysctl.conf.d/, ale lepší je integrace do template.
/etc/vim/vimrc.local
Předkonfigurovaný vim, nastavuje se obarvení syntaxe, změny barev u komentářů a pod. Pokud chceš změnu, domluv se se správcem.
/root/.k5login
Spravuje CF3, nové uživatele přidává, pokud je někdo navíc přidán ručně, začne na to upozorňovat. Nutné informovat správce.
/root/.screenrc
Předkonfigurovaný screen, pokud chceš změnu, domluv se se správcem.
Cron
/var/spool/cron/crontabs/root
Řádkové úpravy, hlídá že tam jsou ty řádky které tam chceme a které tam být naopak nemají být. Je možné upravovat příkazem crontab -e, pokud smažete nebo změníte nucený řádek, pak jej tam CFEngine znovu přidá.
FibreChannel
Pokud je nalezena FC karta (dle lspci) pak jsou nainstalovány balíky pro správu fibrechannelu (multipath-tools, firmware-qlogic, qla-tools), pokud karta není, pak jsou balíky odstraněny.
Firewall
Konfigurace
Konfigurační soubory /etc/iptables/rules.v4 a /etc/iptables/rules.v6 jsou generovány z templatů CFEngine3, jakýkoliv zásah do nich bude znamenat vrácení do původního stavu a restart firewallu. Jediná možnost ovlivnit konfiguraci je přes úpravu politiky CFEngine.
Soubory jsou načítány skriptem /etc/init.d/iptables-persistent z balíku iptables-persistent
Změna firewallu
Pokud není možné provést úpravu firewallu přes CFEngine, pak je možno vytvořit změnu přímo příkazem iptables. To vydrží ale jen do:
- restartu => nastartuje se firewall dle konfigurace v /etc/iptables/
- změně v /etc/iptables/ => provede se aktualizace a restart firewallu
- vypnutí firewallu => pokud není politika pro INPUT nastavena na DROP, pak to znamená vypnutý firewall a to není přípustné => restart firewallu
Vypnutí firewallu
Je nutné vypnout také CFEngine, prože se jinak bude snažit firewall nahodit:
/etc/init.d/cfengine-community stop /etc/init.d/iptables-persistent flush
Pro jeho obnovu stačí aktivovat CFEngine:
/etc/init.d/cfengine-community start
Přečti si, co znamená vypnutí CFEngine.
NRPE - Nagios
Kontroluje a udržuje celou část potřebnou pro monitoring stroje přes NRPE, tedy potřebné balíky a konfigurace v /etc/nagios/.
Oracle
/dev/shm
Oracle vyžaduje (oproti Debianu) mít /dev/shm místo /run/shm jinak nefunguje. CFEngine hlídá, že tomu tak je, že má také vhodnou velikost a místo /run/shm vytváří symlink.
Profil
aktuálnost /etc/skel/ -> /root/
Hlídá se aktuálnost vzorů v /etc/skel/ proti souborům v /root/, změny CFEngine hlásí, nevrací zpět.
/root/.bash_aliases
Řádkové úpravy, přidání některých aliasů, např. ohledně fibrechannelu.
Syslog - syslog-ng
Soubor /etc/syslog-ng/syslog-ng.conf je brán jako základ z Debian balíku podle verze nainstalovaného syslogu, protože konfigurace syslogu se hodně mění s každou verzí. Specifické věci (pro ZČU jde o logování na centrální log servery a výpis na /dev/tty63) jsou uloženy do /etc/syslog-ng/conf.d/50zcu-client.conf. Ostatní soubory jsou systémové a je možno si do /etc/syslog-ng/conf.d/ přidat svoje pravidla.
Virtualizace - Xen
Pokud je stroj virtuální, pak jsou některé balíky odstraněny a opačně. Jde o balíky regulující výkon CPU nebo pro SMART disků.
WebAuth
Na stroji zařazený do třídy group_webauth se předpokládá běh apache s webauthem (nikoliv webkdc). Udržuje potřebné balíky a konfiguraci webauthu v /etc/apache2/mods-available/ včetně symlinků v mods-enabled. Dále hlídá práva v /etc/webauth/
Jsem zoufalý aneb jak vypnout CFEngine
CFEngine je monitorován Nagiosem, takže pošlete (upozorněte) správce serveru, proč jste to vypnuli a domluvte se na správném řešení. Sice před jeho nastartováním se snažím pídit po důvodech (hledám kdo a proč), ale pokud je nenajdu, cfengine nastartuji.
Dočasně
/etc/init.d/cfengine-community stop
Vydrží jen do rebootu nebo opětovného startu cfengine.
Na (skoro) věčné časy
/etc/init.d/cfengine-community stop vim /etc/default/cfengine3
Neupravujte /etc/init.d/cfengine-community (např. vložením 'exit 0'), protože při aktualizaci balíku se může přepsat a cfengine opět nastartuje.
Na věčné časy nebo do reinstalace
apt-get remove --purge cfengine-community
Nepoužívat bez vědomí správce!