Vagrant und Jenkins aufsetzen


Ruby muß installiert sein
Git muß istalliert sein

Als Provider für Vagrant installieren wir VirtualBox
https://www.virtualbox.org/wiki/Downloads

Vagrant auf den Windows-Rechner installieren
https://www.vagrantup.com/
downloaden und installieren. Den Rechner neu starten.

Wir erstellen ein Projekt.
z.B.: c:\vagrant\symfony-test\

Hole dir das Vagrantfile mit dem du die VM aufsetzt und ausserdem den bootstrap für jenkins steuerst bzw. includest

[code filename=“Vagrantfile“]

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "precise32"

  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.provision :shell, :path => "bootstrap.sh"

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  config.vm.network :forwarded_port, guest: 8080, host: 8080

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network :private_network, ip: "192.168.33.10"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  config.vm.synced_folder "../../xampp_backup/htdocs/fashionsymfony", "/vagrant_data"

end

[/code]

Dann den bootstrap für die ci mit jenkins
darin enthalten sind diverse tools die wir für unser project benötigen

[code filename=“bootstrap.sh“]

#!/usr/bin/env bash

# Setup apt-get so we can install jenkins later on
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo echo 'deb http://pkg.jenkins-ci.org/debian binary/' >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y jenkins

# Install git
sudo apt-get install -y git

# Install Node.js
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install -y nodejs

# Install global node modules
sudo npm install -g grunt-cli
sudo npm install -g karma
sudo npm install -g bower

# Install Compass
sudo gem install compass

# Install jenkins
sudo apt-get install -y jenkins

sleep 30

# Get client adapter to install plugins
wget http://localhost:8080/jnlpJars/jenkins-cli.jar
chmod +x jenkins-cli.jar

# Install plugins here.
java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin http://updates.jenkins-ci.org/download/plugins/git/1.4.0/git.hpi

# Restart jenkins for plugins to take affect.
java -jar jenkins-cli.jar -s http://localhost:8080/ restart

[/code]

auf der windows konsole
$ cd c:\vagrant\symfony-test\
$ vagrant up

die VM wird jetzt gebaut und jenkins wird aufgesetzt

im browser http://localhost:8080/
jenkins will ein unlock mit einem passwort

dazu gehe per git.sh in das projekt
$ cd c:\vagrant\symfony-test\
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

das passwort für den jenkins unlock wird angezeigt
Dieses eingeben und loslegen