Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

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.

Övergripande beskrivning

Jenkins körs lokalt i en docker-container på SAAS728, nåbar på http://saas728.sundsvall.se:8080 .

I Jenkins finns pipelines som lyssnar varrannan minut efter förändringar i varje repository.

Autentiseringen mot GitHub sker genom en lösenords-credential: “api-support-jenkins-token”.
Autentisering mot GitLab sker med ssh-credential: “gitlab-ssh”.

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.

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

Jenkins Agenten är en java jar fil som körs som en systemd service
För status kör: sudo systemctl status 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.

Docker-compose

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)

Sökväg till filerna ska vara: /srv/docker/docker-compose/<namn på applikation>

VIKTIGT! Tänk på följande när du konfigurerar din docker-compose:

  • Använd en unik port (se vilka som används med kommandot “docker ps”)

  • Använd ett unikt namn på containern (container_name: <namn på applikationen>-<sandbox/test/production>)

  • Använd “network_mode: bridge”

  • Skicka loggar till Graylog. Se exempel nedan.

Exempel på avskalad docker-compose:

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.

Sätt upp en pipeline för varje instans (sandbox, test och produktion) av applikationen. Här visas sandbox som exempel.

  1. Logga in i VPN klienten (Cisco AnyConnect) och surfa sedan in på Jenkins: http://saas728.sundsvall.se:8080/

  2. Klicka på “Skapa nytt Item” uppe till vänster

  3. Ange ett namn på pipelinen med formatet <applikationsnamn> - <instans>. T.ex. DemoApplication - Sandbox

  4. Längst ned - Välj att kopiera från en befintlig pipeline:

  5. 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.

  6. Credentials som ska användas till alla Github-repos är:

  7. Se till så att användaren “api-support-jenkins” har behörighet till ditt Github-repo.

  8. Under “Bygge” behöver du byta ut namn och sökvägar till det som stämmer för din applikation:

  9. 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.

  10. Nu kan du antingen starta din pipeline manuellt eller så startas din pipeline automatiskt beroende på om du angett någon “Build trigger”.

Exponera applikationen

För att det ska gå att komma åt applikationen utifrån så måste applikationen exponeras via en URL. T.ex. https://microservices-test.sundsvall.se/casemanagementservice/

För detta krävs en beställning till Mario Mancilla (Unlicensed)

  • No labels