-
Git, Ruby, VirtualBox (v. 4.1.4, virtualbox.org), Vagrant, Java, Maven, IDE
- gem install vagrant --no-rdoc --no-ri
-
Sjekk ut prosjektet:
- git clone https://github.com/bekkopen/Continuous-Delivery-example
- cd Continuous-Delivery-example
- git submodule init
- git submodule update Frivillig steg:
-
Installer ubuntu-base box (stå i minnepinne-mappa)
- vagrant box add oneiric32 oneiric32.box
-
Start opp db- og web-server
- cd
- vagrant up
-
Ny terminal
- cd
- mvn clean install
- cd webapp
- mvn process-test-resources exec:java -Djetty.port=9191 -Ddev=true -Drun.exploded=true�
- åpne browser på localhost:9191
- Starte opp vagrant og ssh inn
- vagrant ssh web
- vagrant ssh db
- observere hvilken bruker man er logget inn med
- bytte bruker til 'bekkopen'-bruker (sudo su bekkopen)
- eller logge seg inn 'ssh bekkopen@localhost -p 2200'
- Lage/finne egen public-key og provisjonere denne inn på bekkopen-bruker
- hvis du ikke har egen privat/public-key, stå i ~/.ssh og kjør 'ssh-keygen'
- eksempel på kode i puppet/manifests/classes/users.pp
- ssh bekkopen@localhost -p 2200
- Provisjonere maven på web-noden
- eksempel i puppet/modules/nexus
- husk symlinking av mvn-kommandoen
- Dele ~/.m2-mappe med web-boksen.
- i /home/vagrant
- Ssh inn på vagrant-boks (som vagrant)
- Kjør mvn exec:java
- (Push deploy med Maven: mvn clean install -Dpush-deploy (-Dssh-port=2200))
TODO
- Opprett skjema i lokal MySql
- cd database/
- modifiser src/main/java/no/bekk/bekkopen/cde/database/Main.java
- mvn clean install
- java -jar database-*-SNAPSHOT.jar update
- Populer skjema med testdata (mvn sql:execute)
- mvn process-test-resources sql:execute -Ddb.host=localhost
-
Push deploy med Maven: mvn clean install -Dpush-deploy -Dhost=
-
Push deploy med skript: ./remote_deploy.sh
-
Push deploy fra Jenkins
- Bygg og deploy en releasekandidat til Nexus
- Pull deploy fra produksjon/qa: ./deploy.sh webapp
- Rull tilbake til forrige versjon ./deploy.sh webapp .backup
- Lag en feature toggle for det du har utviklet.
- Forstå hvordan properties og toggles funker
- Lag enkel overvåkning av at serveren er oppe med skript og cron.
- Utvid modellen med scope for artefakten.
... flere paralelle oppgaver.
- Lag en integrasjonstest
- Lag en slowtest.
- Bygge eget vagrant-image: http://www.yodi.me/blog/2011/10/26/build-base-box-vagrant-ubuntu-oneiric-11.10-server/
- Installere puppetmaster på prod-server: http://www.ctrip.ufl.edu/install-puppetmaster-puppets-debian-lenny
- Eksempel på mysql-puppet-modul: http://bitfieldconsulting.com/puppet-and-mysql-create-databases-and-users
- Teste syntax på puppet i jenkins: http://mig5.net/node/341