summaryrefslogtreecommitdiff
path: root/Vagrantfile
blob: 0df37f9503dbbb5e1a46c0b4a2e43a38a953d298 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|

  config.vm.box = "generic/ubuntu1804"
  config.vm.synced_folder ".", "/vagrant", type: "rsync", create: true

  config.vm.provision :shell, inline: <<SCRIPT
    sudo apt-add-repository -y ppa:ansible/ansible
    sudo apt-get update
    sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ansible git
SCRIPT

  config.vm.define "jenkins-master" do |jenkins_master|
    jenkins_master.vm.provider :libvirt do |domain|
      domain.memory = 4096
    end
    jenkins_master.vm.provision :shell, inline: <<CISCRIPT
      hostname ci.linaro.org
      cd /vagrant && \
      ansible-playbook -i /vagrant/hosts \
      -l ci.linaro.org \
      -c local \
      --skip-tags="letsencrypt,vpn" \
      --extra-vars='{ \
        "using_vagrant": True, \
	"ssl_cert": "/etc/ssl/certs/ssl-cert-snakeoil.pem", \
	"ssl_key": "/etc/ssl/private/ssl-cert-snakeoil.key" \
        }' \
      /vagrant/jenkins-master.yml
CISCRIPT
  end

  #TODO: figure out a way to iterate through hosts in inventory
  config.vm.define "publishing_docker" do |publishing_docker|
    publishing_docker.vm.provider :libvirt do |domain|
      domain.memory = 4096
    end
    publishing_docker.vm.provision :shell, inline: <<CISCRIPT
      hostname publishing-ap.linaro.org
      cd /vagrant && \
      ansible-playbook -i /vagrant/hosts \
      -l publishing-ap.linaro.org \
      -c local \
      --skip-tags="letsencrypt" \
      --extra-vars='{ \
        "using_vagrant": True, \
	"ssl_cert": "/etc/ssl/certs/ssl-cert-snakeoil.pem", \
	"ssl_key": "/etc/ssl/private/ssl-cert-snakeoil.key" \
        }' \
      /vagrant/publishing-docker.yml
CISCRIPT
  end

  #TODO: same as publishing_docker, figure out a way to iterate through hosts
  #  in inventory
  #TODO: probably don't need the ssl stuff
  config.vm.define "publishing" do |publishing|
    publishing.vm.provider :libvirt do |domain|
      domain.memory = 4096
    end
    publishing.vm.provision :shell, inline: <<CISCRIPT
      hostname publishing-ap.linaro.org
      cd /vagrant && \
      ansible-playbook -i /vagrant/hosts \
      -l releases-us.linaro.org \
      -c local \
      --skip-tags="db-migrate" \
      --extra-vars='{ \
        "using_vagrant": True, \
	"ssl_cert": "/etc/ssl/certs/ssl-cert-snakeoil.pem", \
	"ssl_key": "/etc/ssl/private/ssl-cert-snakeoil.key" \
        }' \
      /vagrant/publishing.yml
CISCRIPT
  end

  config.vm.define "gerrit" do |gerrit|
    gerrit.vm.provider :libvirt do |domain|
      domain.memory = 4096
    end
    gerrit.vm.provision :shell, inline: <<CISCRIPT
      sudo hostname review.test
      sudo perl -pi -e "s/localhost$/localhost review.test/g" /etc/hosts
      sudo echo postfix postfix/mailname string review.test | debconf-set-selections
      sudo echo postfix postfix/main_mailer_type string "Local only" | debconf-set-selections
      sudo DEBIAN_FRONTEND=noninteractive apt-get install -y postfix
      cd /vagrant && \
      ansible-playbook -i /vagrant/hosts \
      -l review.linaro.org \
      -c local \
      --extra-vars='{ \
        "inventory_hostname": "review.linaro.org", \
        "using_vagrant": True, \
	"ssl_cert": "/etc/ssl/certs/ssl-cert-snakeoil.pem", \
	"ssl_key": "/etc/ssl/private/ssl-cert-snakeoil.key", \
	"ssl_ca":"/etc/ssl/certs/ssl-cert-snakeoil.pem" \
        }' \
      /vagrant/gerrit.yml 2>&1 | tee /tmp/ansible.log
CISCRIPT
  end

  config.vm.define "blank" do |blank|
    blank.vm.provider :libvirt do |domain|
      domain.memory = 4096
    end
    # No provisioning.  Meant for manually testing out playbooks.
  end

end