Deploys


Een "deploy" is een groep of uitvoerbare acties en configuraties die je toelaat om automatisch software te installeren of verwijderen, configuratiebestanden te parsen en te uploaden, commando's uit te voeren op een doelsysteem of een afzonderlijk (ingesteld) systeem, services en systemen monitoren, en in het algemeen je infrastructuur op te zetten en het klaar te maken voor productie in een enkele klik

De deploys kunnen terug gevonden worden of ge-upload worden naar de "data/deploys/" map op uw ASYD installatie.


Deploy structuur:


  • Een map met de naam van de deploy (bvb data/deploys/LAMP. Deze naam zal weergegeven worden op de ASYD web interface in het "Deploys" gedeelte.
  • Een "def" bestand (bvb data/deploys/LAMP/def) met de definitie die bepaalt wat de deploy zal doen - packages installeren, commando's uitvoeren, configuraties uploaden, voorwaarden, etc...
  • Optioneel, een "def.sudo" bestand (bvb data/deploys/LAMP/def.sudo) in het geval we het willen uitvoeren als super user in plaats van de standaard "def", wanneer we een non-root gebruiken.
  • Optioneel, een "undeploy" bestand (bvb data/deploys/LAMP/undeploy) met de stappen nodig om een Deploy ongedaan te maken (undeploy).
  • Optioneel, een "undeploy.sudo" bestand (bvb data/deploys/LAMP/undeploy.sudo), zijnde het "undeploy" equivalent van "def.sudo"
  • Een "configs" map met de configuratie bestanden en mappen die geüpload moeten worden. (bvb data/deploys/LAMP/configs/apache/apache.conf).

Opmerking over "def.sudo": dit definitie bestand zal enkel uitgevoerd worden in plaats van het normale "def" bestand wanneer de gebruiker die op het remote systeem uitvoert niet "root" is en het bestand bestaat. Dit is vooral nuttig op Ubuntu machines, die geen root gebruikers gebruiken. Voor de machines met de root gebruiker wordt het standaard "def" bestand uitgevoerd, ongeacht of het "def.sudo" bestand bestaat of niet. Als het bestand niet bestaat zal het standaard "def" bestand uitgevoerd worden, ook voor niet-root gebruikers. Hetzelfde geld voor "undeploy.sudo"


Het "def" bestand:


Zowel het "def" als het "def.sudo" bestand, gebruikt voor het definiëren van deploys, accepteren volgende commando's en parameters. Dezelfde regels zijn van toepassing op de "undeploy" en "undeploy.sudo" bestanden.

Let top de dubbelpunt - : - na de voorwaarden en voor de argumenten, aangezien deze nodig zijn om de deploy te doen werken.

0. commentaar

Iedere lijn die start met een hashtag (#) wordt geïnterpreteerd als commentaar en zal niet uitgevoerd worden. Er is een speciaal soort commentaar, de "alert", die een waarschuwing geeft voor het uitvoeren van een deploy. Dit is nuttig wanneer je deploy aangepaste variabelen nodig heeft of wanneer je wil dat de gebruiker zaken controleert voor het uitvoeren van een deploy. Belangrijk om weten is dat deze alerts enkel werken op "def" bestanden, en niet op "def.sudo" bestanden. De alerts worden toegevoegd door de lijn te starten met # alert:

Syntax: # Normale commentaar

Syntax: # Alert: Bericht dat getoond moet worden voor de deploy uitgevoerd wordt

1. install / uninstall

Het installatie commando kan gebruikt worden om een lijst van packages (gesplitst door een spatie) te definiëren die moeten geïnstalleerd worden op het doelsysteem> Intern zal ASYD kijken wat soort systeem het de packages op zal installeren, en zal de bijpassende package manager gebruiken. Optioneel kan je voorwaarden definiëren - Lees het onderdeel Voorwaarden voor meer informatie. Op Solaris systemen accepteert het ook een extra argument om de package manager te specificeren. Lees Solaris voor een meer gedetailleerd overzicht.

Syntax: install [if <voorwaarde>]: package_a package_b package_c

Het uninstall commando werkt net als het install commando, maar voor het verwijderen van packages. Het accepteert ook voorwaarden en package manager, in het geval van Solaris

Syntax: uninstall [if <voorwaarde>]: package_a package_b package_c

2. config file

Dit commando laat toe om configuraties die opgeslagen zijn in de "configs" map (eerste parameter) te uploaden naar het pad van de doel host (tweede parameter). De naam van het lokale bestand moet dezelfde zijn als die in de "configs" map van de deploy, maar je kan kan gelijk welke naam gebruiken op het target, aangezien de naam zal gewijzigd worden tijdens de upload. Het accepteert ook voorwaarden en een "noparse" argument in het geval je het configuratie bestand niet wil laten parsen voor upload, maar het wil uploaden zoals het is. Lees ook de Configuraties documentatie.

Syntax: [noparse] config bestand [if <voorwaarde>]: bestand.conf, /doel/pad/bestand.conf

3. config dir`

Werkt hetzelfde als het "config file" commando, maar inspecteert recursief alle bestanden en submappen in de map, en verwerkt elk configuratiebestand. Zoals bij "config file" aanvaard het ook extra voorwaarden en de "noparse" parameter (zie "config file")

Syntax: [noparse] config dir [if <voorwaarde>]: config_map, doel/map

4. exec

Dit commando voert een (bash/sh) commando uit dat door de gebruiker gespecificeerd werd, en is dus het meest veelzijdige commando in ASYD. Het accepteert optionele voorwaarden en ook een host parameter, waarmee je specificerert op welke host je het commando wilt uitvoeren, in plaats van de deploy (bvb. wanneer je een database wilt updaten of een actie op een host wilt uitvoeren elke keer een nieuw systeem gedeployed wordt). Het exec commando aanvaard ook variabelen voor het commando, dus kan je paswoorden, variabele parameters, systeem informatie, etc.. als parameters meegeven voor elk commando.

Syntax: exec [host] [if <voorwaarde>]: commando

5. http

Dit commando laat toe een HTTP GET of POST te maken vanuit een deploy. Deze call wordt gedaan door de ASYD server in plaats van de doelhost. Dit is vooral nuttig voor samenwerking met een API, aangezien je ook het "http" kan gebruiken vanuit het "var" commando om de waarde ervan te gebruiken (zie volgend punt).

Syntax: http get [if <voorwaarde>]: url

Syntax: http post [if <voorwaarde>]: url [, key1=val1, key2=val2, ...]

6. var

Dit commando laat toe om een host variabele van een "def" of "undeploy" bestand te maken, dat later aangeroepen kan worden als een normale variabele (<%VAR:varnaam%> - zie Variabelen). De variabele kan gezet worden met de output van het "exec" commando - Verifieer dat het commando een output produceert - of "http". Als een variabele met dezelfde naam bestaat, zal deze overschreven worden met de nieuwe waarde.

Syntax: var <varnaam> = exec [host] [if <voorwaarde>]: commando

Syntax: var <varnaam> = http <get|post> [if <voorwaarde>]: url[m key1=val1,key2,val2, ...]

7. monitor / unmonitor

Dit commando laat u toe een service te monitoren (of te stoppen met monitorren met "unmonitor". De service parameter moet dezelfde naam hebben als het monitor bestand in de data/monitors map, dat moet bestaan. Je kan ook verschillende services specificeren, gescheiden met een spatie. Het accepteert ook optionele voorwaarden.

Syntax: monitor [if <voorwaarde>]: service

Syntax: unmonitor [if <voorwaarde>]: service

8. deploy / undeploy

Met dit commando kan je ook andere deploys van een deploy launchen, wat zelf toelaat om meta-deploys te creëren die voorwaarden voor deploys bevatten. De genoemde deploy moet bestaan. Dit commando accepteert ook optionele voorwaarden.

Syntax: deploy [if <voorwaarde>]: another_deploy

Het "undeploy" commando werkt net als het 'undeploy' bestand ten opzichte van het 'def' bestand

Syntax: undeploy [if <voorwaarde>]: another_deploy

9. reboot

Dit commando herstart het systeem. De dubbele punt - : - is niet vereist bij dit commando, en de enige parameter die toegelaten is is een voorwaarde. Opgelet Dit commando moet altijd gebruikt worden op het einde van een deploy, anders zal de ASYD server communicatie met de doelhost verliezen, en zullen de volgende commando's niet uitgevoerd worden.

Syntax: reboot [if <voorwaarde>]