1 From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
2 Date: Sun, 21 Feb 2016 16:29:52 +0100
3 Subject: [PATCH] Add arm64 templates to cobbler and nailgun
5 Add grub template import to cobbler server manifest
7 Add arm64 templates to cobbler and nailgun
9 deployment/puppet/cobbler/manifests/server.pp | 27 +++++++++++++++
10 .../puppet/cobbler/templates/dnsmasq.template.erb | 2 ++
11 .../cobbler/templates/efidefault.template.erb | 5 +++
12 .../cobbler/templates/grubprofile.template.erb | 12 +++++++
13 .../cobbler/templates/grubsystem.template.erb | 16 +++++++++
14 .../templates/preseed/ubuntu-1404.preseed.erb | 2 ++
15 .../puppet/fuel/manifests/auxiliaryrepos.pp | 12 ++++---
16 deployment/puppet/fuel/manifests/cobbler.pp | 38 +++++++++++++++++-----
17 .../puppet/fuel/manifests/cobbler/preseed.pp | 13 ++++++++
18 9 files changed, 115 insertions(+), 12 deletions(-)
19 create mode 100644 deployment/puppet/cobbler/templates/efidefault.template.erb
20 create mode 100644 deployment/puppet/cobbler/templates/grubprofile.template.erb
21 create mode 100644 deployment/puppet/cobbler/templates/grubsystem.template.erb
22 create mode 100644 deployment/puppet/fuel/manifests/cobbler/preseed.pp
24 diff --git a/deployment/puppet/cobbler/manifests/server.pp b/deployment/puppet/cobbler/manifests/server.pp
25 index bdb1ae7..0523404 100644
26 --- a/deployment/puppet/cobbler/manifests/server.pp
27 +++ b/deployment/puppet/cobbler/manifests/server.pp
28 @@ -288,6 +288,33 @@ class cobbler::server (
29 notify => [Service[$cobbler_service], Exec['cobbler_sync']],
32 + file { '/etc/cobbler/pxe/efidefault.template':
33 + content => template('cobbler/efidefault.template.erb'),
37 + require => Package[$cobbler::packages::cobbler_package],
38 + notify => [Service[$cobbler_service], Exec['cobbler_sync']],
41 + file { '/etc/cobbler/pxe/grubprofile.template':
42 + content => template('cobbler/grubprofile.template.erb'),
46 + require => Package[$cobbler::packages::cobbler_package],
47 + notify => [Service[$cobbler_service], Exec['cobbler_sync']],
50 + file { '/etc/cobbler/pxe/grubsystem.template':
51 + content => template('cobbler/grubsystem.template.erb'),
55 + require => Package[$cobbler::packages::cobbler_package],
56 + notify => [Service[$cobbler_service], Exec['cobbler_sync']],
59 exec { '/var/lib/tftpboot/chain.c32':
60 command => 'cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/chain.c32',
61 unless => 'test -e /var/lib/tftpboot/chain.c32',
62 diff --git a/deployment/puppet/cobbler/templates/dnsmasq.template.erb b/deployment/puppet/cobbler/templates/dnsmasq.template.erb
63 index 3a96ac1..8d3e753 100644
64 --- a/deployment/puppet/cobbler/templates/dnsmasq.template.erb
65 +++ b/deployment/puppet/cobbler/templates/dnsmasq.template.erb
66 @@ -33,5 +33,7 @@ dhcp-no-override
67 # by assigning IPs one by one instead of using hash algorithm.
70 +dhcp-match=set:arm64,93,11
71 +dhcp-boot=net:arm64,grub/grub-aarch64.efi,boothost,<%= @next_server %>
72 dhcp-option=6,<%= @name_server %>
73 $insert_cobbler_system_definitions
74 diff --git a/deployment/puppet/cobbler/templates/efidefault.template.erb b/deployment/puppet/cobbler/templates/efidefault.template.erb
76 index 0000000..af09eb8
78 +++ b/deployment/puppet/cobbler/templates/efidefault.template.erb
82 +tr -s ipxe_mac ':' '-' $net_default_mac
85 diff --git a/deployment/puppet/cobbler/templates/grubprofile.template.erb b/deployment/puppet/cobbler/templates/grubprofile.template.erb
87 index 0000000..eb7557c
89 +++ b/deployment/puppet/cobbler/templates/grubprofile.template.erb
91 +menuentry '$profile_name' {
92 + echo 'Network status:'
97 + echo 'Loading Linux ...'
98 + linux (tftp)$kernel_path $kernel_options BOOTIF=01-$ipxe_mac
99 + echo 'Loading initial ramdisk ...'
100 + initrd (tftp)$initrd_path
101 + echo 'Booting bootstrap image ...'
103 diff --git a/deployment/puppet/cobbler/templates/grubsystem.template.erb b/deployment/puppet/cobbler/templates/grubsystem.template.erb
105 index 0000000..9a191bc
107 +++ b/deployment/puppet/cobbler/templates/grubsystem.template.erb
111 +tr -s ipxe_mac ':' '-' $net_default_mac
113 +menuentry '$profile_name' {
114 + echo 'Network status:'
119 + echo 'Loading Linux ...'
120 + linux (tftp)$kernel_path $kernel_options BOOTIF=01-$ipxe_mac
121 + echo 'Loading initial ramdisk ...'
122 + initrd (tftp)$initrd_path
123 + echo 'Booting bootstrap image ...'
125 diff --git a/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb b/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb
126 index fd6dda3..65c6c69 100644
127 --- a/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb
128 +++ b/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb
129 @@ -66,9 +66,11 @@ d-i apt-setup/mirror/error select Retry
131 d-i apt-setup/use_mirror boolean true
133 +<% if @arch == 'amd64' %>
134 # Select architecture to amd64. That's very important to dpkg, since
135 # by default we have both amd64 and i386.
136 d-i apt-setup/multiarch string amd64
139 # You can choose to install restricted and universe software, or to install
140 # software from the backports repository.
141 diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
142 index 41a2570..720943d 100644
143 --- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
144 +++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
145 @@ -48,17 +48,21 @@ class nailgun::auxiliaryrepos(
147 exec { 'create_ubuntu_repo_dirs':
148 path => '/bin:/sbin:/usr/bin:/usr/sbin',
149 - command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/\"",
150 + command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-{amd64,arm64}/\"",
151 unless => "test -d ${ubuntu_dir}/pool && \
152 test -d ${ubuntu_dir}/dists/auxiliary/main/binary-amd64 && \
153 - test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64",
154 + test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64 && \
155 + test -d ${ubuntu_dir}/dists/auxiliary/main/binary-arm64 && \
156 + test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64",
159 exec { 'create_ubuntu_repo_Packages':
160 path => '/bin:/sbin:/usr/bin:/usr/sbin',
161 - command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/Packages\"",
162 + command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-{amd64,arm64}/Packages\"",
163 unless => "test -f ${ubuntu_dir}/dists/auxiliary/main/binary-amd64/Packages && \
164 - test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Packages",
165 + test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Packages && \
166 + test -f ${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Packages && \
167 + test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Packages",
170 file { $release_files:
171 diff --git a/deployment/puppet/fuel/manifests/cobbler.pp b/deployment/puppet/fuel/manifests/cobbler.pp
172 index a11498c..95a9497 100644
173 --- a/deployment/puppet/fuel/manifests/cobbler.pp
174 +++ b/deployment/puppet/fuel/manifests/cobbler.pp
175 @@ -133,12 +133,9 @@ class nailgun::cobbler(
176 require => Class['::cobbler::server'],
179 - file { '/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed':
180 - content => template('cobbler/preseed/ubuntu-1404.preseed.erb'),
184 - require => Class['::cobbler::server'],
185 + fuel::cobbler::preseed { 'ubuntu_1404_x86_64.preseed':
186 + path =>'/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed',
190 cobbler_distro { 'ubuntu_1404_x86_64':
191 @@ -151,6 +148,21 @@ class nailgun::cobbler(
192 require => Class['::cobbler::server'],
195 + fuel::cobbler::preseed { 'ubuntu_1404_arm64.preseed':
196 + path => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed',
200 + cobbler_distro { 'ubuntu_1404_arm64':
201 + kernel => "${repo_root}/ubuntu/x86_64/images/linux",
202 + initrd => "${repo_root}/ubuntu/x86_64/images/initrd.gz",
203 + arch => 'x86_64', # Makes Cobbler choose PXE
205 + osversion => 'trusty',
207 + require => Class['::cobbler::server'],
210 cobbler_profile { 'centos-x86_64':
211 kickstart => '/var/lib/cobbler/kickstarts/centos-x86_64.ks',
212 kopts => 'biosdevname=0 sshd=1 dhcptimeout=120',
213 @@ -171,6 +183,16 @@ class nailgun::cobbler(
214 require => Cobbler_distro['ubuntu_1404_x86_64'],
217 + cobbler_profile { 'ubuntu_1404_arm64':
218 + kickstart => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed',
219 + kopts => 'console=ttyAMA0,115200 console=ttyS0,115200 net.ifnames=0 biosdevname=0 netcfg/choose_interface=eth0 netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20',
220 + distro => 'ubuntu_1404_arm64',
223 + server => $real_server,
224 + require => Cobbler_distro['ubuntu_1404_arm64'],
227 cobbler_distro { 'ubuntu_bootstrap':
228 kernel => "${bootstrap_path}/vmlinuz",
229 initrd => "${bootstrap_path}/initrd.img",
230 @@ -205,7 +227,7 @@ class nailgun::cobbler(
231 distro => 'ubuntu_bootstrap',
234 - kopts => extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyS0,9600 console=tty0 panic=60 ethdevice-timeout=${bootstrap_ethdevice_timeout} boot=live toram components fetch=http://${server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia"),
235 + kopts => extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyAMA0,115200 console=ttyS0,115200 panic=60 ethdevice-timeout=${bootstrap_ethdevice_timeout} boot=live toram components fetch=http://${server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia"),
237 server => $real_server,
238 require => Cobbler_distro['ubuntu_bootstrap'],
239 diff --git a/deployment/puppet/fuel/manifests/cobbler/preseed.pp b/deployment/puppet/fuel/manifests/cobbler/preseed.pp
241 index 0000000..93c71ba
243 +++ b/deployment/puppet/fuel/manifests/cobbler/preseed.pp
245 +define fuel::cobbler::preseed(
251 + content => template('cobbler/preseed/ubuntu-1404.preseed.erb'),
255 + require => Class['::cobbler::server'],