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
|