[Hyper-V][Azure] cloud-init on FreeBSD for Azure does not work
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Fix Released
|
Medium
|
Unassigned | ||
cloud-init (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Xenial |
Fix Released
|
Low
|
Unassigned | ||
Yakkety |
Fix Released
|
Low
|
Unassigned | ||
Zesty |
Fix Released
|
Low
|
Unassigned |
Bug Description
=== Begin SRU Template ===
[Impact]
FreeBSD users on Azure will suffer from this bug.
FreeBSD is another OS which has many differences compared with Linux, so it needs a lot of changes to support cloud-init for FreeBSD on Azure.
This bug did not affect Ubuntu.
[Test Case]
== FreeBSD Test Case (should not be required for Ubuntu SRU) ==
Install cloud-init through its embedded shell script: tools/build-
Hyper-V VM, upload the VM to Azure and check whether it can pass provisioning.
== Ubuntu Test Case ==
Ubuntu test case is really just to verify no regression.
The test case is to:
* launch a vm on azure
* add proposed, upgrade
* clean instance: rm -Rf /var/lib/cloud /var/log/cloud-init
* reboot
* [test first boot] ssh back in, verify no 'WARN' in /var/log/
* reboot
* [test second boot] ssh back in, verify no 'WARN' in /var/log/
[Regression Potential]
This patch changes some utils for generic FreeBSD, and it takes impact for
cloud-init on OpenStack for FreeBSD OS.
The changes did affect other cloud-init path. The regressions should largely
be limited to the Azure datasource.
[Other Info]
Upstream commit at
https:/
=== End SRU Template ===
I run cloud-init 0.7.6 on FreeBSD 10.3 on Azure. But it cannot work because it find data source through "blkid" command which is not supported on FreeBSD.
Please refer to https:/
root@honzhanclo
2016-10-24 17:32:21,045 - util.py[DEBUG]: Reading from /var/lib/
2016-10-24 17:32:21,047 - util.py[DEBUG]: Read 446 bytes from /var/lib/
2016-10-24 17:32:21,048 - util.py[DEBUG]: Creating symbolic link from '/run/cloud-
2016-10-24 17:32:21,048 - util.py[DEBUG]: Attempting to remove /run/cloud-
2016-10-24 17:32:21,050 - util.py[DEBUG]: Reading from /proc/cmdline (quiet=False)
2016-10-24 17:32:21,050 - templater.
2016-10-24 17:32:21,050 - util.py[DEBUG]: Reading from /proc/cmdline (quiet=False)
2016-10-24 17:32:21,052 - util.py[DEBUG]: Reading from /etc/cloud/
2016-10-24 17:32:21,052 - util.py[DEBUG]: Read 2012 bytes from /etc/cloud/
2016-10-24 17:32:21,053 - util.py[DEBUG]: Attempting to load yaml from string of length 2012 with allowed root types (<type 'dict'>,)
2016-10-24 17:32:21,077 - cloud-init[DEBUG]: Closing stdin
2016-10-24 17:32:21,078 - cloud-init[DEBUG]: Logging being reset, this logger may no longer be active shortly
WARN: no logging configured! (tried 0 configs)
Setting up basic logging...
Cloud-init v. 0.7.6 running 'init' at Mon, 24 Oct 2016 09:32:21 +0000. Up 441006.050463 seconds.
2016-10-24 17:32:21,080 - util.py[DEBUG]: Cloud-init v. 0.7.6 running 'init' at Mon, 24 Oct 2016 09:32:21 +0000. Up 441006.050463 seconds.
2016-10-24 17:32:21,085 - util.py[DEBUG]: Writing to /var/log/
2016-10-24 17:32:21,088 - util.py[DEBUG]: Changing the ownership of /var/log/
2016-10-24 17:32:21,089 - util.py[DEBUG]: Running command ['ifconfig', '-a'] with allowed return codes [0] (shell=False, capture=True)
2016-10-24 17:32:21,107 - util.py[DEBUG]: Running command ['netstat', '-rn'] with allowed return codes [0] (shell=False, capture=True)
ci-info: +++++++
ci-info: +------
ci-info: | Device | Up | Address | Mask | Hw-Address |
ci-info: +------
ci-info: | hn0: | True | 172.21.0.4 | 0xffffff00 | 00:0d:3a:a0:48:83 |
ci-info: | lo0: | True | 127.0.0.1 | 0xff000000 | . |
ci-info: +------
ci-info: +++++++
ci-info: +------
ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
ci-info: +------
ci-info: +------
2016-10-24 17:32:21,119 - cloud-init[DEBUG]: Checking to see if files that we need already exist from a previous run that would allow us to stop early.
2016-10-24 17:32:21,120 - util.py[DEBUG]: Reading from /var/lib/
2016-10-24 17:32:21,121 - util.py[DEBUG]: Reading from /var/lib/
2016-10-24 17:32:21,124 - cloud-init[DEBUG]: Execution continuing, no previous run detected that would allow us to stop early.
2016-10-24 17:32:21,124 - util.py[DEBUG]: Reading from /var/lib/
2016-10-24 17:32:21,126 - stages.py[DEBUG]: Using distro class <class 'cloudinit.
2016-10-24 17:32:21,127 - __init__.py[DEBUG]: Looking for for data source in: ['Azure'], via packages ['', 'cloudinit.
2016-10-24 17:32:21,138 - __init__.py[DEBUG]: Searching for data source in: ['DataSourceAzu
2016-10-24 17:32:21,139 - __init__.py[DEBUG]: Seeing if we can get any data from <class 'cloudinit.
2016-10-24 17:32:21,140 - util.py[DEBUG]: Running command ['blkid', '-tTYPE=iso9660', '-odevice'] with allowed return codes [0, 2] (shell=False, capture=True)
2016-10-24 17:32:21,157 - util.py[WARNING]: Getting data from <class 'cloudinit.
2016-10-24 17:32:21,158 - util.py[DEBUG]: Getting data from <class 'cloudinit.
Traceback (most recent call last):
File "/usr/local/
if s.get_data():
File "/usr/local/
candidates.
File "/usr/local/
devlist.
File "/usr/local/
(out, _err) = subp(cmd, rcs=[0, 2])
File "/usr/local/
raise ProcessExecutio
ProcessExecutio
Command: ['blkid', '-tTYPE=iso9660', '-odevice']
Exit code: -
Reason: [Errno 2] No such file or directory
Stdout: ''
Stderr: ''
2016-10-24 17:32:21,159 - util.py[WARNING]: No instance datasource found! Likely bad things to come!
2016-10-24 17:32:21,159 - util.py[DEBUG]: No instance datasource found! Likely bad things to come!
Traceback (most recent call last):
File "/usr/local/
init.fetch()
File "/usr/local/
return self._get_
File "/usr/local/
pkg_list)
File "/usr/local/
raise DataSourceNotFo
DataSourceNotFo
2016-10-24 17:32:21,161 - util.py[DEBUG]: cloud-init mode 'init' took 0.119 seconds (0.12)
Related branches
- Scott Moser: Approve
- Server Team CI bot: Approve (continuous-integration)
-
Diff: 1374 lines (+782/-87)22 files modifiedcloudinit/config/cc_resizefs.py (+95/-0)
cloudinit/distros/__init__.py (+3/-0)
cloudinit/distros/freebsd.py (+261/-16)
cloudinit/settings.py (+1/-1)
cloudinit/sources/DataSourceAzure.py (+169/-11)
cloudinit/sources/helpers/azure.py (+10/-1)
cloudinit/stages.py (+1/-1)
cloudinit/util.py (+51/-1)
config/cloud.cfg-freebsd (+1/-1)
setup.py (+6/-4)
sysvinit/freebsd/cloudconfig (+0/-10)
sysvinit/freebsd/cloudfinal (+0/-10)
sysvinit/freebsd/cloudinit (+0/-10)
sysvinit/freebsd/cloudinitlocal (+1/-11)
tests/unittests/test_datasource/test_azure.py (+65/-0)
tests/unittests/test_datasource/test_azure_helper.py (+2/-2)
tests/unittests/test_datasource/test_cloudstack.py (+5/-0)
tests/unittests/test_distros/test_netconfig.py (+46/-1)
tests/unittests/test_handler/test_handler_resizefs.py (+59/-0)
tests/unittests/test_net.py (+3/-3)
tests/unittests/test_util.py (+2/-1)
tools/build-on-freebsd (+1/-3)
Changed in cloud-init: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
summary: |
- cloud-init on FreeBSD for Azure does not work + [Hyper-V][Azure] cloud-init on FreeBSD for Azure does not work |
description: | updated |
Changed in cloud-init: | |
status: | Confirmed → Fix Committed |
Changed in cloud-init (Ubuntu): | |
status: | New → Fix Released |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Xenial): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Yakkety): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Zesty): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Yakkety): | |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Zesty): | |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Xenial): | |
importance: | Medium → Low |
Changed in cloud-init (Ubuntu Zesty): | |
importance: | Medium → Low |
Changed in cloud-init (Ubuntu Yakkety): | |
importance: | Medium → Low |
description: | updated |
There is no "bldid" on FreeBSD.