chake - Online in de cloud

Dit is de opdrachtchake die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online-emulator of MAC OS online-emulator

PROGRAMMA:

NAAM


chake - serverloze configuratie met chef-kok

INLEIDING


chake is een tool waarmee je meerdere hosts kunt beheren zonder dat je een chef-kok nodig hebt
server. Configuratie wordt beheerd in een lokale map, die waarschijnlijk onder zou moeten staan
versiebeheer met git(1) of iets anders. Configuratie wordt meestal geïmplementeerd via rsync
via SSH, en toegepast door aan te roepen chef-solo(1) via SSH op elke host.

CREREN HET OPSLAGPLAATS


$chake begin
[maak] nodes.yaml
[ mkdir] knooppunten.d/
[creëren] config.rb
[mkdir] config/rollen
[ mkdir] kookboeken/basics/recepten/
[maak] kookboeken/basis/recepten/default.rb
[maak] Rakefile

Een korte uitleg van de aangemaakte bestanden:

· nodes.yaml: waar u de hosts zult vermelden die u gaat beheren, en welke recepten u wilt
gelden voor elk van hen.

· nodes.d: een map met meerdere bestanden in hetzelfde formaat als nodes.yaml. Alle bestanden
overeenkomende *.yaml erin zal worden toegevoegd aan de lijst met knooppunten.

· config.rb: bevat de chef-solo configuratie. U kunt het wijzigen, maar meestal u
zal niet nodig zijn.

· config/roles: directory is waar u uw roldefinities kunt plaatsen.

· kookboeken: map waar u uw kookboeken opslaat. Een voorbeeldkookboek genaamd
"basics" is gemaakt, maar voel je vrij om het te verwijderen en echte kookboeken toe te voegen.

· Rakefile: bevat alleen de vereiste 'chake'-regel. Je kunt het uitbreiden met andere taken
specifiek voor uw intrastructuur.

Nadat de repository is gemaakt, kun je chake of rake noemen, zoals ze zijn
gelijkwaardig.

BEHEER KNOOPPUNTEN


Net nadat u uw repository hebt gemaakt, is de inhoud van nodes.yaml als volgt:

host1.mijnbedrijf.com:
uitvoeren_lijst:
- recept [basis]

U kunt uw hosts vermelden met rake nodes:

$ rake-knooppunten
host1.mijnbedrijf.com ssh

Voeg toe aan nodes.yaml om meer knooppunten toe te voegen:

host1.mijnbedrijf.com:
uitvoeren_lijst:
- recept [basis]
host2.mijnbedrijf.com:
uitvoeren_lijst:
- recepten [basis]

En Chake weet nu van je nieuwe node:

$ rake-knooppunten
host1.mijnbedrijf.com ssh
host2.mijnbedrijf.com ssh

VOORBEREIDING KNOOPPUNTEN TO BE MANAGED


Nodes hebben zeer weinig initiële vereisten om met chake te worden beheerd:

· De node moet bereikbaar zijn via SSH.

· De gebruiker waarmee u verbinding maakt met het knooppunt moet root zijn of sudo mogen uitvoeren (in
welk geval sudo moet worden geïnstalleerd).

A nota on wachtwoord vraagt: elke keer dat chake ssh op een node aanroept, kan het zijn dat je dit moet doen
typ uw wachtwoord in; elke keer dat chake sudo op het knooppunt aanroept, moet u mogelijk typen
in uw wachtwoord. Voor het beheer van een of twee knooppunten is dit waarschijnlijk prima, maar voor grotere
aantal knooppunten is het niet praktisch. Om wachtwoordprompts te vermijden, kunt u:

· Configureer op SSH-sleutels gebaseerde authenticatie. Dit is veiliger dan het gebruik van wachtwoorden.
Nu je toch bezig bent, wil je waarschijnlijk ook wachtwoordverificatie uitschakelen
volledig en sta alleen authenticatie op basis van sleutels toe

· Configureer wachtwoordloze sudo-toegang voor de gebruiker die u gebruikt om verbinding te maken met uw knooppunten.

CONTROLEREN AANSLUITING EN EERSTE HOST ORGANISATIE


Om te controleren of hosts correct zijn geconfigureerd, kunt u de controletaak gebruiken:

$ rake cheque

Dat zal de opdracht sudo true op elke host uitvoeren. Als dat voorbij gaat zonder dat het hoeft
wachtwoorden, daar ben je zeker van

· je hebt SSH-toegang tot elke host; En

· de gebruiker waarmee u verbinding maakt, heeft sudo zonder wachtwoord correct ingesteld.

$ rake cheque

TOEPASSEN KOOKBOEKEN


Voer het commando uit om de configuratie op alle knooppunten toe te passen

$ rake convergeert

Om de configuratie toe te passen op een enkel knooppunt, voert u het commando uit

$ rake convergeren:$NODE

Om een ​​enkel recept op alle knooppunten toe te passen, voert u het commando uit

$ rake toepassen[mijnrecept]

Om een ​​enkel recept toe te passen op een specifiek knooppunt, voert u het commando uit

$ rake toepassen:$NODE[mijnrecept]

Als u een recept niet in de opdrachtregel opgeeft, wordt u om een ​​recept gevraagd.

Om een ​​shell-opdracht op alle knooppunten uit te voeren, voert u

$ rake run[commando]

Als de opdracht die u wilt uitvoeren spaties of andere speciale tekens bevat, doet u dat
de shell, je moet ze citeren.

Om een ​​shell-opdracht op een specifiek knooppunt uit te voeren, voert u

$ rake run:$NODE[opdracht]

Als u geen opdracht op de opdrachtregel geeft, wordt u om een ​​opdracht gevraagd.

Voer uit om de bestaande taken te controleren

$ hark -T

SCHRIJVEN KOOKBOEKEN


Aangezien chake eigenlijk een verpakking is voor Chef Solo, moet u de [chef-documentatie](
).
Bekijk vooral de [Chef Solo-documentatie](
chef_solo.html>).

HET NODE BOOTSTRAPPEN PROCES


Wanneer chake voor de eerste keer op een knooppunt inwerkt, moet het het opstarten. De bootstrapping
proces omvat het doen van het volgende:

· installatie chef en rsync

· het uitschakelen van de chef-clientdaemon

· het instellen van de hostnaam

NODE URL'S


De sleutels in de hash die wordt weergegeven in nodes.yaml is een knooppunt-URL. Alle componenten van
de URL maar de hostnaam zijn optioneel, dus alleen het vermelden van hostnamen is de eenvoudigste vorm van
het specificeren van uw knooppunten. Hier zijn alle componenten van de knooppunt-URL's:

[backend://][gebruikersnaam@]hostnaam[:poort][/pad]

· backend: backend om te gebruiken om verbinding te maken met de host. ssh of lokaal (standaard: ssh)

· gebruikersnaam: gebruikersnaam om mee te verbinden (standaard: de gebruikersnaam op je lokale werkstation)

· hostnaam: de hostnaam om verbinding mee te maken (standaard: geen)

· poort: poortnummer om verbinding mee te maken (standaard: 22)

· /path: waar de kookboeken op de node moeten worden opgeslagen (standaard: /var/tmp/chef.$USERNAME)

EXTRA KENMERKEN


# HOOKS


U kunt rake-taken definiëren die worden uitgevoerd vóór het bootstrappen van knooppunten, vóór
het uploaden van configuratiebeheerinhoud naar knooppunten en vóór convergentie. Om dit te doen,
u hoeft alleen de overeenkomstige taken te verbeteren:

· bootstrap_common: uitgevoerd vóór het bootstrappen van knooppunten (zelfs als knooppunten al zijn uitgevoerd
gebootst)

· upload_common: uitgevoerd voordat inhoud naar het knooppunt wordt geüpload

· converge_common: uitgevoerd vóór convergentie (dwz lopende chef)

Voorbeeld:

taak :bootstrap_common do
sh './scripts/pre-bootstrap-checks'
einde

# VERSLEUTELD FILES


Alle bestanden die eindigen met overeenkomen .gpg en .asc wordt gedecodeerd met GnuPG voordat het wordt verzonden
het knooppunt. U kunt ze gebruiken om wachtwoorden en andere gevoelige informatie (SSL-sleutels,
etc) in de repository samen met de rest van de configuratie.

# REPOSITORY-LOKAAL SSH CONFIGURATIE


Als u speciale SSH-configuratieparameters nodig heeft, kunt u een bestand met de naam .ssh_config maken
(of welke bestandsnaam je ook hebt in de omgevingsvariabele $CHAKE_SSH_CONFIG, zie hieronder
voor details) in de root van je repository, en chake zal het gebruiken bij het aanroepen van ssh.

# LOGGEN IN TO A HOST


Om gemakkelijk in te loggen bij een van je hosts, voer je gewoon rake login:$HOSTNAME uit. Dit zal
gebruik automatisch de repository-lokale SSH-configuratie zoals hierboven, zodat u dat niet hoeft te doen
typ de hele tijd -F .ssh_config.

# RUNNING ALLE SSH AANROEPEN MET SOMMIGE VOORVOEGSEL COMMAND


Soms wilt of moet u uw SSH-aanroepingen voorafgaan met een voorvoegsel
commando om het bijvoorbeeld door een centraal uitgangsknooppunt te tunnelen. U kunt dit doen door
$CHAKE_SSH_PREFIX instellen op uw omgeving. Voorbeeld:

CHAKE_SSH_PREFIX=tsocks rake convergeren

Het bovenstaande zorgt ervoor dat alle SSH-aanroepen naar alle hosts worden aangeroepen als tsocks ssh [...]

# CONVERGEREND LOKALE HOST


Als u uw lokale werkstation met chake wilt beheren, kunt u een lokaal knooppunt declareren zoals
dit in nodes.yaml:

lokaal://bliksemschicht:
uitvoeren_lijst:
- rol[werkplek]

Om de configuratie op de lokale host toe te passen, kunt u de conventionele rake gebruiken
converse:bliksemschicht, of de speciale target rake local.

Bij het convergeren van alle knooppunten, zal chake knooppunten overslaan die zijn gedeclareerd met de local://
backend en waarvan de hostnaam niet overeenkomt met de hostnaam in de declaratie. Bijvoorbeeld:

lokaal://bureaublad:
uitvoeren_lijst:
- rol[werkplek]
lokaal://laptop:
uitvoeren_lijst:
- rol[werkplek]

Wanneer u rake converge op desktop uitvoert, wordt laptop overgeslagen en vice versa.

MILIEU VARIABELEN


· $CHAKE_SSH_CONFIG: lokaal SSH-configuratiebestand. Standaard ingesteld op .ssh_config.

· $CHAKE_SSH_PREFIX: opdracht om SSH-oproepen (en rsync over SSH) vooraf te laten gaan.

· $CHAKE_RSYNC_OPTIONS: extra opties om door te geven aan rsync. Handig om bijvoorbeeld large uit te sluiten
bestanden worden geüpload naar elke server.

· $CHAKE_NODES: Bestand met de lijst van te beheren servers. Standaard: nodes.yaml.

· $CHAKE_NODES_D: Directory met servers voor knooppuntdefinitiebestanden die moeten worden beheerd.
Standaard: nodes.d.

· $CHAKE_TMPDIR: map die wordt gebruikt om tijdelijke cachebestanden op te slaan. Standaard: tmp/chake.

· $CHAKE_CHEF_CONFIG: Chef-configuratiebestand, relatief ten opzichte van de root van de repository.
Standaard: config.rb.

Gebruik chake online met behulp van onworks.net-services



Nieuwste Linux & Windows online programma's