LPS:CFEngine3/Implementace

Z HelpDesk

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!