Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hostname ddns update is not done on azure with built-in agent path. #2833

Closed
ubuntu-server-builder opened this issue May 10, 2023 · 8 comments
Labels
launchpad Migrated from Launchpad

Comments

@ubuntu-server-builder
Copy link
Collaborator

This bug was originally filed in Launchpad as LP: #1674685

Launchpad details
affected_projects = ['cloud-init (Ubuntu)', 'cloud-init (Ubuntu Xenial)', 'cloud-init (Ubuntu Yakkety)']
assignee = bbaude
assignee_name = Brent Baude
date_closed = 2017-09-23T02:30:03.739443+00:00
date_created = 2017-03-21T13:36:07.512640+00:00
date_fix_committed = 2017-03-21T13:40:19.207032+00:00
date_fix_released = 2017-09-23T02:30:03.739443+00:00
id = 1674685
importance = medium
is_complete = True
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1674685
milestone = None
owner = smoser
owner_name = Scott Moser
private = False
status = fix_released
submitter = smoser
submitter_name = Scott Moser
tags = ['verification-done-xenial', 'verification-done-yakkety']
duplicates = []

Launchpad user Scott Moser(smoser) wrote on 2017-03-21T13:36:07.512640+00:00

=== Begin SRU Template ===
[Impact]
The network device on Azure is configured via dhcp. DNS records are
updated for the host with the dhcp's request (dyndns).

Cloud-init has two operation modes on Azure.
a.) builtin: cloud-init does negotiation with the "fabric" (cloud platform)
directly.
b.) interaction with walinux-agent: cloud-init invokes walinux-agent
and expects it to do negotiation.

The system's hostname is provided to cloud-init via info on a cdrom.
cloud-init reads that hostname and then updates the system's hostname.
When configured to use walinux-agent, cloud-init would then bounce
the network device to publish this hostname change.

The bug here was that this did not happen in the builtin path, and
as a result systems would not have dns updated for their hostname.

This is not a problem for xenial or yakkety as they use the
walinuxagent path.

[Test Case]
To verify no regression
start an instance on azure
enable proposed, update, upgrade
rm -Rf /var/lib/cloud /var/log/cloud-init*
reboot

[Regression Potential]
Regression risk is very low since this code path is not used in 16.04 or
16.10. The changed code path is only used in 17.04+. Thus the test case
listed above is simple instance boot.

[Other Info]
Upstream commit:
 https://git.launchpad.net/cloud-init/commit/?id=86715c88aab8561

=== End SRU Template ===

Brent Baude and Paul Meyer realized that on Azure, that when the 'agent_command' is set to builtin (the current default in trunk) that cloud-init does not bounce the network device in order to do a ddns update of the systems' hostname.

@ubuntu-server-builder ubuntu-server-builder added the launchpad Migrated from Launchpad label May 10, 2023
@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-03-26T08:03:00.706850+00:00

This bug was fixed in the package cloud-init - 0.7.9-77-g4a2b2f87-0ubuntu1


cloud-init (0.7.9-77-g4a2b2f87-0ubuntu1) zesty; urgency=medium

  • New upstream snapshot.
    • Fix filesystem creation when using "partition: auto" [Jonathan Ballet]
      (LP: #1634678)
    • ConfigDrive: support reading config drive data from /config-drive for
      nova-lxd. (LP: #1673411)
    • ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    • test: add running of pylint [Joshua Powers]
    • ds-identify: fix bug where filename expansion was left on.
    • advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    • Bigstep: fix bug when executing in python3.
    • Fix unit test when running in a system deployed with cloud-init.
    • Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)

-- Scott Moser smoser@ubuntu.com Fri, 24 Mar 2017 16:50:56 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Brian Murray(brian-murray) wrote on 2017-04-10T22:25:14.803631+00:00

Hello Scott, or anyone else affected,

Accepted cloud-init into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Brian Murray(brian-murray) wrote on 2017-04-10T22:47:36.842885+00:00

Hello Scott, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Scott Moser(smoser) wrote on 2017-04-13T21:05:26.145536+00:00

launch an instance on azure of yakkety and of xenial

$ azure vm create --vm-size=Basic_A0
--vm-name=smoser0413y "--location=East US"
--ssh-cert=id_rsa-smoser-azure@brickies.pem --no-ssh-password --ssh=22
smoser0413y b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-yakkety-16_10-amd64-server-20170412-en-us-30GB smoser

$ azure vm create --vm-size=Basic_A0
--vm-name=smoser0413y "--location=East US"
--ssh-cert=id_rsa-smoser-azure@brickies.pem --no-ssh-password --ssh=22
smoser0413y b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-yakkety-16_10-amd64-server-20170412-en-us-30GB smoser

on each system

% git clone https://git.launchpad.net/~smoser/cloud-init/+git/sru-info
% sudo ./sru-info/bin/enable-proposed
% sudo apt-get -q update
% sudo apt-get install -qy cloud-init

this just sets the hostname back to the stock 'ubuntu'

so the code will think it needs to re-publish it

as it only publishes if it differs from the existing.

% echo "ubuntu" | sudo tee /etc/hostname
% sudo ./sru-info/bin/do-reboot clean save=orig

reconnect and verify yakkety

$ cat /etc/cloud/build.info
build_name: server
serial: 20170412

$ dpkg-query --show cloud-init
cloud-init 0.7.9-90-g61eb03fe-0ubuntu1~16.10.1

$ lsb_release -sc
yakkety

$ grep WARN /var/log/cloud-init.log || echo no warn
no warn
$ grep --after-context=7 "pubhname" /var/log/cloud-init.log
2017-04-13 20:52:40,641 - DataSourceAzure.py[DEBUG]: pubhname: publishing hostname [hostname=smoser0413y policy=True interface=eth0]
2017-04-13 20:52:40,648 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
2017-04-13 20:52:40,648 - util.py[DEBUG]: Read 11 bytes from /proc/uptime
2017-04-13 20:52:40,649 - util.py[DEBUG]: Running command ['sh', '-xc', 'i=$interface; x=0; ifdown $i || x=$?; ifup $i || x=$?; exit $x'] with allowed return codes [0] (shell=False, capture=False)
2017-04-13 20:52:45,982 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
2017-04-13 20:52:45,982 - util.py[DEBUG]: Read 11 bytes from /proc/uptime
2017-04-13 20:52:45,982 - util.py[DEBUG]: publishing hostname took 5.334 seconds (5.34)
2017-04-13 20:52:45,983 - util.py[DEBUG]: Running command ['hostname', 'ubuntu'] with allowed return codes [0] (shell=False, capture=True)

$ cat /run/cloud-init/result.json
{
"v1": {
"datasource": "DataSourceAzureNet [seed=/dev/sr0]",
"errors": []
}
}

reconnect and verify xenial

$ dpkg-query --show cloud-init
cloud-init 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1
$ cat /etc/cloud/build.info
build_name: server
serial: 20170412
$ lsb_release -sc
xenial
$ rep WARN /var/log/cloud-init.log || echo no warn
The program 'rep' is currently not installed. You can install it by typing:
sudo apt install rep
no warn
$ ^C
$ grep WARN /var/log/cloud-init.log || echo no warn
no warn
$ grep --after-context=7 "pubhname" /var/log/cloud-init.log
2017-04-13 20:54:51,199 - DataSourceAzure.py[DEBUG]: pubhname: publishing hostname [hostname=smoser0413x policy=True interface=eth0]
2017-04-13 20:54:51,199 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
2017-04-13 20:54:51,199 - util.py[DEBUG]: Read 11 bytes from /proc/uptime
2017-04-13 20:54:51,207 - util.py[DEBUG]: Running command ['sh', '-xc', 'i=$interface; x=0; ifdown $i || x=$?; ifup $i || x=$?; exit $x'] with allowed return codes [0] (shell=False, capture=False)
2017-04-13 20:54:56,081 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
2017-04-13 20:54:56,081 - util.py[DEBUG]: Read 11 bytes from /proc/uptime
2017-04-13 20:54:56,081 - util.py[DEBUG]: publishing hostname took 4.869 seconds (4.88)
2017-04-13 20:54:56,081 - util.py[DEBUG]: Running command ['hostname', 'ubuntu'] with allowed return codes [0] (shell=False, capture=True)
$ cat /run/cloud-init/result.json
{
"v1": {
"datasource": "DataSourceAzureNet [seed=/dev/sr0]",
"errors": []
}
}

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-04-20T19:33:34.017361+00:00

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.10.1


cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.10.1) yakkety; urgency=medium

  • debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  • New upstream snapshot.
    • OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    • Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    • tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    • net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    • doc: correct grammar in capabilities.rst [David Tagatac]
    • ds-identify: fix detecting of maas datasource. (LP: #1677710)
    • netplan: remove debugging prints, add debug logging [Ryan Harper]
    • ds-identify: do not write None twice to datasource_list.
    • support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    • apt_configure: run only when needed. (LP: #1675185)
    • OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    • GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    • Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    • Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    • ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    • ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    • test: add running of pylint [Joshua Powers]
    • ds-identify: fix bug where filename expansion was left on.
    • advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    • Bigstep: fix bug when executing in python3. [root]
    • Fix unit test when running in a system deployed with cloud-init.
    • Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    • cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    • net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    • net: add renderers for automatically selecting the renderer.
    • doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    • test: Adding integratiron test for password as list [Joshua Powers]
    • render_network_state: switch arguments around, do not require target
    • support 'loopback' as a device type.
    • Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    • gitignore: adding doc/rtd_html [Joshua Powers]
    • doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    • test: avoid differences in 'date' output due to daylight savings.
    • Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    • Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    • tox: add a citest environment
    • Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    • doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773)
    • net: support both ipv4 and ipv6 gateways in sysconfig.
      [Lars Kellogg-Stedman] (LP: #1669504)
    • net: do not raise exception for > 3 nameservers
      [Lars Kellogg-Stedman] (LP: #1670052)

-- Scott Moser smoser@ubuntu.com Mon, 03 Apr 2017 12:03:30 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Steve Langasek(vorlon) wrote on 2017-04-20T19:34:55.707640+00:00

The verification of the Stable Release Update for cloud-init has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-04-20T19:35:54.384643+00:00

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1


cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  • debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  • New upstream snapshot.
    • OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    • Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    • tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    • net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    • doc: correct grammar in capabilities.rst [David Tagatac]
    • ds-identify: fix detecting of maas datasource. (LP: #1677710)
    • netplan: remove debugging prints, add debug logging [Ryan Harper]
    • ds-identify: do not write None twice to datasource_list.
    • support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    • apt_configure: run only when needed. (LP: #1675185)
    • OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    • GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    • Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    • Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    • ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    • ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    • test: add running of pylint [Joshua Powers]
    • ds-identify: fix bug where filename expansion was left on.
    • advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    • Bigstep: fix bug when executing in python3. [root]
    • Fix unit test when running in a system deployed with cloud-init.
    • Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    • cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    • net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    • net: add renderers for automatically selecting the renderer.
    • doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    • test: Adding integratiron test for password as list [Joshua Powers]
    • render_network_state: switch arguments around, do not require target
    • support 'loopback' as a device type.
    • Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    • gitignore: adding doc/rtd_html [Joshua Powers]
    • doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    • test: avoid differences in 'date' output due to daylight savings.
    • Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    • Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    • tox: add a citest environment
    • Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    • doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773)
    • net: support both ipv4 and ipv6 gateways in sysconfig.
      [Lars Kellogg-Stedman] (LP: #1669504)
    • net: do not raise exception for > 3 nameservers
      [Lars Kellogg-Stedman] (LP: #1670052)

-- Scott Moser smoser@ubuntu.com Mon, 03 Apr 2017 11:52:56 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Scott Moser(smoser) wrote on 2017-09-23T02:30:06.035388+00:00

This bug is believed to be fixed in cloud-init in 17.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
launchpad Migrated from Launchpad
Projects
None yet
Development

No branches or pull requests

1 participant