Difference between revisions of "CFEngine3"

From PostgreSQL_wiki
Jump to: navigation, search
(Configuratie en bootstrap)
Line 1: Line 1:
 
De installatie is recht toe recht aan:
 
De installatie is recht toe recht aan:
 
root@host:~# apt-get install cfengine3
 
root@host:~# apt-get install cfengine3
Daarmee is het echter nog niet gedaan, dit is het enige makkelijke stuk. Cfengine3 kent een buitengewoon steile leercurve, vooral omdat alle voorbeelden op detail niveau zijn, er is geen integraal werkend voorbeeld. De waarde van de ervaring met [[Cfengine2]] is relatief, daarvoor zijn de verschillen tussen de beide verdie te groot.
+
Daarmee is het echter nog niet gedaan, dit is het enige makkelijke stuk. Cfengine3 kent een buitengewoon steile leercurve, vooral omdat alle voorbeelden op detail niveau zijn, er is geen integraal werkend voorbeeld. De waarde van de ervaring met [[Cfengine2]] is relatief, daarvoor zijn de verschillen tussen de beide versies te groot.
= symbolic links =
+
= Hobbels =
  +
== symbolic links ==
 
Het begint er gelijk mee dat de Debian implementatie heeft problemen met symbolic links. De Debian implementatie ven Cfengine3 behoeft wat aanpassingen voordat het gaat werken, "out of the box" werkt het niet. Het begint al bij het bootstrappen van de server, waarvoor meerdere aanpassingen nodig zijn.
 
Het begint er gelijk mee dat de Debian implementatie heeft problemen met symbolic links. De Debian implementatie ven Cfengine3 behoeft wat aanpassingen voordat het gaat werken, "out of the box" werkt het niet. Het begint al bij het bootstrappen van de server, waarvoor meerdere aanpassingen nodig zijn.
 
* Eerst krijg je een "SERIOUS SECURITY ALERT", vanwege een symbolic link;
 
* Eerst krijg je een "SERIOUS SECURITY ALERT", vanwege een symbolic link;
Line 17: Line 18:
 
"/etc/cfengine3"
 
"/etc/cfengine3"
 
</pre>
 
</pre>
  +
== Locatie masterfiles ==
 
cf-agent kijkt bij het bootstrappen hardnekkig naar /var/cfengine/masterfiles, ook al staat /var/lib/cfengine3/masterfiles gespecificeers in /var/lib/cfengine3/inputs/update.cf. In dit geval loopt de bootstrap wel door na het aanbrengen van een symbolic link.
 
cf-agent kijkt bij het bootstrappen hardnekkig naar /var/cfengine/masterfiles, ook al staat /var/lib/cfengine3/masterfiles gespecificeers in /var/lib/cfengine3/inputs/update.cf. In dit geval loopt de bootstrap wel door na het aanbrengen van een symbolic link.
 
root@host:~# ln -s /var/lib/cfengine3/masterfiles /var/cfengine/masterfiles
 
root@host:~# ln -s /var/lib/cfengine3/masterfiles /var/cfengine/masterfiles
Line 38: Line 40:
 
root@cfengine3:~#
 
root@cfengine3:~#
 
</pre>
 
</pre>
== Configuratie en bootstrap ==
+
== Classes of contexts ==
  +
Op dit punt zetten de makers van Cfengine de gebruikers op het verkeerde been. Een Cfengine claas is namelijk helemaal geen class in de betekenis die wij kennen in Obeject Oriented Programming, maar een boolean om aan te duiden of een conditie wel of niete geldt voor een bepaalde groep van systemen. In Cfengine3 geldt het woord class nog steeds, maar is het begrip contaxt geintroduceerd als alternatief voor class.
  +
= Configuratie en bootstrap =
 
In de directory /usr/share/doc/cfengine3/examples staan de bestanden die nodig zijn om de master te initialiseren:
 
In de directory /usr/share/doc/cfengine3/examples staan de bestanden die nodig zijn om de master te initialiseren:
 
failsafe.cf library.cf promises.cf site.cf update.cf
 
failsafe.cf library.cf promises.cf site.cf update.cf

Revision as of 12:58, 31 December 2012

De installatie is recht toe recht aan:

root@host:~# apt-get install cfengine3

Daarmee is het echter nog niet gedaan, dit is het enige makkelijke stuk. Cfengine3 kent een buitengewoon steile leercurve, vooral omdat alle voorbeelden op detail niveau zijn, er is geen integraal werkend voorbeeld. De waarde van de ervaring met Cfengine2 is relatief, daarvoor zijn de verschillen tussen de beide versies te groot.

Hobbels

symbolic links

Het begint er gelijk mee dat de Debian implementatie heeft problemen met symbolic links. De Debian implementatie ven Cfengine3 behoeft wat aanpassingen voordat het gaat werken, "out of the box" werkt het niet. Het begint al bij het bootstrappen van de server, waarvoor meerdere aanpassingen nodig zijn.

  • Eerst krijg je een "SERIOUS SECURITY ALERT", vanwege een symbolic link;
  • Dan gaat het fout bij het zoeken naar de masterfiles. Cfengine3 verwacht de masterfiles in /var/cfengine/masterfiles.

De installatie is Debianized, dus moet je update.cf ook Debianizen. Het originele bestand update.cf wijst naar /var/lib/cfengine3/inputs, dat een symbolic link is van /etc/cfengine. Dit veroorzaakt de security fout. Wijzig dus update.cf op de master in /var/lib/cfengine3/inputs/update.cf en /var/lib/cfengine3/mastefiles/update.cf:

Van
files:

  "/var/lib/cfengine3/inputs"
Naar
files:

  "/etc/cfengine3"

Locatie masterfiles

cf-agent kijkt bij het bootstrappen hardnekkig naar /var/cfengine/masterfiles, ook al staat /var/lib/cfengine3/masterfiles gespecificeers in /var/lib/cfengine3/inputs/update.cf. In dit geval loopt de bootstrap wel door na het aanbrengen van een symbolic link.

root@host:~# ln -s /var/lib/cfengine3/masterfiles /var/cfengine/masterfiles 

Pas dan lukt het om de master te bootstrappen:

root@host:~# cf-agent -v --bootstrap --policy-server 10.20.30.40

cf3>  -> Assuming the policy distribution point at: 10.20.30.40:/var/cfengine/masterfiles
 -> Attempting to initiate promised autonomous services...

 ** This host recognizes itself as a CFEngine Policy Hub, with policy distribution and knowledge base.
 -> The system is now converging. Full initialisation and self-analysis could take up to 30 minutes

cf3> -> Bootstrap to 10.20.30.40 completed successfully
root@host:~# crontab -l
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/sbin/cf-execd -F
root@cfengine3:~# ps ax | grep cf
11510 ?        Ss     0:04 /var/lib/cfengine3/bin/cf-monitord
11515 ?        Ss     0:02 /var/lib/cfengine3/bin/cf-serverd
14735 pts/0    S+     0:00 grep cf
root@cfengine3:~#

Classes of contexts

Op dit punt zetten de makers van Cfengine de gebruikers op het verkeerde been. Een Cfengine claas is namelijk helemaal geen class in de betekenis die wij kennen in Obeject Oriented Programming, maar een boolean om aan te duiden of een conditie wel of niete geldt voor een bepaalde groep van systemen. In Cfengine3 geldt het woord class nog steeds, maar is het begrip contaxt geintroduceerd als alternatief voor class.

Configuratie en bootstrap

In de directory /usr/share/doc/cfengine3/examples staan de bestanden die nodig zijn om de master te initialiseren:

failsafe.cf library.cf promises.cf site.cf update.cf

Kopieer deze bestanden naar /etc/cfengine3 en /var/lib/cfengine3/inputs.
Breng de organisatie specifieke wijzigingen in de configuratie bestanden aan, vooral de ip-ranges.
Zet in /etc/default/cfengine3 de servers aan.
Bootstrap de configuratie met:

root@host:~# cf-agent -v -d 2 --bootstrap Dit onderdeel handelt over de opzet van de master, tenzij anders vermeld.


Terug naar: Webhuis Infrastructuur