We need to disable consistent network device naming to get our
"eth0" back, otherwise we have "random" interface names (which
are stable across reboots in the same environment, but aren't
really predictable by their names).
See
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
for more information.
Until we've full support for the new interface names let's
disable this feature in our Vagrant environments.
Change-Id: I0f141e585456d64ee7eba7b7e78af938be26bfc2
Shellcheck v.0.3.4-3 is default for jessie and installed
on jenkins CI. It produces fake alarm here, while shellcheck
v.0.3.7-5+ reports no issues here. Fixing warning to make it happy:
In deployment.sh line 1753:
find "${TARGET}/var/log" -type f -size +0 -not -name \*.ini -exec sh -c ':> ${1}' sh {} \;
^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.
Change-Id: I75cd28dacacc65dfdb6b7fd134b8f3c727b1b48d
Debian/stretch no longer provides virtualbox-guest-additions-iso,
retrieve the ISO from http://download.virtualbox.org/virtualbox/ instead.
Change-Id: If257ec3760ec096dd11a4cb8bde4b178fcf9a77a
It is impossible to install puppet node on plain SSD drive:
> Error: /dev/sdc does not look like a VirtIO, ServeRAID, LSILOGIC or PowerEdge disk/controller. Exiting to avoid possible data damage.
Lets ask the user confirmation here, as restart installation
is very slow way in case of manual bonding configuration and
slow IBM hardware POST.
The boot option TARGET_DISK can be used to bypass any checks here.
Change-Id: I6ace2c0225b7e66896a00459594901d06ae7bf0c
Puppet often fails because puppet cert cleanup or something else forgotten
Normally we want to fix the issue and restart puppet without starting
whole installation from the beginning. Here repeat dialog added
to ask for puppet restart. For daily devops recovery tasks still have an
option to bypass this dialog and proceed to the end if 'nopuppetrepeat'
option is set.
Change-Id: I2a6498628c552aa65d5220c84ade6e12454b8f2d
While setting up sources.list for bootstrap stage has been take
care of in commit 24852d04eb already, the sources.list
generation before running ngcp-installer needs to be adjusted as
well.
Change-Id: I94f1cb8057c544e9df678a4f008abf713fa83da3
Ensure hostname is also valid at the beginning, adjust for stretch
where /etc/init.d/hostname.sh no longer exists.
Change-Id: Ia084442d7ea2b8b0e6e43f88af4474d3eda4a061
/etc/init.d/hostname.sh no longer exists in Debian stretch
and newer.
/etc/hostname always exists in our usecase since we create
it straight before setting the hostname, so do exactly
what the initscript usually did for us.
Change-Id: Ibf59c1494dab7978ae40a61cf9eb15c2e54836f6
Otherwise it will fail with:
| 11:04:48 grml-chroot /mnt /bin/bash
| Writing /etc/debian_chroot ...
| --2016-11-09 12:04:48-- https://deb.sipwise.com/autobuild/pool/main/n/ngcp-installer//ngcp-installer-ce_5.0.0.0+0~mr5.0.0.0+0~20161108225948.69+jessie~1.gbp52d5a0_all.deb
| Resolving deb.sipwise.com (deb.sipwise.com)... 92.42.136.158, 2a02:1b8:7:2::c0f:faa
| Connecting to deb.sipwise.com (deb.sipwise.com)|92.42.136.158|:443... connected.
| ERROR: The certificate of 'deb.sipwise.com' is not trusted.
| ERROR: The certificate of 'deb.sipwise.com' hasn't got a known issuer.
| dpkg: error: cannot access archive 'ngcp-installer-ce_5.0.0.0+0~mr5.0.0.0+0~20161108225948.69+jessie~1.gbp52d5a0_all.deb': No such file or directory
Change-Id: Icc08e07fafa4405aeb3896ac73e30b6f5873361d
Debian mirror doesn't support https sometimes, like ftp.de.debian.org
Previously we were not able to use different transports for
Debian and Sipwise repositories. Now we can do it using
boot option 'debianrepotransport'.
Change-Id: Iec43e9831dba37475edc0c42ab32f6e41051c79d
Right now we are not ready to use CNAME here,
lets put correct DNS name here as manual input is
very annoying here during the boot.
Change-Id: Ibbf195752f46f95e3774793f3de25bb8b46ee7e7
IT doesn't nothing on those stages, while produce warnings.
JFYI, all the packages 'libc6-dev gcc bzip2 less linux-headers make sudo'
have been installed already as some NGCP dependencies,
so 'apt-get -y install ...' can also be removed, while lets keep the, for now.
TODO: migrate virtualbox guest edition part to ngcp-installer
(in proper place when apt-get update still works before shutdown).
There must be nothing in deployment.sh after ngcp-installer, IMHO.
Change-Id: I7d4457450b1b688965a73e62007e6958445c9ab6
As we started to use hieradata also from puppet code, hiera.yaml now
points to /etc/puppetlabs/code/environments/ and so we should put puppet
code with hieradata there
Change-Id: I4a5e00124ed6bd1ebd1288d35dc4070dea0f195e
We have to always provide Sipwise Hiera rescue ISO
if we are using recovery from git repository as
it doesn't have any passwords and SSH keys.
In the same time we search drive by label,
so there is no point to have an options here anymore.
Change-Id: Ib47f147cbb3a154f96d37ef31d43acad3a68c9e5
He have spent 2 hours trying to figure out why puppet1.mgm
installation has failed. And it was human mistake with
forgotten boot option. In the same time we must provide
puppetrescuedrive boot option and we should execute Hiera
initialisation in case if puppetrescuedrive is provided.
So, lets reuse puppetrescuedrive for both cases.
Change-Id: I31cd80522fbce720be67090398322b3426701ec9
Otherwise deployment.sh abort disaster recovery installation if we have 1 drive only:
> Error: /dev/sdb does not look like a VirtIO, ServeRAID, LSILOGIC or PowerEdge disk/controller.
> Exiting to avoid possible data damage.
Change-Id: I4de4d0de75964fc6f09b8f0b1ae3104a6bdfc6ee
Apt modules should be also executed during puppet apply core. It's not
reasonable to tag all hierarchy of apt modules with 'core'. Instead
let's add 'apt' to --tags.
Change-Id: I6a2a6feb5f6b82a5894682b07958e4084c705273
Previously we were installing old puppet from jessie
and then upgraded to new puppet-agent on puppet.mgm role only.
So, it is a time to start installing puppet-agent by default
as a first step to switch all our server to puppet-agent
which will allows us to shutdown mcollective.mgm host
as Puppet 4 has integrated mcollective already.
There is no point to have support for squeezy here,
as puppetlabs-squeezy doesn't exist, so puppet-agent
cannot be installed.
Change-Id: I6fe26da35a883a498d1c13014ff210d5744231fc
We have no apt source lists configured at that moment,
so we have to install it through temporary apt database
Change-Id: Ia8dc8c9a9fa37ac92f84d78739ad7f8bea7e34a4
Noticed the following errors during Carrier mr4.3 installation:
> Installing apt-transport-https
> ...
> Err http://web01:9998 wheezy/main amd64 Packages
> 404 Not Found
> Err http://web01:9998 wheezy/contrib amd64 Packages
> 404 Not Found
> Err http://web01:9998 wheezy/non-free amd64 Packages
> 404 Not Found
> WReading package lists...: Failed to fetch http://web01:9998/debian/dists/wheezy/main/binary-amd64/Packages 404 Not Found
> W: Failed to fetch http://web01:9998/debian/dists/wheezy/contrib/binary-amd64/Packages 404 Not Found
> W: Failed to fetch http://web01:9998/debian/dists/wheezy/non-free/binary-amd64/Packages 404 Not Found
Which is correct as there is no wheezy repository in Approx.
We should use appropriate ${DEBIAN_RELEASE} repository.
Notes:
* apt-transport-https from jessie repo is good enough,
switch from wheezy to jessie
* fai-setup-storage liblinux-lvm-perl from jessie repo is good enough,
cleanup the update code here
* virtualbox-guest-additions-iso from jessie repo is good enough,
switch from wheezy-backports to jessie
* augeas-tools from jessie is good enough,
switch from wheezy to jessie
Change-Id: I0de23b673da61b332af9fd9cfbcb36fb9b99d0d6
We're hitting "Error: File not found" GRUB errors during wheezy->jessie
upgrades. While this doesn't cause any hard problems since the boot
still continues automatically we should ensure that the grub-pc
package knows where to install the bootloader.
grml-debootstrap >=0.74 provides the according grub-pc/install_devices
debconf support.
Change-Id: I6062888a132389b279c0ce4987334866da98a689
Label is limited to 11 symbols for FAT (type 'vfat'),
default for USB drives nowadays to mount it easily.
So we need to change the defaults here to support both
CDROM and USB flash cards.
Also it is not recommended using spaces here.
So, SIPWRESCUE0 - test drive with fake rescue data
SIPWRESCUE[1-x] - real rescue drives, where x is a version.
Change-Id: I21abd08b01023f9ac6c63258027d515dd093def5
New mode 'auto' is introduced, we are trying to find any device with
label "Sipwise Hiera Rescue *" and mount it using appropriate device type.
Also switch to function die() on error to set set_deploy_status=error
properly (otherwise jenkins doesn't detect error on autotests).
Change-Id: I0a9900b0e8edcb1e12f09caaf66e94a49b8ac863