Editing
CFEngine3
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= Cfengine debian = 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, het ontbreekt aan een integraal werkend voorbeeld, de uitleg is cryptisch en de taal is ontoegankelijk en ingewikkeld. De waarde van de ervaring met [[Cfengine2]] is relatief, daarvoor zijn de verschillen tussen de beide versies te groot. == Hobbels == Cfengine biedt veel voordelen, maar voordat het zover is moet de gebruiker een aantal lastige hobbels nemen. De voordelen in het gebruik van Cfengine zijn echter zo groot dat het de moeite waard is om in het nemen van de hobbels te investeren. === Techniek en ontwerp === Het duurt een tijd voordat de techniek en de werking duidelijk zijn. De eigenlijke kracht van Cfengine schuilt in een zorgvuldige opzet van een werkend geheel. Pas op het moment dat duidelijk is hoe het werkt is het mogelijk om een ontwerp te maken van een gelaagde structuur van promises die werkt voor het hele machine park. === Bootstrap lukt niet === Bootstrap is bedoeld voor het initialiseren van de server en de clients, dit lukt echter niet met de meegeleverde configuratie bestanden. Bootstrap zou op de server moeten lukken zonder enig configuratie bestand, nadat de meegeleverde configuratie in /var/lib/cfengine3/masterfiles zijn geplaatst. De server herkent zichzelf als policy hub, maar slaagt er niet in om de bestanden van masterfiles naar inputs te kopieren en dan verder te gaan. Aanwijzingen, ook met het hoogste debug niveau, om dit te repareren ontbreken. === Symbolic links === Het begint er gelijk mee dat de Debian implementatie problemen heeft 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: <pre> Van files: "/var/lib/cfengine3/inputs" Naar files: "/etc/cfengine3" </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. root@host:~# ln -s /var/lib/cfengine3/masterfiles /var/cfengine/masterfiles Pas dan lukt het om de master te bootstrappen: <pre> 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:~# </pre> === 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 == Bootstrap voert controles uit en doet twee dingen: * Kopieren van de bestanden uit /var/lib/cfengine3/masterfiles naar /var/lib/cfengine3/inputs; * Plaatsen van de public key in ppkeys; * Opnemen van cf-execd in crontab, waarmee de uitvoering van cf-agent is gegarandeerd. De huidige versie van cfegine3 vereist in ieder geval de verwijzing naar /etc/cfengine3 in plaats van naar de symbolic link /var/lib/cfengine3/inputs. === Bootstapping de master === Na de bootstrap van de master moeten de cfengine processen draaien op de master en moeten de bestanden uit de masterfiles directory in de inputs directory staan. De master is namelijk een client van zichzelf en dat biedt een mooi uitgangspunt.<br/> 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.<br> Breng de organisatie specifieke wijzigingen in de configuratie bestanden aan, vooral de ip-ranges.<br> Zet in /etc/default/cfengine3 de servers aan.<br> Bootstrap de configuratie met: root@host:~# cf-agent -v -d 2 --bootstrap === Bootstrapping de client === Het belangrijkste is dat de client na het bootstrap proces is aangesloten op de de master, hiervoor moet het cf-execd proces in crontab staan. Dit garandeert dat de client op gezette tijden het cf-agent proces opstart, waarmee de client configuratie management informatie van de server ophaalt en uitvoert. == Cfengine in het gebruik == === failsafe === Eisen aan failsafe. === Normaal gebruik === * http://my.opera.com/marcomarongiu/blog/2012/10/06/my-cfengine-policies-explained-part-1 * https://github.com/cfengine/design-center/tree/master/examples * http://www.cfengine.org/manuals/cf3-3.0.5.html * http://www.cfengine.org/manuals/cf3-tutorial.pdf * http://cfengine.com/manuals/cf3-solutions/ * http://blog.cf-learn.info/ * http://unix-heaven.org/node/55 <hr> Return to: [[CFEngine]]
Summary:
Please note that all contributions to Webhuis wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see
Project:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Voorpagina
Cobol and PostgreSQL
PostgreSQL
CFEngine
Proxmox
Webhuis Kennisbank
Basale infra
Webhuis bouwstenen
Webhuis configuratie
Webhuis Infra
Webhuis Support
Webhuis Raspberry
Opzet Applicaties
Business Applicaties
Community portal
Current events
Recent changes
Random page
Help
sitesupport
Tools
What links here
Related changes
Special pages
Page information