-
Notifications
You must be signed in to change notification settings - Fork 908
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
cc_set_passwords fails to change passwords specified as chpasswd['list'] in cloud-config #2809
Comments
Launchpad user Serg Lystopad(slystopad) wrote on 2017-02-17T16:11:13.504634+00:00 Launchpad attachments: 0001-Fixes-cc_set_passwords-to-set-passwords-from-list-of.patch |
Launchpad user Brian Murray(brian-murray) wrote on 2017-04-10T22:23:00.229122+00:00 Hello Serg, 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! |
Launchpad user Brian Murray(brian-murray) wrote on 2017-04-10T22:46:06.224404+00:00 Hello Serg, 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! |
Launchpad user Chad Smith(chad.smith) wrote on 2017-04-13T21:40:50.456733+00:00 Ran integration tests which cover both use cases######### xenial
2017-04-13 15:28:11,620 - tests.cloud_tests - DEBUG - using tmpdir /tmp/cloud_test_data_zk8wv7mv 2017-04-13 15:30:06,285 - tests.cloud_tests - INFO - test: platform='lxd', os='xenial' verifying test data Ran 4 tests in 0.008s OK Ran 4 tests in 0.010s OK ######### yakkety $ rel=yakkety $ ln -sf $fname cloud-init_all.$rel.deb
2017-04-13 15:34:51,654 - tests.cloud_tests - DEBUG - using tmpdir /tmp/cloud_test_data_1vw2u2x_ 2017-04-13 15:36:29,238 - tests.cloud_tests - INFO - test: platform='lxd', os='yakkety' verifying test data Ran 4 tests in 0.006s OK Ran 4 tests in 0.005s OK |
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
-- Scott Moser smoser@ubuntu.com Mon, 03 Apr 2017 12:03:30 -0400 |
Launchpad user Steve Langasek(vorlon) wrote on 2017-04-20T19:34:27.640317+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. |
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
-- Scott Moser smoser@ubuntu.com Mon, 03 Apr 2017 11:52:56 -0400 |
Launchpad user Scott Moser(smoser) wrote on 2017-09-23T02:29:15.982267+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. |
This bug was originally filed in Launchpad as LP: #1665694
Launchpad details
Launchpad user Serg Lystopad(slystopad) wrote on 2017-02-17T16:11:13.504634+00:00
=== Being SRU Template ===
[Impact]
Users of cloud-init can change passwords on a system by providing input
to chpasswd as a string:
#cloud-config
chpasswd:
list: |
user1:password1
Confusingly, the 'list' is actually not a list, but a multi-line string.
The change made in this bug supports either.
[Test Case]
There is an integration test in cloud-init that runs though this code.
To run that:
$ git clone https://git.launchpad.net/cloud-init
$ cd cloud-init
download the appropriate deb for cloud-init from -proposed
$ rel=xenial
$ pver=$(rmadison --url=ubuntu --suite=$rel-proposed cloud-init | awk '{print $3}')
$ fname="cloud-init_${pver}_all.deb"
$ wget "http://archive.ubuntu.com/ubuntu/pool/main/c/cloud-init/$fname"
$ ln -sf $fname cloud-init_all.$rel.deb
$ tox -e citest -- run -v -n $rel --deb=cloud-init_all.$rel.deb
-t tests/cloud_tests/testcases/modules/set_password_list_string.py
-t tests/cloud_tests/testcases/modules/set_password_list.py
That will install the new cloud-init into a container and run
with user data to excercise this new feature.
[Regression Potential]
Very low regression potential. The test case shown provides both
the previously supported path (a string) and the new path (a list).
[Other Info]
Upstream commit:
https://git.launchpad.net/cloud-init/commit/?id=7f2b51054a5defe
=== End SRU Template ===
If cloud-config contains list of user:password pairs as in example below
chpasswd:
list:
- user1:pwd001
- user2:pwd002
cc_set_passwords module fails to change passwords with error:
Feb 17 15:52:48 si-man [CLOUDINIT] stages.py[DEBUG]: Running module set-passwords (<module 'cloudinit.config.cc_set_passwords' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_set_passwords.py'>) with frequency once-per-instance
Feb 17 15:52:48 si-man [CLOUDINIT] handlers.py[DEBUG]: start: modules-config/config-set-passwords: running config-set-passwords with frequency once-per-instance
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[DEBUG]: Writing to /var/lib/cloud/instances/6d822e81-98a1-4b43-bed2-db8d0cf045bb/sem/config_set_passwords - wb: [420] 25 bytes
Feb 17 15:52:48 si-man [CLOUDINIT] helpers.py[DEBUG]: Running config-set-passwords using lock (<FileLock using file '/var/lib/cloud/instances/6d822e81-98a1-4b43-bed2-db8d0cf045bb/sem/config_set_passwords'>)
Feb 17 15:52:48 si-man [CLOUDINIT] cc_set_passwords.py[DEBUG]: Changing password for ["['user1"]:
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[DEBUG]: Running command ['chpasswd'] with allowed return codes [0] (shell=False, capture=True)
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[WARNING]: Failed to set passwords with chpasswd for ["['user1"]
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[DEBUG]: Failed to set passwords with chpasswd for ["['user1"]#012Traceback (most recent call last):#12 File "/usr/lib/python3/dist-packages/cloudinit/config/cc_set_passwords.py", line 121, in handle#012 util.subp(['chpasswd'], ch_in)#12 File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1836, in subp#012 cmd=args)#012cloudinit.util.ProcessExecutionError: Unexpected error while running command.#012Command: ['chpasswd']#012Exit code: 1#012Reason: -#012Stdout: ''#012Stderr: "chpasswd: (user ['user1) pam_chauthtok() failed, error:\nAuthentication token manipulation error\nchpasswd: (line 1, user ['user1) password not changed\n"
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[DEBUG]: Running command ['passwd', '--expire', "['user1"] with allowed return codes [0] (shell=False, capture=True)
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[WARNING]: Failed to set 'expire' for ['user1
Feb 17 15:52:48 si-man [CLOUDINIT] util.py[DEBUG]: Failed to set 'expire' for ['user1#012Traceback (most recent call last):#12 File "/usr/lib/python3/dist-packages/cloudinit/config/cc_set_passwords.py", line 136, in handle#012 util.subp(['passwd', '--expire', u])#12 File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1836, in subp#012 cmd=args)#012cloudinit.util.ProcessExecutionError: Unexpected error while running command.#012Command: ['passwd', '--expire', "['user1"]#012Exit code: 1#012Reason: -#012Stdout: ''#012Stderr: "passwd: user '['user1' does not exist\n"
Feb 17 15:52:48 si-man [CLOUDINIT] cc_set_passwords.py[DEBUG]: 2 errors occured, re-raising the last one
The issue affects cloud-init installed in xenial-server-cloudimg-amd64-disk1.img
apt-cache policy cloud-init
cloud-init:
Installed: 0.7.8-49-g9e904bb-0ubuntu1
16.04.416.04.4Candidate: 0.7.8-49-g9e904bb-0ubuntu1
Version table:
*** 0.7.8-49-g9e904bb-0ubuntu1
16.04.4 500bzr1212-0ubuntu1 500500 http://zone-1.clouds.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
100 /var/lib/dpkg/status
0.7.7
500 http://zone-1.clouds.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
cc_set_passwords converts list of user:password lists to str and as result user names get corrupted.
The text was updated successfully, but these errors were encountered: