När du har utvecklat en applikation och är redo att driftsätta denna i sandbox, test eller produktion så beskrivs de nödvändiga stegen du behöver göra här.
Table of Contents |
---|
Övergripande beskrivning
Jenkins körs lokalt i en docker-container på SAAS728, nåbar på http://saas728.sundsvall.se:8080 .
...
Har en förändring skett i det repot på den angivna branchen kommer pipelinen starta. Samtliga pipelines bygger koden som en docker image och startar containern med hjälp av docker-compose.
Som det ser ut nu så ligger dockerfile i applikationens repository och docker-compose ligger på servern på sökvägen: /srv/docker/docker-compose/<namn på applikation>
Det är en Jenkins Agent installerad på saas728 i den lägger sig alla git pull som görs när ett jobb triggas. Filerna kan nås i denna mappen under workspaces: /srv/docker/docker-compose/jenkins/jenkins
...
Tanken är att vi kör CI/CD mot testmiljön men mot produktionsmiljön så gör vi ett manuellt steg där vi måste gå in och starta bygget manuellt.
Planerat arbete
...
Lagra våra docker images i ett Nexus-repo istället för lokalt på servern.
Använda Jenkinsfiles istället för att bygga pipelines i GUI’t.
Detta är beroende av att vi kan uppdatera plugins i Jenkins. Vi väntar på en proxy-beställning.
Docker
...
Vi konfigurerar våra applikationer med docker-compose. Dessa filer ska ligga på servern där applikationen körs.
Konto till SAAS728 (test & sandbox) och SAAS021 (produktion) beställs av Mario Mancilla (Unlicensed)
...
-compose
...
VIKTIGT! Tänk på följande när du konfigurerar din docker-compose:
...
Code Block |
---|
version: '2' services: ms-casemanagementservice-test: container_name: ms-casemanagementservice-test logging: driver: "syslog" options: syslog-address: "udp://172.16.254.6:5140" tag: "ms-casemanagementservice-test" restart: always network_mode: bridge image: ms-casemanagementservice:test ports: - 8715:9090 environment: SUNDSVALLS_KOMMUN_INTERNAL_ORIGIN: "https://api-i-test.sundsvall.se" SUNDSVALLS_KOMMUN_EXTERNAL_ORIGIN: "https://api-test.sundsvall.se" SUNDSVALLS_KOMMUN_CONSUMER_KEY: "" SUNDSVALLS_KOMMUN_CONSUMER_SECRET: "" DB_USERNAME: "dbcasemanagement" DB_PWD: "" DB_URL: "jdbc:mariadb://saas728.sundsvall.se:3306/ms-casemanagement" DB_HIBERNATE_GENERATION: "none" |
Jenkins
Sätt upp en Jenkins-pipeline för att kunna köra bygget. Idag konfigurerar vi våra pipelines i Jenkins-GUI’t i väntan på att vi ska få till en proxy mot Jenkins update center.
...
Logga in i VPN klienten (Cisco AnyConnect) och surfa sedan in på Jenkins: http://saas728.sundsvall.se:8080/
Klicka på “Skapa nytt Item” uppe till vänster
Ange ett namn på pipelinen med formatet <applikationsnamn> - <instans>. T.ex. DemoApplication - Sandbox
Längst ned - Välj att kopiera från en befintlig pipeline:
Verifiera att rätt label används (maskinen det ska byggas på).
För produktion gäller SAAS021. För test och sandbox gäller SAAS728.Credentials som ska användas till alla Github-repos är:
Se till så att användaren “api-support-jenkins” har behörighet till ditt Github-repo.
Under “Bygge” behöver du byta ut namn och sökvägar till det som stämmer för din applikation:
När du har kontrollerat att allt stämmer så kan du skrolla längst ned och klicka “Apply” för att spara din pipeline.
Nu kan du antingen starta din pipeline manuellt eller så startas din pipeline automatiskt beroende på om du angett någon “Build trigger”.
Exponera
...
URL
För att det ska gå att komma åt applikationen utifrån så måste applikationen exponeras via en URL. T.ex.
Test: https://microservices-test.sundsvall.se/casemanagementservice/
Sandbox: https://microservices-test.sundsvall.se/sandbox/casemanagementservice/
Produktion: https://microservices.sundsvall.se/casemanagementservice/
För detta krävs konfigurering av HAProxy och det utförs efter en beställning till Mario Mancilla (Unlicensed) .