SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Deployment mit Ansible
auf JBoss Servern in
traditionellem Umfeld
Erhard.Siegl@gepardec.com
12.01.2019
Über Gepardec
⃫ Gepardec IT Services GmbH
⃫ Gründung 2014
⃫ Geschäftsführer: Dr. Erhard Siegl, Dr. Günter Pirklbauer
⃫ Kerngeschäft: Individual-Softwarehersteller für
Organisationen und Unternehmen, Spezialisiert auf Java
Enterprise Lösungen und Cloud Technologien von Red Hat
⃫ 26 Mitarbeiter, Tendenz steigend
⃫ Standorte: Wien – Tech Gate, Linz – Europaplatz
The Setting
⃫ Public Sector
⃫ Development and operations separated
⃫ Linux, JBoss, Oracle
⃫ Deployments often difficult (emotional)
EAR
SQL-Scripts
Installation-
doku
Developer
Source Code
Repository
build
deploy
test
Build-Server
Jenkins
Development Operations
JBoss
Java
Code
JBoss
Confg
DB
Schema
JBoss
Administrator
manual
confguration
Application
Application
...and more of the same
Produktion Produktionstest
FA-Test
Schulung
Integrationstest
Lasttest
Entwicklung
Continous Integration
Ziele
⃫ Z01: Es ist ein einheitlicher automatisierter Deploymentprozess für alle
BVA Applikationen über alle Stages vorhanden.
⃫ Z02: Es ist ein zentral verwaltbares Konfigurationsrepository vorhanden.
⃫ Z03: Die Aufgaben und Verantwortlichkeiten für die Rollen im
Deploymentprozess sind geklärt und Namenskonventionen die
Installationsartefakte und Zielumgebungen betreffend sind etabliert.
⃫ Schneller, besser, weniger Fehler,...
Was ist Deployment?
⃫ Alle Tätigkeiten vom Deploymentauftrag bis zur funktionierendern Anwendung
⃫ Datenbank
– Schema anpassen
– Steuerdaten einspielen
⃫ JBoss bereitstellen
– JBoss auspacken
– Speicherparameter setzen
– JBoss Module erzeugen
– Logging, Security & Datasources konfigurieren
– System Properties setzen
– Verbindungen zu anderen Systemen definieren
– EAR or WAR deployen
Development
Deployment Process
Source Code
Repository
check
out
check
in
Build Server
get
Binary
Repository
create
package
Integration
Test
Dev-Test
Production
deploy
application
Application
source
Application
binary
Environment
Deployment
Server
Confguration
Repository
Systemintegrator
Environment
-
Defnition
Source Code
Repository
SVN
Binary
Repository
Nexus
build
Umgebung DEV3
Instance
Application
DBJBoss
Application
Installation-
Package
Configuration Repository
Stage ET
ET-VIDU3-
eSVE
ET-VIDU3-
eSVE
DEV3-
Properties
Gitlab
Deployment Server
Ansible
Skript Repository
Ansible Skripts
Gitlab
Build-Server
Jenkins
JDK JBoss Flyway
jboss-cli
Flyway
deploy
trigger Deployment
Entwicklung
Configuration Repository
Stage ET
ET-VIDU3-
eSVE
ET-VIDU3-
eSVE
TEST4-
Properties
Gitlab
Testmanagement
Configuration Repository
Stage ET
ET-VIDU3-
eSVE
ET-VIDU3-
eSVE
PROD-
Properties
Gitlab
Betrieb
Umgebung TEST4
Instanz
Application
DBJBoss
Deployment Architecture
Ansible Inventory
Installation Package (zip)
├── jboss-install
│ ├── config
│ │ ├── 01_www.zip
│ │ ├── 02_xxx.restart
│ │ ├── 03_yyy.conf
│ │ └── 04_zzz.sh.j2
│ ├── modules
│ │ └── at
│ │ └── xxx
│ └── deployments
│ └── servlet-with-db-1.1.0.war
├── flyway-install
│ ├── config
│ │ ├── flyway.conf.j2
│ │ └── flyway_migrate.sh
│ └── sql
│ └── V1__Create_test_table.sql
└── package_descriptor.json
JBoss Configuration
Database Configuration
Package Description
package_descriptor.json
{
"flyway_install": {
"config": "flyway-install/config"
},
"flyway_pkg": {
"artifact_id": "flyway",
"classifier": "",
"extension": "zip",
"group_id": "org.flywaydb",
"version": "4.2.0"
},
"java_version": "jdk1.8.0_181",
"jboss_install": {
"config": "jboss-install/config",
"modules": "jboss-install/modules"
},
"jboss_pkg": {
"artifact_id": "jboss-eap",
"classifier": "",
"extension": "zip",
"group_id": "org.jboss",
"version": "6.4.0"
},
prerequisites: [
{
"artifact_id": "configdependency",
"classifier": "pkg",
"extension": "zip",
"group_id": "at.test",
"version": "1.0.0"
}
]
}
Which Flyway-Version is needed for the installation?
Which Java version is needed forthe application?
Which JBoss version is needed for the application?
What are the prerequisites for the application?
Format of the
Package
Maven
Dependencies
What is does
1)Download installation package from Maven repository
2)Unpack and analyse the installation package
3)Download Dependencies
4)Process j2-Templates
5)Stopp JBoss servers (if it exists)
6)Upgrade database
7)Delete and rebuild JBoss instance
Designprinzipien
⃫ Strikte Trennung zwischen Anwendungseigenschaften und
Umgebungseigenschaften
⃫ Keine anwendungsspezifische Konfiguration in den Ansible-Skripts
⃫ Kompatibilität mit zukünftigen Änderungen
⃫ Kompatibilität mit JBSS (https://github.com/Gepardec/JBSS/)
Herausforderung Zusammenarbeit
Installations-
Paket
JBoss Konfiguration
EAR
Datenbank
Konfiguration
Entwickler
JBoss-
Administrator
Datenbank-
Administrator
Pros and Cons
⃫  Ansible easy for admins
⃫  Ansible not a real programming language
⃫  Package format is not standard
⃫  No proprietary tools necessary
Project Storc
Delivering WildFly

Weitere ähnliche Inhalte

Ähnlich wie Deployment mit Ansible auf JBoss Servern

Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Hochverfügbarer Hyper V Cluster
Hochverfügbarer Hyper V ClusterHochverfügbarer Hyper V Cluster
Hochverfügbarer Hyper V Clusternicohal
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas Koop
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeDevOps Meetup Bern
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als CodeJan Gehring
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit HudsonDr. Christian Betz
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederChristoph Pickl
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
MicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit QuarkusMicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit Quarkusgedoplan
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migrationdehms
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascriptdzuvic
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Presentation bp7 - citrix xen desktop
Presentation   bp7 - citrix xen desktopPresentation   bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktopxKinAnx
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungNETWAYS
 

Ähnlich wie Deployment mit Ansible auf JBoss Servern (20)

Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Hochverfügbarer Hyper V Cluster
Hochverfügbarer Hyper V ClusterHochverfügbarer Hyper V Cluster
Hochverfügbarer Hyper V Cluster
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Config as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as CodeConfig as Code: Der Weg zu Configuration as Code
Config as Code: Der Weg zu Configuration as Code
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit Hudson
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
MicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit QuarkusMicroProfile-Anwendungen mit Quarkus
MicroProfile-Anwendungen mit Quarkus
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migration
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Presentation bp7 - citrix xen desktop
Presentation   bp7 - citrix xen desktopPresentation   bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktop
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
 

Mehr von Harald Schmaldienst

Mehr von Harald Schmaldienst (7)

InfraCoders Vienna V Intro
InfraCoders Vienna V IntroInfraCoders Vienna V Intro
InfraCoders Vienna V Intro
 
InfraCoders Vienna IV Intro
InfraCoders Vienna IV IntroInfraCoders Vienna IV Intro
InfraCoders Vienna IV Intro
 
The FN Project by Maximilian Jerg
The FN Project by Maximilian JergThe FN Project by Maximilian Jerg
The FN Project by Maximilian Jerg
 
InfraCoders Vienna III
InfraCoders Vienna IIIInfraCoders Vienna III
InfraCoders Vienna III
 
InfraCoders Vienna II
InfraCoders Vienna IIInfraCoders Vienna II
InfraCoders Vienna II
 
InfraCoders I
InfraCoders IInfraCoders I
InfraCoders I
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit Terraform
 

Deployment mit Ansible auf JBoss Servern

  • 1. Deployment mit Ansible auf JBoss Servern in traditionellem Umfeld Erhard.Siegl@gepardec.com 12.01.2019
  • 2. Über Gepardec ⃫ Gepardec IT Services GmbH ⃫ Gründung 2014 ⃫ Geschäftsführer: Dr. Erhard Siegl, Dr. Günter Pirklbauer ⃫ Kerngeschäft: Individual-Softwarehersteller für Organisationen und Unternehmen, Spezialisiert auf Java Enterprise Lösungen und Cloud Technologien von Red Hat ⃫ 26 Mitarbeiter, Tendenz steigend ⃫ Standorte: Wien – Tech Gate, Linz – Europaplatz
  • 3. The Setting ⃫ Public Sector ⃫ Development and operations separated ⃫ Linux, JBoss, Oracle ⃫ Deployments often difficult (emotional)
  • 5. ...and more of the same Produktion Produktionstest FA-Test Schulung Integrationstest Lasttest Entwicklung Continous Integration
  • 6. Ziele ⃫ Z01: Es ist ein einheitlicher automatisierter Deploymentprozess für alle BVA Applikationen über alle Stages vorhanden. ⃫ Z02: Es ist ein zentral verwaltbares Konfigurationsrepository vorhanden. ⃫ Z03: Die Aufgaben und Verantwortlichkeiten für die Rollen im Deploymentprozess sind geklärt und Namenskonventionen die Installationsartefakte und Zielumgebungen betreffend sind etabliert. ⃫ Schneller, besser, weniger Fehler,...
  • 7. Was ist Deployment? ⃫ Alle Tätigkeiten vom Deploymentauftrag bis zur funktionierendern Anwendung ⃫ Datenbank – Schema anpassen – Steuerdaten einspielen ⃫ JBoss bereitstellen – JBoss auspacken – Speicherparameter setzen – JBoss Module erzeugen – Logging, Security & Datasources konfigurieren – System Properties setzen – Verbindungen zu anderen Systemen definieren – EAR or WAR deployen
  • 8. Development Deployment Process Source Code Repository check out check in Build Server get Binary Repository create package Integration Test Dev-Test Production deploy application Application source Application binary Environment Deployment Server Confguration Repository Systemintegrator Environment - Defnition
  • 9. Source Code Repository SVN Binary Repository Nexus build Umgebung DEV3 Instance Application DBJBoss Application Installation- Package Configuration Repository Stage ET ET-VIDU3- eSVE ET-VIDU3- eSVE DEV3- Properties Gitlab Deployment Server Ansible Skript Repository Ansible Skripts Gitlab Build-Server Jenkins JDK JBoss Flyway jboss-cli Flyway deploy trigger Deployment Entwicklung Configuration Repository Stage ET ET-VIDU3- eSVE ET-VIDU3- eSVE TEST4- Properties Gitlab Testmanagement Configuration Repository Stage ET ET-VIDU3- eSVE ET-VIDU3- eSVE PROD- Properties Gitlab Betrieb Umgebung TEST4 Instanz Application DBJBoss Deployment Architecture Ansible Inventory
  • 10. Installation Package (zip) ├── jboss-install │ ├── config │ │ ├── 01_www.zip │ │ ├── 02_xxx.restart │ │ ├── 03_yyy.conf │ │ └── 04_zzz.sh.j2 │ ├── modules │ │ └── at │ │ └── xxx │ └── deployments │ └── servlet-with-db-1.1.0.war ├── flyway-install │ ├── config │ │ ├── flyway.conf.j2 │ │ └── flyway_migrate.sh │ └── sql │ └── V1__Create_test_table.sql └── package_descriptor.json JBoss Configuration Database Configuration Package Description
  • 11. package_descriptor.json { "flyway_install": { "config": "flyway-install/config" }, "flyway_pkg": { "artifact_id": "flyway", "classifier": "", "extension": "zip", "group_id": "org.flywaydb", "version": "4.2.0" }, "java_version": "jdk1.8.0_181", "jboss_install": { "config": "jboss-install/config", "modules": "jboss-install/modules" }, "jboss_pkg": { "artifact_id": "jboss-eap", "classifier": "", "extension": "zip", "group_id": "org.jboss", "version": "6.4.0" }, prerequisites: [ { "artifact_id": "configdependency", "classifier": "pkg", "extension": "zip", "group_id": "at.test", "version": "1.0.0" } ] } Which Flyway-Version is needed for the installation? Which Java version is needed forthe application? Which JBoss version is needed for the application? What are the prerequisites for the application? Format of the Package Maven Dependencies
  • 12. What is does 1)Download installation package from Maven repository 2)Unpack and analyse the installation package 3)Download Dependencies 4)Process j2-Templates 5)Stopp JBoss servers (if it exists) 6)Upgrade database 7)Delete and rebuild JBoss instance
  • 13. Designprinzipien ⃫ Strikte Trennung zwischen Anwendungseigenschaften und Umgebungseigenschaften ⃫ Keine anwendungsspezifische Konfiguration in den Ansible-Skripts ⃫ Kompatibilität mit zukünftigen Änderungen ⃫ Kompatibilität mit JBSS (https://github.com/Gepardec/JBSS/)
  • 15. Pros and Cons ⃫  Ansible easy for admins ⃫  Ansible not a real programming language ⃫  Package format is not standard ⃫  No proprietary tools necessary