Merge lp:~bladernr/maas-cert-server/lxd-mirror-preseed into lp:~hardware-certification/maas-cert-server/trunk

Proposed by Jeff Lane 
Status: Merged
Approved by: Jeff Lane 
Approved revision: 76
Merged at revision: 76
Proposed branch: lp:~bladernr/maas-cert-server/lxd-mirror-preseed
Merge into: lp:~hardware-certification/maas-cert-server/trunk
Diff against target: 213 lines (+96/-18)
2 files modified
preseed/curtin_userdata_cert (+48/-9)
preseed/curtin_userdata_custom_cert (+48/-9)
To merge this branch: bzr merge lp:~bladernr/maas-cert-server/lxd-mirror-preseed
Reviewer Review Type Date Requested Status
Jeff Lane  Approve
Review via email: mp+322364@code.launchpad.net

Description of the change

fixes a typo that broke automatic setting of KVM images in conf file during deployment.
Also adds bits to automatically set LXD images in conf file if they exist on the MAAS server.

To post a comment you must log in.
Revision history for this message
Jeff Lane  (bladernr) wrote :

Tested locally, should work.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'preseed/curtin_userdata_cert'
2--- preseed/curtin_userdata_cert 2017-04-04 19:39:28 +0000
3+++ preseed/curtin_userdata_cert 2017-04-11 13:27:22 +0000
4@@ -24,12 +24,20 @@
5 {{endfor}}
6 {{if third_party_drivers and driver}}
7 early_commands:
8- {{py: key_string = ''.join(['\\x%x' % x for x in map(ord, driver['key_binary'])])}}
9+ {{py: key_string = ''.join(['\\x%x' % x for x in driver['key_binary']])}}
10+ {{if driver['key_binary'] and driver['repository'] and driver['package']}}
11 driver_00_get_key: /bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg
12 driver_01_add_key: ["apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"]
13+ {{endif}}
14+ {{if driver['repository']}}
15 driver_02_add: ["add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"]
16+ {{endif}}
17+ {{if driver['package']}}
18 driver_03_update_install: ["sh", "-c", "apt-get update --quiet && apt-get --assume-yes install {{driver['package']}}"]
19- driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}}"]
20+ {{endif}}
21+ {{if driver['module']}}
22+ driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}} || echo 'Warning: Failed to load module: {{driver['module']}}'"]
23+ {{endif}}
24 {{endif}}
25
26 anchor_bucket:
27@@ -74,19 +82,43 @@
28 maas_ip=$(/sbin/ip route | awk '/default/ { print $3 }');
29 rm -rf /tmp/index.html;
30 wget -P /tmp/ http://$maas_ip/cloud/;
31- filename_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch.*img" /tmp/index.html | head -n 1);
32+ filename_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch(-disk1)?.img" /tmp/index.html | head -n 1);
33 if [ ! -z "$filename_line" ] ; then
34 filename=$(echo $filename_line | grep -Po '(?<=href=")[^"]*(?=")');
35 else
36- filename_line=$(egrep "server-cloudimg-$arch.*img" /tmp/index.html | head -n 1);
37+ filename_line=$(egrep "server-cloudimg-$arch(-disk1)?.img" /tmp/index.html | head -n 1);
38 filename=$(echo $filename_line | grep -Po '(?<=href=")[^"]*(?=")');
39- fi
40+ fi;
41 if [ ! -z "$filename" ] ; then
42 sed -i "s/#KVM_TIMEOUT/KVM_TIMEOUT/g" /etc/xdg/canonical-certification.conf;
43 sed -i "s/#KVM_IMAGE = \/path\/to\/cloudimage-filename.img/KVM_IMAGE = http:\/\/$maas_ip\/cloud\/$filename/g" /etc/xdg/canonical-certification.conf;
44 fi;
45 rm -f /tmp/index.html;
46
47+ - &lxd_images |
48+ #!/bin/sh
49+ echo "Setting up to use LXD images on MAAS server...";
50+ . /etc/lsb-release;
51+ arch=$(dpkg --print-architecture);
52+ maas_ip=$(/sbin/ip route | awk '/default/ { print $3 }');
53+ rm -rf /tmp/index.html;
54+ wget -P /tmp/ http://$maas_ip/cloud/;
55+ template_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch-lxd.tar.xz" /tmp/index.html | head -n 1);
56+ if [ ! -z "$template_line" ] ; then
57+ templatefile=$(echo $template_line | grep -Po '(?<=href=")[^"]*(?=")');
58+ echo "Setting template file to: $templatefile";
59+ fi;
60+ rootfs_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch-root.tar.xz" /tmp/index.html | head -n 1);
61+ if [ ! -z "$rootfs_line" ] ; then
62+ rootfsfile=$(echo $rootfs_line | grep -Po '(?<=href=")[^"]*(?=")');
63+ echo "Setting rootfs file to: $rootfsfile";
64+ fi;
65+ if [ ! -z "$templatefile" ] && [ ! -z "$rootfsfile" ]; then
66+ sed -i "s/#LXD_ROOTFS = http:\/\/server_url\/path\/to\/lxd-rootfs-filename.tar.xz/LXD_ROOTFS = http:\/\/$maas_ip\/cloud\/$rootfsfile/g" /etc/xdg/canonical-certification.conf;
67+ sed -i "s/#LXD_TEMPLATE = http:\/\/server_url\/path\/to\/lxd-templates-filename.tar.xz/LXD_TEMPLATE = http:\/\/$maas_ip\/cloud\/$templatefile/g" /etc/xdg/canonical-certification.conf;
68+ fi;
69+ rm -f /tmp/index.html;
70+
71 - &iperf
72 #!/bin/sh
73 echo "Setting up iperf...";
74@@ -125,21 +157,28 @@
75 late_commands:
76 maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null']
77 {{if third_party_drivers and driver}}
78+ {{if driver['key_binary'] and driver['repository'] and driver['package']}}
79 driver_00_key_get: curtin in-target -- sh -c "/bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg"
80 driver_02_key_add: ["curtin", "in-target", "--", "apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"]
81+ {{endif}}
82+ {{if driver['repository']}}
83 driver_03_add: ["curtin", "in-target", "--", "add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"]
84+ {{endif}}
85 driver_04_update_install: ["curtin", "in-target", "--", "apt-get", "update", "--quiet"]
86+ {{if driver['package']}}
87 driver_05_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "{{driver['package']}}"]
88+ {{endif}}
89 driver_06_depmod: ["curtin", "in-target", "--", "depmod"]
90 driver_07_update_initramfs: ["curtin", "in-target", "--", "update-initramfs", "-u"]
91 {{endif}}
92 # inject maas version into /etc/installed-with-maas and install cert tools
93 set_maas_version: ["curtin", "in-target", "--", "sh", "-c", "/bin/echo {{maas_version}} > /etc/installed-by-maas"]
94 # Install certification suite
95- zt_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *disableupdates ]
96- zu_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *sudoers ]
97- zv_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *installcert ]
98- zw_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *kvm_image ]
99+ zs_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *disableupdates ]
100+ zt_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *sudoers ]
101+ zu_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *installcert ]
102+ zv_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *kvm_image ]
103+ zw_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *lxd_images ]
104 zx_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *iperf ]
105 zy_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *setubuntupass]
106 zz_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *secureid]
107
108=== modified file 'preseed/curtin_userdata_custom_cert'
109--- preseed/curtin_userdata_custom_cert 2017-04-04 19:39:28 +0000
110+++ preseed/curtin_userdata_custom_cert 2017-04-11 13:27:22 +0000
111@@ -24,12 +24,20 @@
112 {{endfor}}
113 {{if third_party_drivers and driver}}
114 early_commands:
115- {{py: key_string = ''.join(['\\x%x' % x for x in map(ord, driver['key_binary'])])}}
116+ {{py: key_string = ''.join(['\\x%x' % x for x in driver['key_binary']])}}
117+ {{if driver['key_binary'] and driver['repository'] and driver['package']}}
118 driver_00_get_key: /bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg
119 driver_01_add_key: ["apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"]
120+ {{endif}}
121+ {{if driver['repository']}}
122 driver_02_add: ["add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"]
123+ {{endif}}
124+ {{if driver['package']}}
125 driver_03_update_install: ["sh", "-c", "apt-get update --quiet && apt-get --assume-yes install {{driver['package']}}"]
126- driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}}"]
127+ {{endif}}
128+ {{if driver['module']}}
129+ driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}} || echo 'Warning: Failed to load module: {{driver['module']}}'"]
130+ {{endif}}
131 {{endif}}
132
133 anchor_bucket:
134@@ -74,19 +82,43 @@
135 maas_ip=$(/sbin/ip route | awk '/default/ { print $3 }');
136 rm -rf /tmp/index.html;
137 wget -P /tmp/ http://$maas_ip/cloud/;
138- filename_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch.*img" /tmp/index.html | head -n 1);
139+ filename_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch(-disk1)?.img" /tmp/index.html | head -n 1);
140 if [ ! -z "$filename_line" ] ; then
141 filename=$(echo $filename_line | grep -Po '(?<=href=")[^"]*(?=")');
142 else
143- filename_line=$(egrep "server-cloudimg-$arch.*img" /tmp/index.html | tail -n 1);
144+ filename_line=$(egrep "server-cloudimg-$arch(-disk1)?.img" /tmp/index.html | head -n 1);
145 filename=$(echo $filename_line | grep -Po '(?<=href=")[^"]*(?=")');
146- fi
147+ fi;
148 if [ ! -z "$filename" ] ; then
149 sed -i "s/#KVM_TIMEOUT/KVM_TIMEOUT/g" /etc/xdg/canonical-certification.conf;
150 sed -i "s/#KVM_IMAGE = \/path\/to\/cloudimage-filename.img/KVM_IMAGE = http:\/\/$maas_ip\/cloud\/$filename/g" /etc/xdg/canonical-certification.conf;
151 fi;
152 rm -f /tmp/index.html;
153
154+ - &lxd_images |
155+ #!/bin/sh
156+ echo "Setting up to use LXD images on MAAS server...";
157+ . /etc/lsb-release;
158+ arch=$(dpkg --print-architecture);
159+ maas_ip=$(/sbin/ip route | awk '/default/ { print $3 }');
160+ rm -rf /tmp/index.html;
161+ wget -P /tmp/ http://$maas_ip/cloud/;
162+ template_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch-lxd.tar.xz" /tmp/index.html | head -n 1);
163+ if [ ! -z "$template_line" ] ; then
164+ templatefile=$(echo $template_line | grep -Po '(?<=href=")[^"]*(?=")');
165+ echo "Setting template file to: $templatefile";
166+ fi;
167+ rootfs_line=$(egrep "$DISTRIB_CODENAME-server-cloudimg-$arch-root.tar.xz" /tmp/index.html | head -n 1);
168+ if [ ! -z "$rootfs_line" ] ; then
169+ rootfsfile=$(echo $rootfs_line | grep -Po '(?<=href=")[^"]*(?=")');
170+ echo "Setting rootfs file to: $rootfsfile";
171+ fi;
172+ if [ ! -z "$templatefile" ] && [ ! -z "$rootfsfile" ]; then
173+ sed -i "s/#LXD_ROOTFS = http:\/\/server_url\/path\/to\/lxd-rootfs-filename.tar.xz/LXD_ROOTFS = http:\/\/$maas_ip\/cloud\/$rootfsfile/g" /etc/xdg/canonical-certification.conf;
174+ sed -i "s/#LXD_TEMPLATE = http:\/\/server_url\/path\/to\/lxd-templates-filename.tar.xz/LXD_TEMPLATE = http:\/\/$maas_ip\/cloud\/$templatefile/g" /etc/xdg/canonical-certification.conf;
175+ fi;
176+ rm -f /tmp/index.html;
177+
178 - &iperf
179 #!/bin/sh
180 echo "Setting up iperf...";
181@@ -147,21 +179,28 @@
182 late_commands:
183 maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null']
184 {{if third_party_drivers and driver}}
185+ {{if driver['key_binary'] and driver['repository'] and driver['package']}}
186 driver_00_key_get: curtin in-target -- sh -c "/bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg"
187 driver_02_key_add: ["curtin", "in-target", "--", "apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"]
188+ {{endif}}
189+ {{if driver['repository']}}
190 driver_03_add: ["curtin", "in-target", "--", "add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"]
191+ {{endif}}
192 driver_04_update_install: ["curtin", "in-target", "--", "apt-get", "update", "--quiet"]
193+ {{if driver['package']}}
194 driver_05_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "{{driver['package']}}"]
195+ {{endif}}
196 driver_06_depmod: ["curtin", "in-target", "--", "depmod"]
197 driver_07_update_initramfs: ["curtin", "in-target", "--", "update-initramfs", "-u"]
198 {{endif}}
199 # inject maas version into /etc/installed-with-maas and install cert tools
200 set_maas_version: ["curtin", "in-target", "--", "sh", "-c", "/bin/echo {{maas_version}} > /etc/installed-by-maas"]
201 # Install certification suite
202- zs_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *disableupdates ]
203- zt_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *sudoers ]
204- zu_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *installcert ]
205- zv_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *kvm_image ]
206+ zr_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *disableupdates ]
207+ zs_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *sudoers ]
208+ zt_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *installcert ]
209+ zu_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *kvm_image ]
210+ zv_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *lxd_images ]
211 zw_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *iperf ]
212 zx_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *networkinterfaces]
213 zy_cert_install: ['curtin', 'in-target', '--', 'sh', '-c', *secureid]

Subscribers

People subscribed via source and target branches

to status/vote changes: