Als DevOps-beheerder of -ontwikkelaar kunt u custom scripts maken om de mogelijkheden van Automation Pipelines uit te breiden.
Met uw script kunt u Automation Pipelines integreren met uw eigen tools voor continue integratie (CI) en continue levering (CD) en API's die uw applicaties bouwen, testen en implementeren. Custom scripts zijn vooral handig als u de API's van de applicatie niet openbaar weergeeft.
Uw aangepast script kan bijna alles doen wat u nodig heeft voor uw tools voor bouwen, testen en implementeren om te integreren met Automation Pipelines. Uw script kan bijvoorbeeld samenwerken met uw pijplijnwerkplek om ondersteuning te bieden voor taken voor continue integratie te ondersteunen die uw applicatie bouwen en testen, en voor taken voor continue levering die uw applicatie implementeren. Het kan een bericht verzenden naar Slack wanneer een pijplijn is voltooid en nog veel meer.
De Automation Pipelines-pijplijnwerkplek ondersteunt Docker en Kubernetes voor taken voor continue integratie en aangepaste taken.
Zie De pijplijnwerkplek configureren voor meer informatie over het configureren van de werkplek.
U schrijft uw custom script in een van de ondersteunde talen. In het script neemt u uw bedrijfslogica op en definieert u de input en output. Outputtypen kunnen onder meer getal, tekenreeks, tekst en wachtwoord zijn. U kunt meerdere versies van een custom script maken met verschillende bedrijfslogica, invoer en uitvoer.
De scripts die u maakt, bevinden zich in uw Automation Pipelines-instantie. U kunt YAML-code importeren om een aangepaste integratie te maken of uw script als YAML-bestand exporteren voor gebruik in een andere Automation Pipelines-instantie.
U laat uw pijplijn een vrijgegeven versie van uw script in een aangepaste taak uitvoeren. Als u meerdere vrijgegeven versies heeft, kunt u een van deze versies instellen als nieuwste versie zodat het met nieuwste --> wordt weergegeven wanneer u de aangepaste taak selecteert.
Wanneer een pijplijn een custom integratie gebruikt, wordt een foutbericht weergegeven en wordt aangegeven dat u het niet kunt verwijderen als u de custom integratie probeert te verwijderen.
Als u een custom integratie verwijdert, worden alle versies van uw custom script verwijderd. Als u een bestaande pijplijn heeft met een custom taak die een willekeurige versie van het script gebruikt, zal deze pijplijn mislukken. Om ervoor te zorgen dat bestaande pijplijnen niet mislukken, kunt u de versie van uw script die u niet langer wilt gebruiken, afkeuren en intrekken. Als geen pijplijn die versie gebruikt, kunt u deze verwijderen.
Wat u doet… | Meer informatie over deze actie… |
---|---|
Voeg een custom taak toe aan uw pijplijn. |
De custom taak:
|
Selecteer uw script in de custom taak. |
U declareert de input- en outputproperties in het script. |
Sla de pijplijn op. Vervolgens schakelt u de pijplijn in en voert u deze uit. |
Wanneer de pijplijn wordt uitgevoerd, roept de custom taak de versie van de gespecificeerde script aan en voert het de bedrijfslogica erin uit die uw tool voor bouwen, testen en implementeren met Automation Pipelines integreert. |
Bekijk de uitvoeringen nadat uw pijplijn is uitgevoerd. |
Controleer of de pijplijn de verwachte resultaten heeft geleverd. |
Wanneer u een aangepaste taak gebruikt die een versie van de aangepaste integratie aanroept, kunt u aangepaste omgevingsvariabelen als naam-waardeparen opnemen op het tabblad Workspace van de pijplijn. Wanneer de image van de opbouwfunctie de Workspace-container maakt die de CI-taak uitvoert en uw image implementeert, worden de omgevingsvariabelen door Automation Pipelines doorgegeven aan die container.
Wanneer uw Automation Pipelines-instantie bijvoorbeeld een webproxy vereist en u een Docker-host gebruikt om een container voor een aangepaste integratie te maken, wordt de pijplijn door Automation Pipelines uitgevoerd en worden de variabelen van de webproxyinstelling doorgegeven aan die container.
Naam | Waarde |
---|---|
HTTPS_PROXY | http://10.0.0.255:1234 |
https_proxy | http://10.0.0.255:1234 |
NO_PROXY | 10.0.0.32, *.dept.vsphere.local |
no_proxy | 10.0.0.32, *.dept.vsphere.local |
HTTP_PROXY | http://10.0.0.254:1234 |
http_proxy | http://10.0.0.254:1234 |
PAD | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
Naam-waardeparen worden als volgt weergegeven in de gebruikersinterface:
Dit voorbeeld maakt een custom integratie die Automation Pipelines verbindt met uw Slack-instantie en een bericht op een Slack-kanaal plaatst.
Voorwaarden
- Verifieer voor het schrijven van een aangepast script of u een van deze talen heeft: Python 2, Python 3, Node.js of een van de Shell-talen: Bash, sh of zsh.
- Genereer een containerimage met behulp van de geïnstalleerde Node.js of de Python-runtime.
Procedure
resultaten
Gefeliciteerd! U heeft een custom integratiescript gemaakt waarmee Automation Pipelines wordt verbonden met uw Slack-instantie en een bericht wordt geplaatst op een Slack-kanaal.
Volgende stappen
Ga door met het maken van custom integraties om het gebruik van custom taken in uw pijplijnen te ondersteunen, zodat u de mogelijkheden van Automation Pipelines bij de automatisering van uw software-release-levenscyclus kunt uitbreiden.